# Matplotlib Weekly Meeting 2022-05-19--2022-10-06 [![hackmd-github-sync-badge](https://hackmd.io/jd_7FjxNQ4y7XgNknvmvGQ/badge)](https://hackmd.io/jd_7FjxNQ4y7XgNknvmvGQ) **A regular sync meeting for the project's maintainers, which is open to the community.** Everyone is welcome to attend and contribute to conversations. ## May 19 2022 -- Present ###### tags: `2022 dev call` Call co-ordinates: Thursdays @ 21:00 Berlin time (20:00 UTC during winter, 19:00 UTC during summer) 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) #### [Medium sized projects](https://hackmd.io/GgtrcXTlTfuoyHO76_LMLg) # October 06, 2022 _attending_: @noatamir, @melissawm, @tacaswell, @IGuKs80UTJCig4yt6Zos7w, @QWhXj01mSwmTjk5kN1H_qQ, @story645, @jklymak ## Agenda ### Old Business - [ ] [name=hannah] `needs-sorting` & `unassigned` milestones - not currently documented - https://matplotlib.org/devdocs/devel/coding_guide.html#milestones - Suggestions: - `unassigned` internal milestone for issues that have been closed - `needs-sorting` issues that have not been assigned to a particular version yet, but we would like to see implemented - are tests new features or bug fixes? not documented - [ ] [name=hannah] pydata global sprints - virtual, any time between Dec 1-3 https://pydata.org/global2022/ ### New Business - [ ] [name=tacaswell] Adopt + adapt Padas "claim bot" - For unclear reasons (and contrary our documentation) people seem to expect that there is a way to "assign" issues. It may be worth providing a path for this rather than spending the effort to tell everyone that we do not assign issues. - talked about this with @noatamir at CZI - e.g. pandas take-bot [doc](https://pandas.pydata.org/docs/development/contributing.html#where-to-start), [action](https://github.com/pandas-dev/pandas/blob/main/.github/workflows/assign.yml) - [ ] [name=tacaswell] arxiv-matplotlib https://github.com/mrocklin/arxiv-matplotlib - https://github.com/tacaswell/arxiv-matplotlib/tree/doc_add_fancyplot <- readme with plot embedded - we are currently used by ~17% of all papers published to arXiv - next steps (do this via contract and/or SDG): - extend this to hit the other pre-print servers (15hr) - classify the results by field and stash that in the parquet file (15hr) - maybe promote parquet file to be a database (sqlite is probably good enough) - write some scripts / dashboard to show the results (25hr) - write jobs to update once a month with new papers (15hr) - extend to find other plotting tools (10hr) - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? - [ ] [name=hannah] hacktober? - [none code contributions are included too](https://hacktoberfest.com/about/#low-or-non-code) - would maybe need a tracking repo - if yes, maybe w/ designated person assigned to these prs? ### PRs and issues - [ ] [name=jklymak] rst versus md: - https://github.com/matplotlib/matplotlib/pull/24067 ## Notes ### pydata global sprints - any day of Dec 1-3 - @tacaswell can definitly do it (at least one block) - @story645 will post to discourse looking for more voluneteers --------------------------- # September 29, 2022 _attending_: @jklymak, @story645, @IGuKs80UTJCig4yt6Zos7w (greglucas), @QuLogic, @timhoffm, @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ (eric), Kirsten, ## Agenda ### Old Business - [x] [name=hannah] scientific python discord server https://discord.gg/vur45CbwMz ### New Business - [x] [name=hannah] New meeting doc page - this one is laggy - [x] [name=hannah] PyData Global sprints Dec 1 to 3 - [x] [name=hannah] needs sorting milestone [description](https://github.com/matplotlib/matplotlib/milestone/25) - [x] [name=hannah] regression?0 [mpl.colormaps[None]](https://github.com/matplotlib/matplotlib/issues/23981) - [x] [name=Kirsten] styles - [x] [name=QuLogic] 3.6.1 release ## Notes ### Need new agenda ### Discord server - scipy... someone will be on discord... - migrate our discourse to scipy server? - consolidated - still some legal issues - @Noa @melissawm - soft roll out ### PyData Global Sprints Dec 1 to 3 - contact Hannah if you want do this ### "needs sorting" milestone - can just remove ### colormap None - https://github.com/matplotlib/matplotlib/issues/23981 - inconsistent between `cm` and `colormaps`. - colormaps is a look up `colormaps[None]` versus `cm.get_cmap(None)`. - maybe add `colormaps.get_cmap`? - suggest they should handle *None* explicitly and ask if that is super inconvenient? - does it have to match a *dict* completely, and include *None* as a key? (casswell thinks yes) ### 3.6.1 Release - to tag today or tomorrow - no show stoppers open recently - https://github.com/matplotlib/matplotlib/pull/24047 - https://github.com/matplotlib/matplotlib/pull/24046 #### mpl-sphinx-theme - some issues with bigger changes - fixes happen and flow through - 3.7 etc may be issues... - need reasonable number of rebuilds in child sites... ### Styles... - Issues with "polished" styles - encouraging style libraries/mini packages - - https://github.com/matplotlib/matplotlib/issues/17978 - encouraging loading from local directory - adding a handful of stylesheets - can put in new styles w/o disadvantages - updating styles needs versioning - updating the style tutorial - https://matplotlib.org/stable/tutorials/introductory/customizing.html#sphx-glr-tutorials-introductory-customizing-py - D3.js as an example - --------------------------- # September 22, 2022 _attending_: @efiring, @QuLogic, @story645, ## Agenda ### Old business ### New Business - [x] [name=QuLogic] mpl-altair status? https://matplotlib.org/mpl-altair/ is broken - [x] [name=hannah] scientific python discord server https://discord.gg/vur45CbwMz - [x] [name=hannah] broken homepage search https://github.com/matplotlib/mpl-brochure-site/issues/65 ### Issues ## Notes ### MPL Altair - redirect to github repo ### Broken homepage search - @QuLogic will investigate --------------------------- # September 15, 2022 _attending_: ## Agenda attending @tacaswell , @QWhXj01mSwmTjk5kN1H_qQ (Eric), @oscargus @story645 @QuLogic , @jklymak ### Old business ### New Business ### Issues - [x] [name=jklymak] sampledoc site? https://github.com/matplotlib/sampledoc/issues/26 - [ ] [name=oscargus] [name=jklymak] Future of mpl_toolkits? See e.g. https://github.com/matplotlib/matplotlib/pull/23863 ## Notes ### sampledoc site? https://github.com/matplotlib/sampledoc/issues/26 - remove but how - https://ipython.readthedocs.io/en/stable/sphinxext.html - open PR to ipython to move content there - @jklymak to ask @StefRe to open PR... - Some of content useful sphinx tutorial. M aybe put in out main docs under dev guide. - @jklymak open as new issue on our main repo to include as tutorial for our devs. - banner the site with unmaintained, and archive the repo when done ### mpltoolkits - mpl_toolkits was mostly the work of one (now inactive developer) - lightly tested and documented - gives us two ways to do the same things - have been some efforts to pull the best ideas from mpl_toolkits and pull them into the main libary - this means things have broken over time - does it make sense to document and test as-is? - mpl_toolkits is a namespace package - using the old version of namespace package mechanism - third-party packages can tack stuff into our namespace - best known actualy third party is basemap (which we are trying to end of life) - basemap -> cartopy still not an easy move - we probably can never remove this (or move to new version of mechanism) - the things we ship are much better tested than fully external - long term options - push to external package (like we did with mpl-finance) - not really tenabale as we have been shipping it forever - pull functionaliity in to main library - there are good ideas in there we want to capture - demonstrating we can re-implement toolkit API in terms of new API is good validation that the functionality is ported - make toolkits un-needed but maybe not officially deprecate - proper 3D? - do we want to keep doing our hacked-up 3D? - pro: it mostly works - con: it only mostly works - there are some ideas of what full 3D integartion would look like - at least a year of senior engineeer - ways - full openGL all 3D all the time - mixed-mode with some vector / some - push rendering off to openGL, add to figure with `draw_image` - may require clever clipping logic - can we extend our transform stack to be 3D -> 2D aware - technically pdf supports 3D (?) - there is a vulcan based library that mimics cairo - @QuLogic has done some preliminary work - might be able to do it all in the backend (??) - some concerns that we won't be able to take advantage of all the compute power of the GPU - there are some outstanding API changes proposed by @timhoffm that will make this easier - removing `set_3D_properties` ### mpl 3.6 Everything is done except for theme questions. --- # September 8, 2022 _attending_: @tacaswell, @greglucas, @dopplershift, @ianthomas, @jklymak, @efiring, @timhoffm, @oscargus, @QuLogic, @melissawm, @story645 ## Agenda ### Old Business ### New business - [x] [name=hannah] project privacy setting defaults to owner - can it default to project creator - https://github.com/orgs/matplotlib/projects - [x] [name=greglucas] New contributor meeting recap - GitPod (can have a fully built docs and project ready to go for simpler changes) - What dependencies are required in certain situations can be confusing [#23823](https://github.com/matplotlib/matplotlib/pull/23823) - People don't want to install all dev dependencies if the test they are adding don't require the specific extra. - Do we need Inkskape to add an SVG image comparison test, or can that be purely text-based? ### PR and Issues - [x] [name=tacaswell] pick up a pybind11 dependency https://github.com/matplotlib/matplotlib/pull/23787 - [x] [name=jklymak] clearing axes https://github.com/matplotlib/matplotlib/pull/23808 - [x] [name=oscargus] How should the ps backend behave in relation to paper size and ps output (not eps)? - Paper selection is (and has for long been) broken: [#7551](https://github.com/matplotlib/matplotlib/issues/7551) [#16657](https://github.com/matplotlib/matplotlib/issues/16657) - Using a figure size large than letter paper will crop it to letter paper for ps (not eps) - Is there a use case where someone actually expects letter paper without specifying it explicitly? - Suggestion: - Add a "figuresize" (or whatever the consistent name is) for `ps.papersize` - Correct the "auto" paper selection, breaking current behaviour, but actually doing what it is supposed to. [#22796](https://github.com/matplotlib/matplotlib/pull/22796) - possibly add some more options, like "autous" and "autoiso" to select among a subset of sizes. - Probably better suggestion from [name=anntzer]: skip the `papersize` completely and allow setting `figsize` to either `"a4"` or `mpl.getpapersize("a4")` - [x] [name=oscargus] colorbar hatch bug fix (for 3.6?) https://github.com/matplotlib/matplotlib/pull/23684 - [x] [name=oscargus] version switcher broken https://github.com/matplotlib/matplotlib/issues/23794 - [x] [name=greglucas] pyproject.toml migration [#23815](https://github.com/matplotlib/matplotlib/issues/23815) ## Notes ### Projects - only owner can change privacy of projects - person who created project can set privacy - set that members can change privacy ### New contributor meeting #### gitpod - https://gitpod.io/ - gitpod: new contributors spun up quickly - vscode in browser; - maybe quicker? - Melissa and Noa maybe make? - pre-built install might speed up initial development (docs or source) - pandas/numpy have this already. - https://github.com/pandas-dev/pandas/pull/48107 - portable between computers because on web - just an extra yaml file... - need prebuilt docker file - downsides - more to maintain (but can be done with an action) - descision: - lets do it! #### question about oddles of dependencies - can not add an svg test case without having inkscape installed - text version of svg not stable over time -> render inkscape to png - update dev dependencies explanations (svg, pdf in particular) ### pybind11? - previously distutils to complile - array view class to wrap numpy, vendored in Matplotlib. - pybind11 gives us this without our home-made wrapper - still uses distutils for compiling - tested all the time - has an array templated class (and lists and tuples) - Are those parts tested well? - probably because they are acceltrated parts of code base - can be extended one extension at a time... - too much work - first extension needs build extension to work - pyproject.toml? - at end throw away wrapper codes. - Tom, Ian, in favour - hybrid worse? - Issue with todo list.. ### pyproject.toml - declarative replacement for setup.py - upstream is away from setup.py - this is a vector for running arbitrary code - the down side of pyproject.toml is you can not run arbitrary code - have a PR that is partially working - local linking / manifest issues - we have a very complicated setup.py - no one knows how it really works anymore - with pyproject.tmol - list all your build(install) time dependencies - makes a virtual env and installs into that venv and build a wheel - install the wheel back to your actually env - pure-python can drop setup.py - c++ extensions require a setup.py - provides a way to make sure build deps like (pybind11) are there - has standard way to specify test (or other extra) depenedcies - works in contourpy... - 1: static to toml, 2: getting rid of setup.py - move to meson? - follow Numpy? - get rid of old C++ and can build using pybind11 w/o numpy at build - Decision: should start migrating - start w/ static - move to pybind11 do the rest? ### quick PRs scan - colorbar hatch: seems correct, do not need to spend call time on it - can handle the version switcher off line (the paths have extra elements). ### ps backend - ps has papersize flag... - ps has standard papersize - why are we still supporting ps (as oppossed to eps) - there are still publishers that still require eps - could we get eps/ps support via pdf and then converting with ghostscript - optional distiller in rcParams - Solve large files with Latex even with no text. ### clearing axes via `ax.clear()` https://github.com/matplotlib/matplotlib/pull/23808#pullrequestreview-1099932104 - not clear how much of the Axes we should reset to tabla rasa - may want to keep some (or all) of the styling on the ticks - very coupled to the internal state of tick params - proposal from Tim: - revert the last PR that touched this code as it was intended to only be a code clean up not a - this gets us back to 3.5 behavior - for 3.7: - @IGuKs80UTJCig4yt6Zos7w remembers prior discussion about this - we talked about adding a `ax.reset` method to really reset the axes and `clear` is gentler - A lot of complexity comes from twin axes which adjusts the visibility of labels - can not tell if the right labels are on and the left labels are off because of twinax or direct user intent - would be nice to have a list of state on axes - then list of what clear does. - `clear` gets called internally to initialize an axes! ### 3.6 - working on API changes and whats new - search bar? - pydata sphinx theme updates? - our search button --- # September 1, 2022 _attending_: @tacaswell, @greglucas, @QuLogic, @melissawm, @story645 ## Agenda ### old business - [x] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/22700 - discussed on June 23, but I see no conclusion - [x] [name=tacaswell] 3.6.0 state ### new business - [x] [name=tacaswell] rename our weekly call on https://scientific-python.org/calendars/ to "Plot Plotting" - [ ] [name=oscargus] How should the ps backend behave in relation to paper size and ps output (not eps)? - Paper selection is (and has for long been) broken: [#7551](https://github.com/matplotlib/matplotlib/issues/7551) [#16657](https://github.com/matplotlib/matplotlib/issues/16657) - Using a figure size large than letter paper will crop it to letter paper for ps (not eps) - Is there a use case where someone actually expects letter paper without specifying it explicitly? - Suggestion: - Add a "figuresize" (or whatever the consistent name is) for `ps.papersize` - Correct the "auto" paper selection, breaking current behaviour, but actually doing what it is supposed to. [#22796](https://github.com/matplotlib/matplotlib/pull/22796) - possibly add some more options, like "autous" and "autoiso" to select among a subset of sizes. - Probably better suggestion from [name=anntzer]: skip the `papersize` completely and allow setting `figsize` to either `"a4"` or `mpl.getpapersize("a4")` - [x] [name=hannah] New Contributor Meeting Sept 6 @ 5:00 UTC - https://hackmd.io/TYTHxxvSRWugPCPEOox2gA ## notes ### rename - yes, but make sure we are clear what it is - https://github.com/scientific-python/scientific-python.org/pull/304 ### 3.6.0 update - some doc realated issues with the theme - no known show-stopper bugs ### relook at #22700 - https://github.com/matplotlib/matplotlib/pull/22700 - issue is conflict between where numpydoc and pep-257 says to document thet parameters of the init method of a class - https://github.com/python-lsp/python-lsp-server <- breaking this project - https://github.com/numpy/numpydoc/issues/328 is only reference to pep-257 on numpydoc - our conclusion is that we should open an issue on numpydoc (@melissawm will do) ### new contributor meeting - scheduled for Sept 6 # August 25, 2022 _attending_: @tacaswell, @QuLogic, @greglucas, @efiring, @story645 <!-- Add [name=@myname] to items --> ### Old Business - [ ] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/22700 - discussed on June 23, but I see no conclusion (moved forward) ### New Business - [ ] [name=tacaswell] 3.6.0rc1 fallout / final steps - [x] cla/clear issue https://github.com/matplotlib/matplotlib/pull/23735 - [x] memory leak https://github.com/matplotlib/matplotlib/pull/23712 - [ ] repllite in docs https://github.com/matplotlib/matplotlib/pull/22634 - [ ] https://github.com/matplotlib/matplotlib/issues?q=is%3Aopen+label%3A%22Release+critical%22+milestone%3Av3.6.0 - [x] do we want and rc2 ? ### PRs and Issues #### memory leak #23712 - push responsibility of calling gc collect back to user - possibly incorrect sweep when running event collection loop - Eric: first step in a process to review/clean up memory consumption - Tom: tree structure: systematic push to replace references up - child to parent: weakref - parent to child: hard ref - follow up: @tacaswell writes issue for 3.7 proposing larger memory management strategy - Target 3.6 or 3.5.4? - Could be considered a bug, but unknown if this is a regression or not. - Plan on targeting 3.6 for now #### cla/clear #23735 - `clear` was alias for `cla`, decided to switch `cla` as alias for `clear` - didn't totally update internally, so baseclass was calling the wrong clear - PR says to recommend use of whichever subclass defines/uses - clear vs cla - shouldn't fallback on cla, instead explicitely define clear or otherwise handle problem - can't fix supercall to cla - follow up: needs GIANT NOTE in release note w/ maybe potential work arounds - @timhoffm recommends deprecating it in subclasses - defer to 3.7 - @greglucas pending deprecation for 3.6 #### rc2 - yes #### no dot seaborn - preserve dot for imports - @tacaswell proposed `seaborn-v0_VERSION-stylename`, has consensus #### colorbar w/ empty mappable can't steal space #23709 - 3.6 doesn't steal from current axes and mappable does not have an axes to steal from - Follow up: better error message `Axes must be specified-pass in `ax` to colorbar` - previously called plt.gca() if there was no axes #### toolbar instantiation in notebook 23699 - unclear if on mpl or ipympl side - related: - https://github.com/matplotlib/ipympl/issues/426 - https://github.com/matplotlib/matplotlib/pull/22454 #### colorbar deprecation - remilestoned to 3.7 #### mpl_toolkits.axes_grid still mentioned as maintained #23560 - can go in w/ 3.6 --------------------------- # August 18, 2022 _attending_: @tacaswell, @QuLogic, @timhoffm, Greg Lucas (@greglucas), @story645, @oscargus, Jody Klymak (@JKlymak)), Jakub Klus, Antony Lee (@anntzer), Eric Firing (@efiring) <!-- Add [name=@myname] to items --> ## Agenda ### New Business - [x] [name=tacaswell] 3.6.0rc1 blockers? - [x] https://github.com/matplotlib/matplotlib/issues/20853 - [x] https://github.com/matplotlib/matplotlib/pull/23525 (sneak this fetaure under the wire?) - [ ] [name=oscargus] Very long files for some modules (4680 lines for `patches.py`). - What is the opinion on splitting files into subdirectories and using an `__init__.py` with an `__all__`-statement? (Obvious drawbacks: any open PR will have to be significantly modified, risk of circular imports, many files in total. Obvious advantages: shorter files to scroll through, faster linting in editor, "better" practice.) - [x] [name=oscargus] Can/should font fallback be used in mathtext? [#10029](https://github.com/matplotlib/matplotlib/issues/10029) ### PRs and Issues - [ ] [name=QuLogic] `dark_background` grid style https://github.com/matplotlib/matplotlib/pull/23598 - [ ] https://github.com/matplotlib/matplotlib/issues/23599 - [ ] [name=noatamir] follow-up on `add new showcase example, replace gendered one` [#23365](https://github.com/matplotlib/matplotlib/pull/23365) - [x] [name=oscargus], [name=jklymak], [name=timhoffm] [#23592](https://github.com/matplotlib/matplotlib/pull/23592) Several options for errorbars and caps in polar. Which to select? - [ ] [name=oscargus] Where should TextPath be imported from? (text: [#23576](https://github.com/matplotlib/matplotlib/pull/23576), textpath: [#23565](https://github.com/matplotlib/matplotlib/pull/23565), hardly both locations?) - [x] [name=tacaswell] bar legend labels https://github.com/matplotlib/matplotlib/pull/23525 - [x] [name=anntzer] merge subplotbase into axesbase https://github.com/matplotlib/matplotlib/pull/23573/ - [x] [name=timhoffm] prepare for a `rcParams` -> `config` migration? i.e. introduce `config` as synonym for `rcParams` on a provisional basis. (there's more to come: https://hackmd.io/jd_7FjxNQ4y7XgNknvmvGQ#general-issues-with-rcparams) ### Open PRs 326 in total, 70 not draft, 20 (not draft and at least) single approval ## Notes #### intros #### Do we want to do a 3.6.0beta? - do want to do deprecations after rc1 - there are is a scheduled deprecation of color maps - https://github.com/matplotlib/matplotlib/issues/20853 - do we mean - get_cmap / register_cmap / unregister_cmap - the named colormap functions - both? - thing to do for 3.6: - pending deprecations on the register function - punt to later - the top level color map access - if we get the above in in the next 24hrs, tag rc, if not go with beta #### pass labels to bar - allow `labels` to be a list (matching the length of the bar input) - previously would put a single label on the `BarContainer` (pseudo-artist) used to represent the group - we now put labels on the individual `Rectangle` artists - every bar will get a label - currently no logic to automatically try to de-duplicate legend entries - @story645 will open an follow on issue or PR with a gallery example - updated: original PR author put in this PR #### Error caps in polar - https://github.com/matplotlib/matplotlib/pull/23592 - curved error bars. - arcs: gets transformed on zoom - interpolation steps interal API: https://github.com/matplotlib/matplotlib/blob/main/lib/matplotlib/path.py#L115 - for example, usage in [axvspan](https://github.com/matplotlib/matplotlib/blob/ba400c270f8791774be515a0f86225a588840bcb/lib/matplotlib/axes/_axes.py#L1014) and [bar](https://github.com/matplotlib/matplotlib/blob/ba400c270f8791774be515a0f86225a588840bcb/lib/matplotlib/axes/_axes.py#L2434) - do we want to take with straight version ASAP to get in for 3.6? - no, nothing urgent, better to get "right" version in in one shot #### Font fallback - https://github.com/matplotlib/matplotlib/issues/10029 - fallback is currently hand written - issues with old CM encoding that makes it very hard to port to modern encoding #### Rc param discussion - name hard to understand? - synonym `config`? - do we want to get this in provisionally for 3.6? - A very big change at the last minute! - defer to 3.7 - should do as a bigger release with API changes included. - explanation as to why to change. - old API needs to stay for ever at least aliased... - @timhoffm will open an issue #### merge SubplotBase into AxesBase - https://github.com/matplotlib/matplotlib/pull/23573/ - API hidden because the mixed class is not documented directly: axes are created via a factory. - base class get a `self._gridspec=None` by default. - breaks `isinstance(ax, SubplotBase)`. - breaks `hasattr(ax, get_gridspec)` which will now always return *True* - needs a transition plan if we do magic - hard to include a deprecation message - consensus is to merge for 3.7 and accept the breakage #### review things with one approval for 3.6! --------------------------- # August 11, 2022 _attending_: Melissa Mendonça (@melissawm), Noa Tamir (@noatamir), Greg Lucas (@greglucas), Elliott Sales de Andrade (@QuLogic), Thomas Caswell (@tacaswell), Eric Firing (@efiring), Hannah (@story645) <!-- Add [name=@myname] to items --> ## Agenda ### New Business - [x] [name=hannah] Small dev grant - Due Sep 2, 2022, $5K-$10K - https://numfocus.typeform.com/to/mbtH7w - [x] 3.5.3 out! - [x] 3.6.0 ### PRs and Issues - [ ] [name=QuLogic] `dark_background` grid style https://github.com/matplotlib/matplotlib/pull/23598 - [ ] https://github.com/matplotlib/matplotlib/issues/23599 - [ ] [name=noatamir] follow-up on `add new showcase example, replace gendered one` https://github.com/matplotlib/matplotlib/pull/23365 - for next meeting - [ ] [name=tacaswell] font fallback for vector backends https://github.com/matplotlib/matplotlib/pull/23559 ## Notes ### small dev grant - possibly pool to support cgholke's work (binary builds) - contract for freetype-?raqm migration - typing work - Some previous typing discussion: https://discourse.matplotlib.org/t/i-see-the-type-hints-from-vs-code-but-i-dont-understand-where-they-are-defined-in-the-code-in-github/22786/5 ### open collective donations - can now take money directly through open collective, do we plan to use it? - have not talked about it yet so not sure ### 3.5.3 ### 3.6.0 - wheels (2 PRs) https://github.com/matplotlib/matplotlib/pull/23557 https://github.com/matplotlib/matplotlib/pull/23556 - font fallback on vector backends https://github.com/matplotlib/matplotlib/pull/23559 ### Dark theme - Style discussion - Should we relax style immutability? - Should make the current policy explicit in the documentation --------------------------- # August 4, 2022 _attending_: @noatamir, @tacaswell, @oscargus, @greglucas, @story645, @QuLogic, @timhoffm, @QWhXj01mSwmTjk5kN1H_qQ (efiring) <!-- Add [name=@myname] to items --> ### Old business ### New Business - [x] [name=QuLogic] Move wheel building off of macos-10.15? https://github.com/actions/virtual-environments/issues/5583 ### PRs and Issues - [x] [name=oscargus] Pinging about these, somewhat old, PRs which recently have gotten a final(?) touch: https://github.com/matplotlib/matplotlib/pull/22566 https://github.com/matplotlib/matplotlib/pull/23196 https://github.com/matplotlib/matplotlib/pull/23340 (I may not attend) - [x] [name=tacaswell] font fallback https://github.com/matplotlib/matplotlib/pull/20740 ## Notes ### mac OSX wheel build issue - cibuildwheel is not currently working because 10.15 is in a brownout - can fix by bumping the version of the runner - does this require us to update minimum supported version of OSX? - maybe? We think we can build old wheels on new systems - need to track down an old machine to test on - we currently set the deployment target to 10.12 - plan: - update to use new runner but leave old build target - find at least 1 10.12 mac to test on ### PRs that need attention ### fonts - https://github.com/matplotlib/matplotlib/pull/23293 <- brute force way to support ttc - conceptually not great (caching issues!) - pratcially really fast way of getting it done - @tacaswell will look into making his work on this - there may be a way to do this that gets improved functionality inside and not break external usage. - font fallback PR - provides: - fallback support in Agg - a reasonable public API to using the fallback - does not provide - support for vector backend - ttc support - public API for finding multifonts - MERGED! - add public API to rebuild - high(est) priority is to get vector working as well - other long term - move to use https://github.com/HOST-Oman/libraqm ### new contributor meeting - two new contributors joined this month - both are youtubers who have made videos about Matplotlib - one was https://www.youtube.com/charmingdata - good opprotunity to start a collaboration - partner with people who are teaching - place to showcase people teaching (uptodate) methods - other was more interested in contributing to code - if we go down the video channel route they can help - https://gitter.im/matplotlib/community - Next meeting on September 6 (first Tuesday of every month) --------------------------- # July 28, 2022 _attending_: @tacaswell @QuLogic [@greglucas](@IGuKs80UTJCig4yt6Zos7w) [@jklymak](@h1IxLDvDQ6alkgMzaANm6Q) @story645 [@ianthomas23](https://github.com/ianthomas23) [@scottshambaugh](https://github.com/scottshambaugh) [@melissawm](https://github.com/melissawm) <!-- Add [name=@myname] to items --> ### Old business ### New Business - [x] [name=tacaswell] drop mac stadium contract - [x] [name=hannah] july numfocus news letter, due EOD today - [x] [name=tacaswell] https://github.com/matplotlib/matplotlib/pull/23462 how to backport - [x] [name=melissawm] Project to triage new contributors (using the existing [bot](https://github.com/matplotlib/matplotlib/blob/main/.github/workflows/pr_welcome.yml)) ### PRs and Issues - [x] [name=scottshambaugh] demo 3d panning & zooming from https://github.com/matplotlib/matplotlib/pull/23449 ## Notes ### Macstadium: drop access of $80/mo and either use Amazon or someone's office machine. ### Numfocus newsletter - monthly newsletter - add to agenda every second month near 15th. ### Backport: https://github.com/matplotlib/matplotlib/pull/23462 - figure comparison instead of image test... - double up the tests? ### New contributor triage: - github project to track new cntributions - maybe filter by commenter? Or bot phrases... - tools folder versus new project? - make a project and add PRs to Project as kanban board... - Maybe use bot but issues with permissions in github actions. - can make access tokens that have arbitrary permissions - could add hooks - could assign bot to issue - Maybe do by hand. - just need triage rights ### other comments - version added useful... - retroactive hard... - open PR with what this would look like on a few recent changes... - more dashboarding of PRs? - track new contributors in release notes... - track new feautures etc like https://scikit-learn.org/stable/whats_new/v1.1.html ### demo 3d panning & zooming from https://github.com/matplotlib/matplotlib/pull/23449 - very cool work! - discussion about how to do 'zoom box' zooming with fixed aspect ratio --------------------------- # July 21, 2022 _attending_: @tacaswell @QuLogic @story645 @QWhXj01mSwmTjk5kN1H_qQ @oscargus @melissawm @timhoffm ### Old business ### New Business - [x] Moving mlab to mplsignal? Problems to do a proper extraction with history. ### PRs and Issues - [x] https://github.com/matplotlib/matplotlib/pull/23387 Worthwhile to add an sdist test? Multiple platforms/Python versions? - [x] https://github.com/matplotlib/matplotlib/pull/23101 - [x] https://github.com/matplotlib/matplotlib/issues/20853 - [x] https://github.com/matplotlib/matplotlib/pull/23455 - [x] https://github.com/matplotlib/matplotlib/pull/23233 - [x] [name=hannah] add names to do items `[name=my_name]` ## Notes ### scipy recap - went well, inspired a bunch of widget work by @QuLogic - down-stream libraries seemed happy ### mlab -> mplsignal - trying to move mlab / test mlab to mplsignal - trying to filter branches to keep history - suggestion - try git tree / branch / magic filter a couple more times - if that fails, just copy ### setuptools scm https://github.com/matplotlib/matplotlib/pull/23387 - we should push to setuptools scm to 7 on main branch - look at how to fold this test into cibuildwheel which can now bulid from sdist - add check that the version is not the fallback ### move around show code - moved to the manager - maybe move event loop up to manager too ### pending deprecations in cmap functions https://github.com/matplotlib/matplotlib/issues/20853 @timhoffm will open PR to start deprecation cycle on the correct cmap related functions ### deprecate axis alais properties on axes3D Approved! ### Default stem marker color follows the linecolor https://github.com/matplotlib/matplotlib/pull/23233 quickly reviewed and merged ### names on todos please add your name to your agenda item ``[name = your name]`` --------------------------- # July 14, 2022 _attending_: @melissawm, @story645 , @QWhXj01mSwmTjk5kN1H_qQ (efiring), Andrew Fennel ### Old business ### New Business ### Notes - someone volunteering to do a walk through of the source code - Examples: https://youtu.be/mTWpBf1zewc, https://youtu.be/V1FCSijy460 - structural overview documentation - modern version of open architecture paper - heirarchy of deps - general overview of draw stack - implementation details - could help facilate walk through + discussions of major changes --------------------------- # July 07, 2022 ## Agenda _attending_: @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ (efiring), @melissawm, Frank Sauerburger, @QuLogic, @pXw4hSgTQF2--OciPYwa1w (anntzer), @story645 ### Old business ### New business - [x] scipy planning (highlights for @QuLogic 's update talk + sprint planning) - [ ] font fallback PR - [ ] 3.6 planning / triage - [ ] should we do 3.5.3? ## Notes ### Scipy - Caswell, Elliott, May - highlight slides for scipy - updated website (theme + plot types) - subfigure + subplot mosaic - last year 3.5 was around the corner, but did preview some 3.5 stuff - third-party webpage - mpl-cookie-cutter - new selectors - new members, Kyle, Noa, Melissa; also new contributors meeting ### font fallback Moving! ### 3.5.3 Yes ### 3.6 - font fallback biggest blocker - https://github.com/matplotlib/matplotlib/issues/20853 - part of 5 step plan to lock down how we provide colormaps - need a PendingDeprecation on `matplotlib.cm.viridis()` and friends - https://github.com/matplotlib/matplotlib/pull/16931 - metadata for different interaction events was incorrect - if mouse is outside of the window -> press ctrl -> move mouse back into window - matplotlib missing the keydown so does not report ctrl in the mouse event - the GUI toolkit _does_ know if the control is down, but we are depending on our own accounting - when a UI event happens - base methods in backend base - done in a way that is hard to modify - this is a better way of doing the plumbing - let the backends directly create our versions of the Events - easier to enrich the event in the future without touching _every_ backend and changing public API - seems like good idea, @tacaswell will review - https://github.com/matplotlib/matplotlib/pull/23291 - currently what is a backend is slightly ill-defined - pushing to "a backend is something with a FigureCanvas class" - transforming all of the methods we currently expect to be methods - already did new_figure_* methods - also need it for show (there is open PR) - do we need "draw_if_interactive" - used to be called at the end of ever pyplot function + figure creation + unpickle - no longer called now that we have stale machinery - proposal - can not customize what happen with as stale figure - if you want to customize creation / unpickling -> put into new_manager_given ... - this is removing a customization point - could warn, but would make it very hard to write using both old and new APIs - if we detect "old way", use draw_if_interactive - if we detect "new way", ignore - https://github.com/matplotlib/matplotlib/issues/21167 ---------------------------------------------------- # June 30, 2022 _attending_: @tacaswell @noatamir @h1IxLDvDQ6alkgMzaANm6Q (jklymak) @QWhXj01mSwmTjk5kN1H_qQ (efiring) @timhoffm @IGuKs80UTJCig4yt6Zos7w (greglucas) @story645 @dopplershift ## Agenda ### Old Business - [ ] mission statement https://github.com/matplotlib/matplotlib/pull/20220 ### New Business - `is:pr is:open draft:false`: 53. - 14 with approved reviews... - [name=noatamir] [SciPy 2022 Scavanger Hunt](https://github.com/alt-text-task-force/.github/blob/main/profile/scipy-2022-msg.md) - https://github.com/alt-text-task-force - [name=greglucas] New contributor meeting date? July 5th, August 2nd ### PRs and Issues - https://github.com/matplotlib/matplotlib/pull/23148 move security issues to steering council list from matplotlib@numfocus.org - https://github.com/matplotlib/matplotlib/pull/23374 move CoC reporting to streeing council list from matplotlib@numfocus.org ## Notes ### Mission statement - main sticking point is we are identifying people / roles - should try to identify the tasks we support - our goal is data visualiaztion - not "hand drawing" / "pixel poking" - we are a foundatinoal tool - need to be extensible to domains - also want to be usable stand-alone - scope creep can happen on UI - scope versus mission - scope is pretty clear - how to define a mission? - https://matplotlib.org/stable/users/project/history.html ### scavanger hunt @noatamir will look into if we can actually do it because so many of our images are generated by sphinx gallery (may need up stream PR) --------------------------- # June 23, 2022 _attending_: efiring, @IGuKs80UTJCig4yt6Zos7w greglucas, afennell, thoffman, oscargus, story645, jklymak ## Agenda ### Old Business - [ ] (DEFER:@tacaswell not here) mission statement https://github.com/matplotlib/matplotlib/pull/20220 ### New Business - `is:pr is:open draft:false`: 56. - 14 with approved reviews... ### Issues and PRs - automatic font via Locale : https://github.com/matplotlib/matplotlib/pull/22355 - norms from scale names: https://github.com/matplotlib/matplotlib/pull/20752 - issue with docstring and not using docstring interpolation (@timhoffm) - infer canvas size cairo: https://github.com/matplotlib/matplotlib/pull/22004 - @QuLogic waiting for final comment - rotating rectangle selector https://github.com/matplotlib/matplotlib/pull/21945 - Docstrings: - https://github.com/matplotlib/matplotlib/pull/22700 __init__ or class? - https://discourse.matplotlib.org/t/meaning-of-args-not-clear/22937/6 - should `*args` appear directly in the `Parameters` section or is it ok to infer (eg. https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html) - width_ratios arguments to subplots and subplot_mosaic. https://github.com/matplotlib/matplotlib/issues/21942 - https://github.com/matplotlib/matplotlib/issues/21942 ## Notes * mpl-sphinx-theme * Make a release of mpl-sphinx-theme soon * Should we point devdocs at the master branch of this? * Build and release to GitHub Pages * Mostly updates the colors to MPL colors and styling on top of pydata-sphinx-theme * https://github.com/matplotlib/mpl-sphinx-theme/pull/34 * concensus don't invert the plots for now... * https://github.com/matplotlib/matplotlib/pull/22355 - locales to set fonts - matplotlib has rcParams for this? - lets wait for #20740 - #20740: fallback - needs some dedicated work... - maybe a small grant - maybe RSE works on it.. * #21945: Rectangle selector - rectangle selection shoudl be in screen space - really hard in data space in general - what does @dstansby think should happen in polar space - have a polygon selector - does it need to be in matplotlib? - https://github.com/matplotlib/matplotlib/pull/22700 - parameters documented in the docstring of the init or the class. - numpydoc and pep are in conflict - tools have problem with putting them together - inheritence problems are less if in the class docstring versus the `__init__` - docstrings for parameters should be below the defn.. - users never see the `__init__` method themselves. - most tools handle this gracefully. - parameters should be in the `__init__` - numpydocs does work regardless of how this is done, so the stricture in the docs doesn't apply strongly to classes. - ---------------------------- # June 16, 2022 ## Agenda attending: @noatamir, @tacaswell, @oscargus, @greglucas, @efiring, @kyles, @story645, @ksunden ### Old Business - [x] review of mission statement https://github.com/matplotlib/matplotlib/pull/20220 - [ ] Do we want to support a dark theme? - [x] update on zoom license ### New Business - ### Issues and PRs - [ ] Hexbin 2:1 aspect ratio https://github.com/matplotlib/matplotlib/issues/21349 ## Notes ### condolences Elliott's grandmother passed away https://mailchi.mp/67c7dd4a049e/upcoming-events-2358601 ### NASA RSE - Kyle Sunden will be the NASA RSE in the fall ### mission statement push to next week ### should we support a darktheme on the website - support for a dark mode in general - however, we have lots of images with white backgrounds - we probably have to re-generate all of the images - or just have glaring white on dark background - this appears to be built into pydata and does all the styling image inversion in the browser - looks like it should be low impact on our complexity - lets give it a try - if we get a flood of bug reports, we can remove ### hexbin https://github.com/matplotlib/matplotlib/issues/21349 - The number of y-bins gets doubled implicitly - seems to be due to the stacking / stagger - if count strait vertically center-to-center you get the expected number - if you count zig-zag you get 2x the number - if you pass just 1 number, get second number by deviding by sqrt(3) - options to fix - document lots - add an alternative to gridsize which counts "zig-zag" - ~~add a kwarg to control vertical counting rules~~ - proably impossible to change existing behavior --------------------------- # June 9, 2022 ## Agenda attending: @melissawm, @noatamir, @greglucas, @tacaswell, @dopplershift, @efiring, @rcomer, @oscargus, @sauerburger, @story645, @timhoffm, @jkylmak ### Old Business ### New Business - [ ] review of mission statement https://github.com/matplotlib/matplotlib/pull/20220 - [x] update on namecheap email service (not enabled, intend to drop DNS entries) - [x] update on mailing list names (now all matplotlib-XYZ, still missing matplotlib-social-admin) - [x] [name=Greg, Noa] Would anyone be available to join the next new contributor meeting, July 5th, instead of Greg? ### Issues and PRs - [ ] https://github.com/matplotlib/matplotlib/pull/22329 Line 2D sequences? - [x] https://github.com/matplotlib/matplotlib/pull/23208 name of parameter? offcolor? gapcolor? - [x] https://github.com/matplotlib/matplotlib/pull/23207 should we run tests on beta versions? ubuntu 22.04, python 3.11, macos 12? - [ ] Do we want to support a dark theme? ## Notes ### Introductions ### tech updates - @tacaswell now admin on namecheap accout and can see we are not using the email accounts, intend to drop DNS - mailing list names are fixed ### new-contributor meeting update - this week we had update from Johnny on (very) early contributitons to Matplotlib and current work on table code - looking for coverage for July 5th (Greg will be on vacation) - maybe Oscar, maybe Hannah. revisit next week ### Issues - https://github.com/matplotlib/matplotlib/pull/23208 - some discussion over what the name should be - weak consensus of "gapcolor", but need input from @timhoffm - "secondarycolor" is another good option - if coming from dashed -> stripe then gap make sense - but if you start with "I want two colors" why is one of them the "gap"?! - "secondcolor" - https://github.com/matplotlib/matplotlib/pull/23207 - how much pre-releases do we want to run? - found atleast one bug with gtk4cairo - is this worth doing? - pros: catch upcoming issues early - good to have a canary to catch bigger integration issues - cons: noisy - yes, but run weekly on cron job - do not run on every PR because we already have reliability issues ### Qt related issues - maybe upstream issues with conda-forge + qt + py310 -> we will get this - look into pytest-qt plugin that can exercise a UI - @oscargus tried to do this and had issues - we run xvfb on CI - has proof of principle from @efiring in a related Qt example ### Mission Statement ------------------ # June 2, 2022 ## Agenda attending: @tacaswell, @noatamir, @story645, @timhoffm, @melissawm, @jklymak, @greglucas, @efiring, @oscargus , @franksauerburger ### Old Business ### New Business - [name=Melissa, Noa] [Grace Hopper celebration open source day](https://ghc.anitab.org/programs-and-awards/open-source-day/) (deadline is June 6) - This year, OSD will be a virtual pre-event before the Grace Hopper Celebration, scheduled for Friday, September 16th, 2022 from 8am to 3pm U.S. Pacific Time. - [name=Melissa, Noa] Sprints at SciPy (Jul 16-17), EuroSciPy? (Sep. 2) - [name=Greg, Noa] New Contributors meeting on Tuesday, June 7th at 17:00 UTC - PRs: - `is:pr is:open draft:false`: 67 - `is:pr is:open review:approved draft:false` 22 ### Issues and PRs - [ ] macosx cleanup and testing: https://github.com/matplotlib/matplotlib/pull/21755, https://github.com/matplotlib/matplotlib/pull/23059, https://github.com/matplotlib/matplotlib/pull/23060. Is there a good way to add tests for these GUI updates? Not enough Mac users, so makes it tough for reviewers to tell if it "works" or not. - [ ] https://github.com/matplotlib/matplotlib/pull/22329 Line 2D sequences? - [ ] Renderers and where to put the cache: https://github.com/matplotlib/matplotlib/issues/22744, https://github.com/matplotlib/matplotlib/pull/22745 - [ ] One final 3.4 deprecation that should be removed: https://github.com/matplotlib/matplotlib/pull/17737 - [ ] MI madness https://github.com/matplotlib/matplotlib/pull/23183 - [ ] Deprecate positional passing of most Artist constructor parameters: https://github.com/matplotlib/matplotlib/pull/23177 - Is this a good idea? - [ ] Proof of concept for adding kwdoc content to properties using a decorator: https://github.com/matplotlib/matplotlib/pull/22699 ## Notes - GHD: - will sign up, @tacaswell and @oscargus can be at the event - need 3 good first issues - Scipy-ish sprints - meetup for maintainers - spool up new folks... - EuroScipy: Tim, but not sprints. Noa - USScipy: @tacaswell and @QuLogic (maybe) - New Contributor meet 7 June - MacOS PRs @IGuKs80UTJCig4yt6Zos7w - feature parity - hard to review, ObjectiveC, put in CI testing clicks? - Aesthetic - much better mac backend faster for interactive - freetype c-memory leak in current test version. - Figure renderer... - https://github.com/matplotlib/matplotlib/pull/22745 - should cache be gotten from the canvas? - in figure. private for now.. - https://github.com/matplotlib/matplotlib/pull/17737 - complicated. Needs @anntzer to look at? - discussing pending deprecations. Many are quite old. - multiple inheritence - https://github.com/matplotlib/matplotlib/pull/23183 - probably OK, ------ # May 26, 2022 ## Agenda attending: @jklymak, @efiring, @andrew-fennell, @tacaswell , @story645, @QuLogic, @melissawm, @timhoffm ### Previous Business - SDG ideas - talked to someone recently at kitware, 10k$ may be too small for them to be interested. - still need someone to volunteer to write, lead, and manage the work. ### New Business - new @numfocus.org mailing lists/google groups - Goal is to get organizational communications out of private/single email addresses - so we have a record - more than one person gets notifications - shared credentials are a security abomination - groups we currently have and have started to use - steering-council-matplotlib@numfocus.org - for steering council discussions. - This has in the past been done via private email with the correct to: list. Is world mailable, do we want to publicize this fact (or change it)? - current membership is, as the name suggests, the steering council - matplotlib-tech@numfocus.org - the contact address for the various services (digital ocean, cloudflare, amazon,macstadium, ...) - currently me and @QuLogic - anyone else want to be added? - created but not used yet - matplotlib-social@numfocus.org - to use as the contact email for all of the social media accounts - we should add anyone who is helping to manage social accounts so everyone sees the notifications - we should start using this ASAP - coc-matplotlib@numfocus.org - use this as the CoC reporting target + CoC handling discussions - We wrote into CZI round 4 funding for COC handling. We should populate and publicize this list in conjunction with that training. - also have matplotlib@numfocus.org - initially set up to sign up for cloudflare (they wanted an @ numfocus address for some reason ) - we should stop using this and set it to forward to one of the above groups (or make a new one) - `@matplotlib.org` email aliases - it appears that cloudflare will do email alaising for domains that they have the DNS for - do we want to do anything "official" with these (e.g. forward to the above groups)? - do we want to offer and `@matplotlib.org` forwarding mailing address to committers? - there is still one thing we need to check on the technical side before we do this - there is email set up in cloudflare to an email service provided by namecheap (who is the registrar that NF uses for our domain) - need to make sure that in not actually being used as part of NF managing the registering for us! - ### PRs and Issues - [ ] https://github.com/matplotlib/matplotlib/pull/23039 helpers to expose streamplot start and stop points. - [ ] macosx cleanup and testing: https://github.com/matplotlib/matplotlib/pull/21755, https://github.com/matplotlib/matplotlib/pull/23059, https://github.com/matplotlib/matplotlib/pull/23060. Is there a good way to add tests for these GUI updates? Not enough Mac users, so makes it tough for reviewers to tell if it "works" or not. - [ ] [name=hannah] search on homepage https://github.com/matplotlib/mpl-brochure-site/issues/50 - maybe globally move search bar to nav bar - PR to enable this would be on https://github.com/matplotlib/mpl-sphinx-theme ## Notes ### Small Development Grant: - hard to get small contract for $10k at kitware - switching to ramq instead fo freetype modern fontshaper can do non-western scripts - needs volunteer to write grant and supervise ### Numfocus email and coms - can have email to steering council See above. - social and social-admin ### issuse - 23039 - not clear that our streamlines should be trusted for science - if you want to adjust the artists, we alerady expose the `LineColleciton` as public API - but we had the view that contouring (which is much more physically based and solid) was not public - - OSX cleanups - wait for @IGuKs80UTJCig4yt6Zos7w to be back - website: - search bar placement - needed on front page - should be as consistent as possible - quality of search - pretty crude. - --- # May 19, 2022 attending: @noatamir, @melissawm, @QuLogic, @greglucas, @jklymak, @efiring, @andrew-fennell, @tacaswell, @story645 ## Agenda ### Previous Business ### New Business - [x] [name=hannah] small dev grant round 2 - $10K, Deadline: June 5, 2022 - https://numfocus.typeform.com/to/mbtH7w - [x] PRs: `is:pr is:open draft:false` = 73 PRs that need action. ### PRs and Issues - [x] font fallback https://github.com/matplotlib/matplotlib/pull/20740 - [x] units strategy discussion - what are the plans here? - https://github.com/matplotlib/matplotlib/issues/23015 for the "numpy immediately" approach. - [ ] https://github.com/matplotlib/matplotlib/pull/23039 helpers to expose streamplot start and stop points. - [ ] macosx cleanup and testing: https://github.com/matplotlib/matplotlib/pull/21755, https://github.com/matplotlib/matplotlib/pull/23059, https://github.com/matplotlib/matplotlib/pull/23060. Is there a good way to add tests for these GUI updates? Not enough Mac users, so makes it tough for reviewers to tell if it "works" or not. - [ ] [name=hannah] search on homepage https://github.com/matplotlib/mpl-brochure-site/issues/50 - maybe globally move search bar to nav bar - PR to enable this would be on https://github.com/matplotlib/mpl-sphinx-theme ## Notes - [ ] small development grant? - $10k for various things - typing? $20k - numpy did it incrementally - $10k could go some way... - updating freetype - how to do with without breaking all the tests? - finish the gsoc - hash based like pytest-mpl? - always 3D work - docs, tests - "proper" - make use transform stack - openGL backend? - this is probably enough for a working prototype - our lower end transform is not well suited to GPUs. - vtk integration - @tacaswell will ping Marcus about VTK integration - bring cairo backend into core - cairo not being actively maintained - other folks moving to opengl or their own proprietary renderers. - investigate a new render API? ### ipympl discussion - issue with widget layout (buttons overlapping plot) - some issues saving - maybe fixed in newer versions(?) ### GSOD - contracting out - infrastructure and information architecting - (oops deadline March, maybe next year) ## Issues and PRs ### font fallback - https://github.com/matplotlib/matplotlib/pull/20740 - @tacaswell and @QuLogic working on it still - discussion of possible memory leaks fonts? - caches for fonts? - used to load _all_ fonts! - there are libraries that can do this, and in mpl-cairo. ### units strategy... - NASA grant will start looking at state of things. - lazy loading advantage of keepng pointers to artists. - can have methods on arrays that get packaged through.. - -------