# Jan 2021 to 1 Apr 2021 ###### tags: `2021 dev call` Call co-ordinates: Thursdays @ 19:00 UTC https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 Previous notes: [Meeting Agendas](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) #### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # Apr 8 2021 Moved to https://hackmd.io/HYCHlmH7SdarZWkvVucF-g --------------------------------------------------------------------------------------- # Apr 1, 2021 ## Agenda ### Old Business - [ ] Microsoft proposals - [x] CZI Letter of Intent in - [x] 3.4.1 released: Thanks! ### New Business ### Issues - [ ] listing registered cmaps https://github.com/matplotlib/matplotlib/issues/19842 ### PRs - [ ] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 - [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 ## Notes ### CZI: - LOI in. Will hear late April - DEI being led by numpy ### 3.4.1 released - thanks Elliott and Thomas - needs tests, and maybe re-review/refactor ### Microsoft - $10k - contract? genuine 3D capability proof of concept - ipympl interaction? - native javascript/htmlcanvas backend? - widget protocol for ipympl? - @tacaswell will reach out to Sylvain ### Interactive editing While talking about the common user-ask for click-and-drag functionality to tweak plots. (Doing this opens up several cans of worms, and it was agreed is a bad idea overall). Instead: #### Tooltip for identifying objects post-plotting After ruling out interactive editing, we talked about instead giving the user a hover-over tooltip that tells them the 1. Type of the object (e.g. Tick, Line2D, etc), to allow them to look up docs 2. How the object was created (e.g. plt.boxplot, plt.errorbar, etc) to help them see what other options they have for creating the data, and what function's output they need to save to modify this object (so they can go back and change e.g. `plt.plot()` to `ln, = plt.plot()`). a. Talked about co-opting objects' `label` field to save what function created it. --------------------------------------------- # Mar 25 2021 ## Agenda ### Old business - [ ] Microsoft proposals (next week) - [x] CZI update/plan - [x] webpage updates ### PRs - [x] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 - [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 ### Notes #### Webpage https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom - would build with html+css - rely on plain css, not bootstrap - expect to be primaliry editing news and anoucements - aim to make the html clear enough to have big "EDIT HERE" flag - Content Mangement System may be useful, but probaly overkill - also make it easy to edit highlighted plot #### CZI updates - Draft: https://github.com/matplotlib/CZI_2021-03_mpl - 15% of Caswell, 100% of Elliot, travel - Melissa Mendonça is leading the DEI call - mpl + scipy + numpy + pandas #### 3.4 status - merged last PR, need to do manual backport - tag tonight! #### Image interpolation - https://github.com/matplotlib/matplotlib/pull/18487 (docs of current state) - https://github.com/matplotlib/matplotlib/pull/18782 (add flag to do interplotion after RGBA mapping) - Doing resampling before color mapping or after is mixing data manipulations and visual operations - There are applications for both - Could we get away with an example? - @tacaswell and @QWhXj01mSwmTjk5kN1H_qQ (aka Eric) agree too much, defer this discussion until all positions are fully represented :) --------------------------------------------------------------------- # Mar 18 2021 ## Agenda ### Old Business - [ ] Microsoft proposals (next week) - [x] Landing page wireframe @tacaswell - [x] Theme work @tacaswell - [x] GSOD: write Nicolas and/or Ben @tacaswell - [ ] CZI update/plan ### New Business - [ ] public/community calendar? - [ ] doc calls? ### PRs - [ ] License - [ ] https://github.com/matplotlib/matplotlib/pull/19704 is merged for 3.5. Do we agree that this is correct, so that we can backport to 3.4? - [ ] Do we still need to explicitly write down Copyright and License information for Matplotlib < 1.3 in current docs? I'd like to strip that out and just reference https://matplotlib.org/1.3.0/users/license.html from https://matplotlib.org/devdocs/users/license.html - [ ] (not) change to new numpy random number generator API in docs for 3.5 https://github.com/matplotlib/matplotlib/pull/19706#pullrequestreview-612661785 - [ ] https://github.com/matplotlib/matplotlib/pull/13358 - apply this on perspective transform? ## Notes ### GSOD: - thomas contacted Nicolas and Ben ### Landing Page: * https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom * old doc notes - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing ### 3.4.0 - Whats news written - regressions? - subplots_mosaic - return axes in c-order ### 19706 RNG - push off until 3.6 ----------------------------------------------------------------------- # Mar 13 2021 ## Agenda ### New Business - [x] "brochure site" / landing page (with guest Dora Caswell) - [x] GSOD 2021 - March 26th org applications - operate as a grant program. - between US$5,000 and US$15,000 - can hire multiple writers but need to budget for it - https://developers.google.com/season-of-docs/docs - [ ] Proposals for spending Microsoft ### PRs #### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 - colormap deprecation https://github.com/matplotlib/matplotlib/issues/19609 ## Notes ### Brochure site / landing page - manage `index.html` separately from rest of docs. - standalone webpage - https://github.com/matplotlib/mpl-brochure-site - banner management? - maybe Dora work on front page... - should top level have more pages - Code of Conduct, governance - current docs: new theme? - https://github.com/pydata/pydata-sphinx-theme - pull out contributing guide as wel?l - not tied to releases so can change immediately - wireframe @Dora and @tacaswell - change theme @tacaswell ### GSOD - grant proposal - not clear who is going to write / mentor this year - we will not particpate this year - Ben or Nicholas @tacaswell will write... ### CZI - yes apply - EDI stream: "contributor in residence" maybe shared numfocus... - transition PDF-type position - overlapping projects; interface with other projects - # Mar 4 2021 ## Agenda ### New Business - [x] CZI 4 Letter of intent due March 30 (2 yr cycle, 50K-200K/year) - [x] CZI supplimental DEI LOI due March 30 - [x] Caswell March Meeting talk practice talk next week (need date + time) - [x] NumFOCUS “Contributor Diversification and Retention” Research Project kicked offx - [x] CZI update: diss proposal https://github.com/story645/proposal/blob/main/draft/main.pdf ### Issues - [ ] https://github.com/matplotlib/matplotlib/issues/19609 - colormap modification deprecations - [ ] Style files (or not) https://discourse.matplotlib.org/t/where-to-put-site-style-file/21895 ### PRs #### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 - [ ] callbacks stored on canvas/figure: https://github.com/matplotlib/matplotlib/pull/19611 - [ ] Axes stack: https://github.com/matplotlib/matplotlib/pull/19625 - [ ] Font threading: https://github.com/matplotlib/matplotlib/pull/19618 ## Notes: ### CZI - two-year grants vs one. Max per year smaller - apply (round 4) - on NCE to end of Mar - slightly smaller - second grant to Mar next year. - actual start negotiable. Start 1 Mar 2022 - 15% Thomas (BNL caps Thomas at 40%), Elliott - Diversity proposal: - same-scale $ - jupyter dev in residence - experience, career development versus deliverables - combine with other projects - interfaces between projects? - March 30th letter of intent - https://drive.google.com/file/d/1JlqZqGfM2-Jt-r8eTGg9W-Ad-15KEMhS/view?usp=sharing - Thomas will chat with numfocus folks about possible interfaces ### colormap mutability - will look at it soon. - 3.4.1 - Plan: https://github.com/matplotlib/matplotlib/issues/16991 ### march meeting abstract https://meetings.aps.org/Meeting/MAR21/Session/L61.5 > Data visualization is critical to understanding data in physics. Visualization is important in the early stages of understanding a measurement or a model and, later, in communicating it clearly. Physicists need to produce visualizations that fit their specific problem, often including multiple axes or novel plot types. They need tools that make common tasks like scatter and line plots easy and complex tasks like compound figures possible. > Matplotlib is the foundational data visualization library for the Scientific Python Ecosystem. It is used by working physicists, from high-profile projects like LIGO and the Event Horizon Telescope. to the day-to-day work of students, for interactive exploratory visualization and publication-ready figures. > This talk will highlight some of the key features of the library, focusing on examples of interactive multi-scale visualizations and tuning figures in preparation for publication. I will also briefly discuss our future plans to evolve the library to meet the future needs of our users. ----------------------------------------------------------------------- # Feb 25 2021 ## Agenda ### New Business - [ ] GSOD 2021 - March 26th org applications (deferred) - [ ] Proposals for spending Microsoft (deferred) - [x] bump min numpy to 1.17 for mpl 3.4 - https://numpy.org/neps/nep-0029-deprecation_policy.html#drop-schedule - we planned to release before drop date, but ended up delaying past the date (Jan 13, 2021) ### PRs - [ ] https://github.com/matplotlib/matplotlib/pull/14508 force_zorder - [ ] https://github.com/matplotlib/matplotlib/issues/19544 Listed colormap and sets? - https://github.com/matplotlib/matplotlib/issues/19574 similar in that changes broke some objects that used to work Not urgent, but needs discussion: - [x] formatting style for classes/concepts in the docs: `` `.Figure` `` vs. Figure vs. figure https://53849-1385122-gh.circle-artifacts.com/0/doc/build/html/devel/style_guide.html#terminology https://github.com/matplotlib/matplotlib/pull/19183 - [ ] https://github.com/matplotlib/matplotlib/pull/19482 backend registration - [ ] https://github.com/matplotlib/matplotlib/pull/14913 python NonUniformImage - [ ] https://github.com/matplotlib/matplotlib/pull/16931 better UI metadata ## Notes ### Webpage - front page make just html @tacaswell - make a different landing page - keep style? - sphinx as well? or bare html/css - flash page should be styled? - add css styling to redirect pages... ### Numpy 1.17 - 3.4? - hard runtime check versus building wheels - are we testing 1.16? for 3.4 - Don't bump runtime check and do bump wheels. Make sure we are testing 1.16 if we don't block. - @QuLogic ### 3d zorder - https://github.com/matplotlib/matplotlib/pull/14508 -`computed_zorder` = True for normal compute, False for user-specified. ### ducktyping arrays - https://github.com/matplotlib/matplotlib/issues/19574 - what ducktyping will we do? - issue with hist and boxplot are issues... - list or arrays - tensorflow? scalars are itterable... - sorting out ducktype - iterables are special: `atleast_1d` - lists, numpy, pandas, astropy, pint - need mock object - need a common base like - https://data-apis.org/blog/array_api_standard_release/ ### color issue - @jklymak will work w/ seaborn to fix ### Figure/figure/`Figure` - "Figure" for "Matplotlib" figures. "figure" for general figures, and "``Figure``" when discussing the class. -------------------------------------------------- # Feb 18 2021 ## Agenda ### New Business - [ ] canonical website: https://matplotlib.org/stable ### PRs - [ ] 3.4 final PRs - [ ] restore creating new axes via plt.subplot with different kwargs [#19438](https://github.com/matplotlib/matplotlib/pull/19438) - [x] Restore auto-adding Axes3D to their parent figure on init [#19496](https://github.com/matplotlib/matplotlib/pull/19496) - [x] Sync 3D errorbar with 2D [#18436](https://github.com/matplotlib/matplotlib/pull/18436) ## Notes ### 3.4 PRs #### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) - TODO: open an issue for missing test coverage... - errorbar in 3D is a new feature for 3.4 - discussion about how to handle case of both lolims and hilims set - not clear that how we handle this in either 2D or 3D works correctly - but this makes 2D and 3D consistent - also concerns about how we do error bars in general - TODO: issue with caps with rotation. (would need to not be a marker) - TODO: remove caps from one test #### [#19438](https://github.com/matplotlib/matplotlib/pull/19438) - @anntzer will do final review - general heuristic OK #### ------------------------------------------------------ # Feb 11 2021 ## Agenda ### Old Business - [ ] GSOC contact Jouni - font handling? @tacaswell (still waiting) ### New business - [ ] standing weekly/bi-weekly/monthly doc meetings? - [x] Microsoft grant? ### PRs - [ ] Website (fix our search issues): - Needs merge if OK: https://github.com/matplotlib/matplotlib/pull/19456 - Needs to be run and merged: https://github.com/matplotlib/matplotlib.github.com/pull/49 - [ ] Axes3d (3.4.0): - New PR: https://github.com/matplotlib/matplotlib/pull/19496 - Does it need deprecation warning? - [ ] Axes re-use for `plt.subplot` (3.4.0): - https://github.com/matplotlib/matplotlib/pull/19438 ## Notes ### Microsoft grant - $1k per month. Think about what to do with it. - $9k total after overhead. - should be spendable immediately though - For discussion next week. ### GSOD - Discuss next week. March 26 ### Doc meeting - standing meeting? Monthly. After GSOD - Django org structure - sphinx theme from scientific python... - https://pydata-sphinx-theme.readthedocs.io/en/latest/ - Reorganizing the site - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing ### Website: - #19456 warn if try to overwrite before merge - will run the html changes PR on github @QuLogic ### axes reuse :tada: #### Case 1 Also see #10700 This should produce 2 polar plots with sin^2 in the top one and cos^2 in the bottom one. Correct in 2.1.2, 3.3.4, my PR, wrong on default branch ```python import matplotlib matplotlib.use('tkagg') import matplotlib.pyplot as plt import numpy as np th = np.linspace(0, 2*np.pi, 1024) plt.figure() plt.suptitle(matplotlib.__version__) plt.subplot(211) plt.plot(th, np.sin(th)**2) plt.subplot(211, polar=True) plt.plot(th, np.sin(th)**2) plt.subplot(212, polar=True) plt.plot(th, np.cos(th)**2) plt.subplot(212) plt.plot(th, np.cos(th)**2) plt.show() ``` #### case 2 This should produce two polar plots each showing sin^2 and cos^2 in blue and orange (C0, C1) Correct in 2.1.2, 3.3.4, my PR, wrong on default branch ```python import matplotlib matplotlib.use('tkagg') import matplotlib.pyplot as plt import numpy as np th = np.linspace(0, 2*np.pi, 1024) plt.suptitle(matplotlib.__version__) plt.subplot(121, projection='polar') plt.plot(th, np.sin(th)**2) plt.subplot(122, polar=True) plt.plot(th, np.sin(th)**2) plt.subplot(121, polar=True) plt.plot(th, np.cos(th)**2) plt.subplot(122) plt.plot(th, np.cos(th)**2) plt.show() ``` #### case 3 In 2.1.2 and 3.3.4 this produces a 3D plot on top and 2D plot on the bottom on the current default branch this produces a 2D plot on top and a 3D plot on the bottom on the PR branch produces 2 3D plots ```python import matplotlib matplotlib.use('tkagg') import matplotlib.pyplot as plt import mpl_toolkits.mplot3d plt.figure() plt.suptitle(matplotlib.__version__) plt.subplot(211) plt.subplot(211, projection='3d') plt.subplot(212, projection='3d') plt.subplot(212) plt.show() ``` #### to do * soft deprecate polar=true? - proposed behavior * if new_proj & new_kwarg is None, return old ```python plt.subplot(211, polar=True) plt.subplot(211) ``` * if old_kwarg = new_kwarg & old_proj=new_proj, return old ```python plt.subplot(211, polar=True) plt.subplot(211, polar=True) ``` ```python plt.subplot(211, polar=True) plt.subplot(211, projection='polar') ``` * if keyword or projection don't match, return new * change 3D to match new behavior ```python plt.subplot(211, polar=True) plt.subplot(211, projection='3d') ``` - 3D break - currently this behavior makes a new plot ```python plt.subplots(111, projection='3D') plt.subplots(111) ``` * deprecate Axes3D adding itself --------------------------------------------------------------------- # Feb 4 2021 ## Agenda ### Old Business ### New Business - [x] psf scientific working group grant, $4000 for education/outreach - https://pyfound.blogspot.com/2020/12/psf-scientific-working-group-announces.html - feb 15 - [x] geopandas has an mpl tie in GSOC project, is asking if mentoring help at least on a consult basis is available - https://github.com/geopandas/geopandas/wiki/Google-Summer-of-Code-2021 - https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ ### Issues and PRs - [x] Info/announcement: [#19449](https://github.com/matplotlib/matplotlib/issues/19449) Adaptation of type documentation: - Previous convention: `array-like (M, N)` - New convention: `(M, N) array-like` and `(M, N) array-like of int` - [x] Website redirects: - scripts to fix canonicals, add banners, redirect toplevel - `https://matplotlib.org/stable/` new top level. Discourage using version - will try to use `reredirects` for new moves in docs - [x] 3.4: https://github.com/matplotlib/matplotlib/issues/18939 - how to handle `Axes3D(fig)` no longer automatically adding itself to a figure. - https://github.com/matplotlib/matplotlib/pull/19413 - [ ] 3.4.0: 34 outstanding PRs and issues: - https://github.com/matplotlib/matplotlib/milestone/53 - https://github.com/matplotlib/matplotlib/pull/18480 Needs a second look ## Notes ### PSF outreach: - no strong ideas, @bruno may have connections ### GSOC: - geopandas maye want some help on the GSOC; - Elliott volunteered as tribute - font-based GSOC @anntzer w @Aitik - https://hackmd.io/@matplotlib https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 - caswell will be primary mentor, Antony will be around - reach out to Jouni @tacaswell ### Numfocus needs diversity in scientific computing committee members - https://numfocus.org/programs/diversity-inclusion - contact @story645 - looking for non US board members in particular ### Info doc: - `(M, N) array-like of int` - typing discussion, but we will not be leading with types (numpy) - ### website update - add /stable to URL - on-going work to add re-directs and banner to old docs - looking into adopting sphinx-reredirect https://pypi.org/project/sphinx-reredirects/ tomake moving docs less painful ### AxesAdd3d - process_projection needs to be fixed - Thomas's changes mix in as well (same code) ### #18480 - @BrunoBeltran will review ### 19438: - plt.subplot kwarg reuse issue - ### Explicit versus implicit - better than Object Oriented # 28 Jan 2021 ## Agenda ### Old business ### New business - [ ] 3.3.4 tagged! - [ ] status of 3.4 - [ ] NumFocus Annual Report Survey (maybe is steering council responsibility?) * We would like to include three (3) applications to show how your project is being used currently. If you know of a specific user e.g. company, research institution or university please include. * Please provide a short description of three (3) future or planned features/upgrades for your project. These would be things that you have outlined in your project roadmap and/or next steps for your project. * One of the intentions of these one-pagers is to be shown to potential funders. Funders want to have a quick understanding of the needs of a project so they can see where there may be alignment with their mission and identify places where they may be able to provide support. Please describe three (3) project needs PLUS a high-level cost and/or "hours-to-complete" estimate. ### Isues and PRs - [ ] Website SEO - now have a `/stable/` level - upgrades of `robots.txt` and `sitemap.xml` - need to fix canonical urls (pointing to `/3.3.3/` or root; nothing points to `/stable/` - [ ] [3.4.0 outstanding PRs](https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.4.0) ### Notes ### Roadmap (annual report) - Matplotlib 4.0 <https://paper.dropbox.com/doc/Matplotlib-4.0--BEG3wXN9_touQWpDX3auznKPAg-WTYwd0NQaSHTjtLUZwkNx> - opengl renderer - @IanThomas interested in partial funding to do that. - GUIs/windowing syste, - webgl version - some implimentations exist as proof of concept - would likely need a new API for the renderers - true 3d - optimizations that break backcompatibility - transformations pipeline especially @anntzer will add. - matplotlib 3D (w/ current renderers) - https://github.com/rougier/matplotlib-3d - current CZI work - functional overhaul of artist that breaks out data, visual converters like norm/scale, creating glyphs - docs overhaul - information architect please - important uses of matplotlib - https://matplotlib.org/matplotblog/posts/ipcc-sr15/ - https://twitter.com/matplotlib/status/1354902116716978178 ### 3.3.4 & 3.4 - now out - if new feature move 3.5 (or 3.4 now) - release critical: - a couple of @tacaswell issues (edgecolors) - non interactive backends... Qt stuff maybe 3.5? - #19341: ### gsoc - https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ # 21 Jan 2021 * GSOC: * due to numfocus by Jan 29 * no mentor volunteers - anyone to ask personally? * Scipy: * tutorial: February 9, 2021 * talk: February 16, 2021 * CZI update Hannah * end of meeting so folks can drop off * webinar to Partnership for the Integration of Computation into Undergraduate Physics (PICUP)? * https://www.compadre.org/PICUP/ * sometime in March or April ### PRs and issues - [x] [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius - [x] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - status of setuptools_scm adoption? What needs to be done/decided? - [x] [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers - TH: I believe I know what we should do. - [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review - [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. ``` if isinstance(artist, Patch): return add_patch(artist) ``` - [ ] Webpage: - i.e. do a search on google for "matplotlib colorbar" yields multiple versions - https://github.com/matplotlib/matplotlib.github.com/pull/49 - https://github.com/matplotlib/matplotlib.github.com/pull/48 - [ ] [#19255](https://github.com/matplotlib/matplotlib/issues/19255) Add "experimental" support for PyQt6/PySide6. ## Notes ### Pickradius: - [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius - pickradius can be modified. Could also set by passing to picker (`set_picker(5)`). Issue is `True==1`, `False==0`. - decouple, make `set_picker` on and take a radius... - deprecate `set_pick_radius`? ### SCM tools for setup - for making dev versions. - [#18971](https://github.com/matplotlib/matplotlib/pull/18971) Decision: Make setuptools_scm an install_requires but only for dev installs (by dynamically manipulating install_requires in `setup.py` depending e.g. on checking the filesystem). In `__init__.py`, do generate the up-to-date version from setuptools_scm, but gate that behind a module-level `__getattr__` to avoid the import penalty. ### No fill markers - [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers - filled and unfilled markers (versus unfillable) - `color` behaves differently for each type. - `markerstyle(fill_style='none')` but internally still has a facecolor. - PR is right behaviour, but could merge because it does "right thing", but architecture is messy - deprecate mutating `MarkerStyle` if it ever worked... - should be sure this still works w/ seaborn... ### relimits on some artists - `add_artist` could inspect and dispatch to the specialized functions. - but @QuLogic has PR to flatten list anyway.. - https://github.com/matplotlib/matplotlib/pull/18216 - 3.5 issue ### Webpage - possible SEO improvements ### GSOC: - 29 Jan deadline - Aitik Gupta interested - @tacaswell, @bruno ### Scipy 2019 - tutorial - email dev list + DM some folk - Peter McKeever said yes - talk - wait & hear, by invite ### Qt6/gtk4 - same as qt5: https://github.com/matplotlib/matplotlib/pull/19255 - single qtagg or different backends for each - similar enough? - yes ### Hannah CZI # 14 Jan 2021 ## Agenda ### Old Business ### New Business - numfocus annual report - need min 2 sentences by Jan 15th - GSOC - anybody interested in mentoring? - Google deadline is Jan 29th, Numfocus ASAP - 175 hours over a 10 week period - https://opensource.googleblog.com/2020/10/google-summer-of-code-2021-is-bringing.html - email NumFocus coordinators: Mridul Seth <seth.mridul@gmail.com>, Henry Kironde <henrykironde@gmail.com> - ideas list: https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ - mpl35 release manager - mpl34 schedule ### PRs and Issues - [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) / [#19281](https://github.com/matplotlib/matplotlib/pull/19281) Transforms copying. - [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - status of setuptools_scm adoption? What needs to be done/decided? - [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review - [ ] pyupgrade prs: #19237 #19241 - anything useful in here? - [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... - [x] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) - [x] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling - [ ] [#19029](https://github.com/matplotlib/matplotlib/issues/19029) Refactor to _api._update_label_position? - [x] [#18216](https://github.com/matplotlib/matplotlib/pull/18216) - [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. ``` if isinstance(artist, Patch): return add_patch(artist) ``` ## Notes ### Numfocus annual report - crib from CZI report. - https://github.com/matplotlib/CZI_2020-07_mpl/blob/main/CZI.md ``` The current grant is supporting one developer at 40% (Thomas Caswell), one graduate student (Hannah Aizenman) with partial summer support for her advisor (Michael Grossberg), and a full time Research Software Engineer. For the latter we ran a search and hired Elliott Sales de Andrade who started in mid-March. Elliott has focused on the maintenance and support aspect of the grant. We hit our target of a net reduction of open PRs by 50/quarter and are making progress on reducing the number of open issues. Our initial estimates of the effort per issue closed were too optimistic; however, we merged several mid-sized and high-impact projects (documentation, JavaScript modernization, and a complex axes layout helper). Additionally we drafted new governance and contributor onboarding guidelines and had 2 feature and 4 bug-fix releases. We presented our new architecture ideas to the scientific library development community at the SciPy 2020 maintainers track. We designed the prototype API to have a clean separation between the `DataSource`, `Artist`, and rendering layers. We started implementing sample DataSources and Artists to formalize and validate the interface between them. Because the prototype is still developing rapidly, we are postponing working with a downstream partner until the API has stabilized. ``` - sent ### GSOC - put call out to mailing list - sent ### transform copying - should deepcopy really freeze? ### [#18216](https://github.com/matplotlib/matplotlib/pull/18216) - get rid of individual lists of artists - do for 3.5 ### [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling - @pXw4hSgTQF2--OciPYwa1w will look at it. ### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) ### [#10008](https://github.com/matplotlib/matplotlib/pull/10008) and [#17850](https://github.com/matplotlib/matplotlib/pull/17850) - color, facecolor, edgecolor overlapping arguments - issue is some markers are "fillable" or not. - Tim will look carefully at #17850 ### [19272](https://github.com/matplotlib/matplotlib/pull/19272) # 5 Jan 2021 ## Agenda ### Old Business ### New Business - mpl35 release manager - mpl34 schedule ### PRs and Issues - [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) Allow copying Norms... - Release critical (regression) - https://github.com/matplotlib/matplotlib/issues/18119 - [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - status of setuptools_scm adoption? What needs to be done/decided? - [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review - [ ] pyupgrade prs: #19237 #19241 - anything useful in here? - [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... - [ ] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) - [ ] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling - [x] [#19201](https://github.com/matplotlib/matplotlib/pull/19201) About baseline images? - Alignment issues with mathtext - [ ] [#19215](https://github.com/matplotlib/matplotlib/pull/19215) [DOC] Collect information for setting up a development environment ## Notes ### Copyable Norms - make a mixin for each of the transforms in `scale.py` rather than a new base class. ### Baseline images mathtext in SVG - SVG with embeded paths versus text? - paths embeded in end-user code - but smaller if we don't embed... - Thomas planning to prioritize the separate repo for test images #### Conclusion: - Take font spec improvement (it's independent anyway) - Limit baseline images to SVG - Don't use fonts in the SVG but keep the fonts being converted to paths. Concern is on the added complexity; and the production code uses converted paths, so testing these is closer to the production case. We live with the larger SVG size due to paths in test images for now. Tom is planning to prioritize the separate repo for test images, so image size is a little less critical.