# Matplotlib Weekly Meeting 2022-10-06 to 2023-03-02 [![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. ## Oct 6 2022 -- 2 Mar 2023 ###### 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) #### [RSE worklog](https://hackmd.io/@matplotlib/HyVoUHlSo) ----------------- # 2 March 2023 _attending_: ## Agenda ### Old business ### New business - [x] RSE reports - [x] 3.7.1 release? - [x] Stale label? - [x] 3.8 goals? - [x] pydata-sphinx-theme 0.13 issue - [x] Matplotlib website has 2 references of 3.6 being stable (matplotlib.org announcements, https://matplotlib.org/stable/index.html) ### Issues and PRs - [x] [name=QuLogic] [#2123](https://github.com/matplotlib/matplotlib/issues/2123), [#13648](https://github.com/matplotlib/matplotlib/issues/13648), and [#19955](https://github.com/matplotlib/matplotlib/issues/19955) are semi-duplicates, but they've all got some long conversation on them, so I'm not sure which should be closed ## Notes ### RSE reports - @tacaswell: PR review - @ksunden: typing PR, close to merged/reviewed; PR review; scipy tutorial proposal - @QuLogic: PR review, issue triage, 3.7.1 close, checked all dependencies in Fedora for issues with 3.7.0 ### 3.7.1 - ready to go basically (main is pandas incompatibility) - [results of Fedora dependency checks](https://src.fedoraproject.org/rpms/python-matplotlib/pull-request/37#comment-132230); appears to be no major issues to fix for 3.7.1 - tag tomorrow? @QuLogic and @ksunden - QHull license issue ### Stale bot - only doing 5-10 per day - this is due to a limit we set, could turn up - the current rep-rate seems good - be more cautious about adding "keep" label - just interacting with it is enough to get 365 days of life - useful to let these things be re-circulated ### pydata-sphinx-theme 0.13 - in 0.13.0 pst changed how they handled the logos - this broke how we updated the logos in mpl-sphinx-theme - @jklymak has a PR in with pst to enable what we need - mst will also have to change which will make specifying the logo simpler - this will require changes to most of our packages - hard-pin mpl-sphinx-theme and mpl-sphinx-theme - yes, we do want to do this ### axis limits offer autolimming - [#2123](https://github.com/matplotlib/matplotlib/issues/2123), [#13648](https://github.com/matplotlib/matplotlib/issues/13648), and [#19955](https://github.com/matplotlib/matplotlib/issues/19955) - don't have api for asking artist its limits on a given sub-range - how can we efficiently do that? - can do in pandas or xarray, but hard for arbitraty paths - close just one of them? - need to go through the transform stacks? - could add an API for ylim given xlim to each Artist - should be done as part of bigger data pipeline redesign ### 3.8 longer term plans... - Medium scale projects for RSEs one motivator - @QuLogic: - hiDPI later in stack to be more flexible between displays - contours overlap with alpha anti aliasing artifacts - Agg code exists to try and fix this - @ksunden - typing work - unit support documentation? - @tacaswell - multiple versions of freetype image comparisons - test versus previous dev - on releases as separate wheel - TTC fonts - more than one font (C layer threading) - doable: just need to be able to unpack; need a syntax to get the correct font (tuple or string with suffix) - other - Transform objects - track what co-ordinate systems they go between - move to C to gain speed? Numpy slow for small arrays - pybind11 might make this easier - open GL libraries for matrix math that may do this for us - weak references between parents and children make hard to move to C - legends overhaul? - handler on Artists to make artist for the legend. Then decoupled from Artist. - add Artist API to have "get_legend" allows pushing updates. - or sync properties... - composite Artists - overhaul rcParams: - dict subclass - custom object that has mapping API - https://github.com/matplotlib/matplotlib/issues/24585 ---------------------------- # February 23, 2023 _attending_: ksunden, chahak13, hannah, ianhi, efiring, jklymak, tacaswell, QuLogic, scottshambaugh, greglucas, anntzer ## Agenda ### Old business ### New business - [x] RSE reports - [x] PRs 329; draft:false 47 - [x] ipympl dicussion - [x] 3.7.1 critical bugs? - [ ] 3.8 goals? ### Issues and PRs - [ ] [name=jklymak] [name=anntzer] https://github.com/matplotlib/matplotlib/pull/17497 - how new C++ can we use? - [ ] [name=chahak13] https://github.com/matplotlib/matplotlib/pull/25259 - `markersize` in scatter - [x] [name=efiring] https://github.com/matplotlib/ipympl/issues/497 - ipympl design questions - [x] [name=scottshambaugh] https://github.com/matplotlib/matplotlib/pull/23485 - 3D hover coordinates - [x] [name=scottshambaugh] https://github.com/matplotlib/matplotlib/pull/25272 - 3D exact axis limits - deprecate or no? ## Notes ### RSE reports - Caswell: SDG for 100h to do scraping arXiv - Kyle: 3.7 wrap up; Release procedure docs. Accepted for GSoC so organizing that. Proposal for SciPy. - QuLogic: catching up ### ipympl - Python is being taught in jlab more and more - "nbagg" is backend for "classic" backend that we ship and behaves very much like the other GUI toolkits - saves when you save - can close the windows - does not work in jlab (for very good security reasons) - ipympl is the replacement - but has had some missing features (e.g. not saving when you exit which is now fixed) - has some concerning design choices - floating / popup toolbar - no close button to "turn off" - still needs some work - do we have enough user feedback? - how to we get the usability issues addressed? - how is ipympl goverened? - adhoc - sometimes self-merge due to lack of people who can review - how do we teach jupyter users to use ipympl rather than inline?! - ipympl seems to break often - ipympl has been moving slow - ipywidgets, jupyterlab, and matplotlib all break ipympl upstream - if we want to make this the default backend on jlab we need more something - there are some automated tests (galatta) that do run - possible things to do: - ping mpl devs on PRs - do we need to find money for this? - installation problems - split js / Python can be painful? - this is due to how ipywidgets installs work - some issues are due to details of how ipywidgets works - e.g. blocking - how do we push upstream to fix things? - Elliott has a PR to use playwright to test webagg - should be adaptable - steps going forward - better governance - some part time paid support - bot to make issues when tests fail - mpl needs to stop breaking ipympl - need a ipympl UAT ### 3.7.1 critical bugs? - units + pandas - reverted the fix and re-opened the original issue - missing license file - not clear why this is a new problem - pragmatic solution is to add a `wget` step to the jobs to pull the license file pre-emptively - aim for 3.7.1 end of next week ### markersize for scatter - have a draft PR - touches path collections and 3D path collections - https://github.com/matplotlib/matplotlib/pull/25259 - tests pass locally, but fail on CI - please take a look to make sure this is a good path before adding tests - suggestion: write the whats new ### 3-D hover co-ordinates - no way to snap to data - snap to nearest plane? - or remove? ### 3D Padding - axis limits have padding even if set automatically - break custom limits tests - rcParam? - make consistent w/ margins for 2D axes? ------------------------- # February 16, 2023 _attending_: ## Agenda ### Old business ### New business - [x] RSE reports - [x] PRs 319; draft:false 40 ### PRs and Issues - [ ] [name=jklymak] [name=anntzer] https://github.com/matplotlib/matplotlib/pull/17497 - how new C++ can we use? - [x] [name=jklymak] Stale bot? https://github.com/matplotlib/matplotlib/pull/25163 - [x] [name=jklymak] Reorg galleries [#25209](https://github.com/matplotlib/matplotlib/pull/25209) - galleries/gallery, galleries/tutorials, galleries/plot_types - See https://github.com/matplotlib/matplotlib/pull/25218 for motivation (mixed rst and py = sphinx-gallery docs) - [x] [name=jklymak] [Theta transforms in polar removal](https://github.com/matplotlib/matplotlib/pull/24834) - is this idiomatic? Seems bad to have a flag in all the examples? ## Notes ### RSE reports - @ksunden; 3 .7 release!!! yay - pandas issue: check for covnerter and units - confuses their converter - strings w/o units resets the converter to Categorical - "UTC" default unit? versus `None` - @tacaswell: also 3.7 release... ### PR s and Issues #### C++ compiler? https://github.com/matplotlib/matplotlib/pull/17497 - C++ 17 should work. Why old C++? - manylinux wheels container? and MS compiler? - advantages? 17 versus 11? #### Stale bot - worth trying? #### reorg galleries - `galleries/examples`, `galleries/tutorials` etc instead of /examples, /tutorials - website configuration stored in https://github.com/matplotlib/matplotlib.org - would have to add the re-write rules to give redirects from /gallarly -> /examples #### colormap tuple - `(color, alpha)` seems general agreement that its fine #### State of ipympl? - usability issues? - ----------------- # February 9, 2023 _attending_: ## Agenda ### Old business ### New business - [x] RSE reports - [x] PRs: 316, draft:false 36 - [x] [name=hannah] [scipy tutorial: feb 22](https://www.scipy2023.scipy.org/present) - [Link to example submissions by scipy conf](https://github.com/scipy-conference/scipy-conference/tree/master/data/tutorial_submissions) - [x] 3.7.0 final tomorrow? - [x] [name=Melissa] Update: GSoD proposal - Deadline for orgs is March 24, we are working on it. Suggestions welcome! [link to proposal](https://hackmd.io/@matplotlib/gsod2023) - [x] SDG to extend the arxiv scraping work ### Issues and PRs - [ ] [name=hannah] [#24691: (color, alpha) color spec](https://github.com/matplotlib/matplotlib/pull/24691#issuecomment-1419756150) - [x] [name=jklymak] [Stale bot](https://github.com/matplotlib/matplotlib/pull/25163) - [will it even work](https://github.com/actions/stale/issues/792)? Stagger start/stop dates over time? - offline tools to do old issues/PRs first? - [x] [name=jklymak] [pcolormesh deprecation dance, #25162](https://github.com/matplotlib/matplotlib/issues/25162) - pcolormesh now stores internally as 2-D (versus flattening), but that breaks folks who were working around the flattening of retrned objects (data, facecolor etc) - [x] [name=chahak13] ["size" argument in Collections](https://github.com/matplotlib/matplotlib/issues/1101) - Disclaimer: Really old issue - Is this still relevant? There seemed to be agreement that something had to change but doesn't show any update then. There is still no support for a `markersize` or equivalent. ## Notes ### RSE reports - @tacaswell main job very busy - @ksdunden: PR review; 3.7 release; ruff config in; data prototype work getting started. - @melissawm New contributor meeting (w @ksunden). Meeting with Teresa and Camron Riddel; - GSOD: deadline to 24 Mar (open 15 Feb) - comment on proposal.... - <https://hackmd.io/@matplotlib/gsod2023> ### Scipy23 tutorial: - Feb deadline, July - Tutorials: July 10-11 | Conference: July 12-14 | Sprints: July 15-16 - Melissa, Kyle may go - 2d tutorials, 3d conference, 2d sprints - tutorials typically beginner side - 1/3 - 1/2 new attendees - recorded and on-line - maybe some focus on modern improvements - how to do things (compared to other paradigms?) - Let's brainstorm here: https://hackmd.io/@matplotlib/scipy2023tutorial/edit ### 3.7.0 tomorrow(??) - hopefully! - try to do w/o Elliott - backport 88 character limit to 3.7 - make sure highlights get to @story645 ### GSOD - currate examples - sphinx-tag extransion directive - vocabulary of tags? - learning paths... ### scrape archive for watermark - SDG to do more of this $5k 100 h labour, + credits - script that we can update... - categorize by field. - broader impact beyond Matplotlib ### markerize argument in Collections - ["size" argument in Collections](https://github.com/matplotlib/matplotlib/issues/1101) - `scatter(s=)` - `markersize` or `size` has more semantic meaning, but still vectors - `s` Area based versus via diameter (line/plot uses diameter) - sometimes scaled by area of shape relative to circle (that in `Collections`). - `s` deprecation warnings is super disruptive ### Stale bot - API limit - maybe new - wait an hour if you exceed limit - REST API limits - First time contributors need to get through new API - Maybe explore offline ### pcolormesh getter - need to add kwarg to getters... - old seaborn with new Matplotlib will be annoyed - flatten=True default, btu allow flatten=False - public properties? -------------- # February 2 2023 ## Agenda ### Old business ### New business - [x] RSE reports - [x] PRs 325, draft:false 52, (40-odd actionable) - [name=@rcomer] mark inactive PRs and issues automatically? - [x] [name=Melissa] New contributor meeting next week (Feb 7) - Could we have a (tiny) live PR? ### Issues and PRs - [x] [name=@anntzer] ECDF @tacaswell [#24728](https://github.com/matplotlib/matplotlib/pull/24728) - [ ] [name=@greglucas] Collections vs Containers and inheritance vs composition [#25027](https://github.com/matplotlib/matplotlib/pull/25027), [#25128](https://github.com/matplotlib/matplotlib/issues/25128), [#24388](https://github.com/matplotlib/matplotlib/pull/24388) - [ ] [name=@hannah] [color validation](https://github.com/matplotlib/matplotlib/pull/25025#issuecomment-1410845470) ## Notes ### RSE reports - Caswell: 3.7 work, starting to troll issue - Sunden: - 3.7 work - tooling investigation - will pivot back to data-protoype next week - Melissa - GSOD project: if you have more feedback please add to hackmd, still have 10 days before it is due - https://hackmd.io/xRmN9nAPQUqU_-pm9dNekQ ### tooling - ruff - young, but used by other big (numpy, scipy, pandas) projects - linter written in rust (!) - very (very) fast, will include auto fixing + linting eventually - may looking to CI, but may not be worth the effort (linting is our fastest CI check) - may add a config so devs can use it ### New Contrib meeting - anyone come to do live PR? - maybe regularly? ### automatic stale / close PRs - what do we want to automate about PRs - reminders / ping - add orphan tag? - frequently we are the ~~problem~~ bottle neck on the review - closing PRs might be too agressive - we will try a bot - Melissa will "copy" responses and come up with a draft bot. - A few points the bot could take care of: - Move inactive PR to draft - Attach a "needs attention" label - Mark PR as "orphan" if author is unresponsive - Investigate a "needs consensus" label - Stretch goal: pick 5 stalled issues for discussion for next meeting ### Issues - https://github.com/matplotlib/matplotlib/pull/25129 (3.7.0 blocker) - generalized concerns that the only way to extend `Cursor` is sub-class it. Not how we would do it today, but grandfather it in and leave it alone. Maybe re-consider later, but do not want to hold 3.7 over. - https://github.com/matplotlib/matplotlib/pull/25126 (3.7.0 blocker) - #24728 ECDF: - deal w/ NaN / masked by erroring, expecitng user to strip or fill as they need (slightly different stats in eitehr case) - Collections vs Containers ----------------- # January 26, 2023 ## Agenda ### Old business - [x] GSoD? Any mentors? - Working with Sphinx Gallery on rst/*.py integration: https://github.com/sphinx-gallery/sphinx-gallery/pull/1071 - [Template/draft proposal](https://hackmd.io/@matplotlib/gsod2023) - feel free to add comments or edit ### New business - [x] RSE reports - [x] First time contributor project - while adding perhaps add labels, and consider moving stalled things to draft. ### Issues and PRs - [ ] [name=jklymak] Replite console? https://github.com/matplotlib/matplotlib/pull/22634 - [x] [name=jklymak] spectral functions (again) https://github.com/matplotlib/matplotlib/pull/22828 ## Notes ### RSE reports - RSE: 3.7 largely - Kyle: line length change in - suggested list of projects into numfocus - Melissa: - existing PRs where help? - add labels and move to draft if applicable (and comment so author knows) - GSOD... ### Google Summer of Docs - 15 Feb - @melissawm - Proposal to google: short. https://hackmd.io/xRmN9nAPQUqU_-pm9dNekQ - labels to example gallery? @melissawm would be interested in (co-)mentoring - Feel free to edit or add comments. - Other ideas for projects? Need mentors to be responsible that milestones are met... - Reporting: - monthly short form - write case study at end - Example of final output: [NumPy Case Study from 2021](https://github.com/numpy/numpy/wiki/Google-Season-of-Docs-2021:-NumPy-Case-Study) - timeline flexible between May-Nov ### Sphinx gallery PR - https://github.com/sphinx-gallery/sphinx-gallery/pull/1071 ### mlab spectral... - deprecate for 3.8 - removal note should include exmplaination as to why our plots are wrong - direct to use scipy directly ### replite console - interactive plots - good for teaching tool - ------------- # January 19, 2023 _attending_: @tacaswell @jklymak @oscargus @melissawm @story645 @ksunden @IGuKs80UTJCig4yt6Zos7w @QWhXj01mSwmTjk5kN1H_qQ @QuLogic ## Agenda ### Old business ### New business - [x] RSE reports - [x] [name=oscargus] How to interpret min version (for NumPy)? https://github.com/matplotlib/matplotlib/pull/24992 - MPL: All minor versions of numpy released in the 24 months prior to the project, and at minimum the last three minor versions. - NumPy: All minor versions of NumPy released in the prior 24 months from the anticipated release date with a minimum of 3 minor versions of NumPy - "All minor versions" referring to first or last release of a minor verion? - In particular 1.21.0 was released June 22 2021, but 1.21.6 was released April 12, 2022 (1.22.0 Dec. 31 2021) - NumPy drops based on first release. https://numpy.org/neps/nep-0029-deprecation_policy.html - [x] [name=Melissa] [GSoD](https://developers.google.com/season-of-docs/docs/timeline) - Organization applications are due February 15, 2023 at 18:00 UTC - [Example of project ideas to submit (from NumPy 2021)](https://github.com/numpy/numpy/wiki/Google-Season-of-Docs-2021-Project-Ideas) - [Case study (output of the project)](https://github.com/numpy/numpy/wiki/Google-Season-of-Docs-2021:-NumPy-Case-Study) ### Issues and PRs - [x] [name=timhoffm, jklymak] [Restrict all import in pyplot](https://github.com/matplotlib/matplotlib/pull/12743) - [x] [name=tacaswell] [Sphinx-gallery section separator](https://github.com/matplotlib/matplotlib/pull/25021) - [ ] [name=jklymak] [Mechanism for combining narrative docs and tutorials](https://github.com/matplotlib/matplotlib/issues/24746#issuecomment-1396303356) - No need to discuss actual content, but a plan for how to fix the tutorial/users-docs dichotomy would be nice. ## Notes ----------------- ### RSE reports - Monthly new contrib meeting. Next one 7 Feb - @ksunden CF time bug. NEP changes down ine. Still not there in terms of usefulness - hard to check isinstances with inheritence - Numfocus GSOC sign up - Projects list being developped: mathetex issues, hatching improvements (register patterns), bivariant colormap, speech bubble types? - Let Kyle know of possible projects - Discussion of how to communicate with mentee and co-ordinate project. - @QuLogic - 3.7 release work - widget styling PR #24838 - away for a few weeks. - web related configs/issues should be able to be handled by Tom/Kyle - @tacaswell - review + 3.7 work ### NumPy version changes - 24 months first release of numoy version not last release - our next release June/July: if near a drop date to hold support a little longer... Be conservative as possible within needing features.. ### Google Seasons of Docs - announced. Org applications 15 Feb - find a person to work with? Grant system... - our experience was somewhat inefficient - Numpy: tutorials with tech writer. Both very familiar with numpy. Second time got someone who ended up as document lead. - organization - fresh eyes - cataloguing and architecting docs - remove duplication metadata cross linking - need to be careful with scoping ### cell delineation for tutorials - `# %% ` instead of `############...` - No objections ### import restriction on * - `from matplotlib pyplot import *` restricting - at least needs an API note so people can adjust - numpy allows submodules - maybe _should_ import somethings and make available in `mattplotlib.figure` for instance? - Lazy importing? Scipy has something like that. - https://scientific-python.org/specs/spec-0001/ - `pyplot.cm.` will still work... - ---------- # January 12, 2023 _attending_: @tacaswell, @rcomer, @QWhXj01mSwmTjk5kN1H_qQ (efiring) @oscargus, @jklymak, @greglucas, @ksunden, @story645, @QuLogic ## Agenda ### Old business ### New business - [ ] RSE reports - [x] 3.6.3 out? - [x] 3.7 progress - [x] [name=oscargus] https://github.com/matplotlib/matplotlib/pull/24825 in 3.7 or 3.8 (and in general, when should we stop backporting?) - Long standing issue that would be nice to get in (I guess) - [x] [name=hannah] [documenting addfont](https://github.com/matplotlib/matplotlib/pull/24866) - [x] [name=jklymak] [Quick doc build](https://github.com/matplotlib/matplotlib/pull/24907) - [x] [name=jklymak] [cftime issue](https://github.com/matplotlib/matplotlib/issues/24951) - how to handle users trying to use Formatters for other converter types (eg trying to use Matplotlib Datetime converters on cftime-converted floats). - [x] [name=greglucas] [pcolormesh extra keywords and mapping](https://github.com/matplotlib/matplotlib/issues/24854) - Should a 'k' linestyle with masked elements in an array only apply to the unmasked cells? ## Notes ### RSE reports - @tacaswell 3.7 wrap up - @ksunden 3.7 as well - sphinx issues - mypy issues still - @QuLogic - 3.6.3 tagged and released - working on 3.7 - 3.7 Deprecation: - needs review - Widget PR: - downstream libraries need this. - styling checks and radio. Still needs cleanup - https://github.com/matplotlib/matplotlib/pull/24838 - 3.6.3 tagged and released - 3.6.x closed. No more backporting there please ### PRs and Issues - https://github.com/matplotlib/matplotlib/pull/24825 in 3.7 or 3.8 (and in general, when should we stop backporting?) - merge - maybe needs a slight bit of test modification - Documenting [addfont]((https://github.com/matplotlib/matplotlib/pull/24866)) - are users to use it or not? - needs to be at a higher level than just addfont docstring. - docstring should have a caveat in it. - Should be fully documented at top of font_manager module. - speed up docs builds - [Quick doc build](https://github.com/matplotlib/matplotlib/pull/24907) - cftime - [cftime issue](https://github.com/matplotlib/matplotlib/issues/24951) - cftime is a tool xarray uses that allows for interesting calendars - user was using cftime converters (happens automatically) - were manually setting to use our locators / formatters which breaks because data -> float -> string which is giving wrong values - we have no way to tell at draw time that there is an incosistency - can we find a way? - we do know what converter is being used, but have historically not done any validation / checking - we have a couple of hooks where converters and formatters could check that they are consintent with each other - keeping track of origin + offset of dates - could we standardize on _always_ using datetime64? - [link to cf conventions](https://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/ch04s04.html) - our conveter / formatter machinery is too implicit - not always clear to users what is going on - Actions (for @ksunden ) - ivestigate a lightweight method of warning about incompatible converters / formatters (short term) - medium term think about how this will be used in new unit work - medium term think about how we can use numpy's dtype + unit machinery to simplify - [pcolormesh extra keywords and mapping](https://github.com/matplotlib/matplotlib/issues/24854) - masks on edgecolors - edgecolors not the main point; mesh shows domain, - 3.3 and before used to work... - could make a mesh-drawing method... - helper around line collections. - or poly collections - thats `pcolor` - been broken for quite a while and current behaviour makes sense. ----------------- # January 5, 2023 _attending_: @story645 @QWhXj01mSwmTjk5kN1H_qQ @rcomer @ksunden @tacaswell ## Agenda ### Old business ### New business - [x] RSE reports - [x] report on circlci security breach - [ ] 3.7 final decisions - branch today? - fonts on windows? Either revert or fix https://github.com/matplotlib/matplotlib/pull/24655 - bump numpy (should have done this a while ago): https://github.com/matplotlib/matplotlib/pull/24887/files - styling of radio / check buttons https://github.com/matplotlib/matplotlib/pull/24838 - legend outside of axes https://github.com/matplotlib/matplotlib/pull/19743 - (https://github.com/matplotlib/matplotlib/pull/24047 which reverted https://github.com/matplotlib/matplotlib/pull/22360 and https://github.com/matplotlib/matplotlib/pull/22361). Caswell's understanding is that the regression is gone, 24011 was an attempt to fix that regression in a constructive way but seems to also have othre problem. Can we remove the critical tag and re-milestone to 3.8? - [ ] increase style line length to 115 (only if we have time) ## Notes ### CI Keys: - There was a security issue (not specified) at circle, they said to rotate keys - we have read-only deploy keys for public repos - have write-capable deploy keys for devdocs (from main repo) and mpl-sphinx-theme - all re-generated ### RSE reports - kyle: nearing end of typing adventure. Has CI working with mypy, typed pyplot - Tom: took time off, working on clearing 3.7 review queue - Elliott: widget work, circleCI fallout ### 3.7 final work - when should we branch? - target 1600 tomorrow 23-1-6 ### [fonts on Windows](https://github.com/matplotlib/matplotlib/pull/24655) - conflict between how windows and linux handle finding fonts. Windows expects files in registry, whereas linux just uses font files - Does `findfont` need a registered name or will it find them from the paths? - were finding deleted fonts rather than use Windows API - can always specify a file path for a font - actions: - go with windows registry only @tacaswell - xfail the test @tacaswell - defer questions of how to test this to later - do we want to change the registry as part of the test? - opt in to running locally? - flag to only run an CI + windows? - need a manual test that this works @story645 - download a new font - use windows way to install it - remove mpl's font cache - verify the new font can be found - add behavior change note @tacaswell ### Bump numpy to 1.20 - currently get warnings ### [styling of radio / check buttons]( https://github.com/matplotlib/matplotlib/pull/24838) - scatter for buttons, and deprecated access to styling radio buttons, but downstream wants to style. - discussion of list of dict vs dict of list ``` label_props=[{'color': 'k'}, {'color': 'r'}, {'color': 'g'}], # <- list of dicts  frame_props={'edgecolor': ['k', 'r', 'g']}, # <- dict of lists  check_props={'facecolor': ['k', 'r', 'g']}, ``` - decisions - agree that consistent API of dict of list is esaier - agree to pass on broadcasting for now ### [legend outside of axes](https://github.com/matplotlib/matplotlib/pull/19743) - needs second review ### [vertical space in latex](https://github.com/matplotlib/matplotlib/pull/24011) - Is this actually critical? The issue it fixes was fixed by reverting two other PRs ### Hatch with Pie - needs second review ### https://github.com/matplotlib/matplotlib/pull/24085/files ### sha in footer of docs https://github.com/matplotlib/mpl-sphinx-theme/pull/54/files - do we want to put the date in as well? - eh actions: - get as screen shot @tacaswell - Jody says "just do it" with expidited review ### increase accepted style length - currently <80 (so 79) - options: - 88 (<89) - 115 - concern: - make sure the side-by-side view of diffs still work (2 wide on github) - be able to get at least 2 (maybe 3) panels up in a text editor - action: - open PR adjusting it to 88 @tacaswell ----------------- # December 29, 2022 _attending_: @ksunden, @IGuKs80UTJCig4yt6Zos7w(greg), @QuLogic, @story645, @efiring, @chahak13 ## Agenda ### Old business ### New business - [x] [name=hannah] 3.7 social highlights - [x] [name=greglucas] [Release critical items](https://github.com/matplotlib/matplotlib/labels/Release%20critical) - [x] [name=QuLogic] [Non-critical non-draft items](https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.7.0+-is%3Adraft+-label%3A%22Release+critical%22) ## Notes ### 3.7 social highlights - please add anything you want highlighted to [3.7 released task](https://github.com/orgs/matplotlib/projects/2/views/3?filterQuery=status%3A%22to+do%22) or email to matplotlib-social@numfocus.org ### Colormap deprecations? - https://github.com/matplotlib/matplotlib/issues/20853 - it appears that there are some pending deprecations left in the `matplotlib.cm`, and we probably need to convert to full deprecations - @QuLogic can open that PR and we can confirm with @timhoffm then that that's what's needed ### Cygwin CI - https://github.com/matplotlib/matplotlib/pull/22999 - worried it might be too much burden as none of the core(?) developers use it - perhaps move to a separate job that is run on a schedule or a specific label, like the cibuildwheel job - also see if it can auto-trigger when the C++ files are changed? ----------------- # December 22, 2022 _attending_: @tacaswell, @QuLogic, @ksunden, @efiring, @story645, @melissawm, @timhoffm ## Agenda ### Old business - [x] [name=tacaswell] https://github.com/matplotlib/matplotlib/pull/24730 - yae or nay - [x] [n] ## notes ### 3.7 triage - yes on 24730, leave comment to @timhoffm - https://github.com/matplotlib/matplotlib/pull/24655 - https://github.com/matplotlib/matplotlib/pull/22634 # December 15, 2022 _attending_: @tacaswell, @jklymak, @greglucas, @melissawm, @efiring, @oscargus, @story645, @ksunden, @hukaidong, @QuLogic, @chahak13, @ianthomas23 ## Agenda ### Old buisness ### New business - [x] RSE report @QuLogic and @ksunden - [x] CEL report from @noatamir or @melissawm - [x] 3.8 triage! ### PRs and issues - [x] [name=tacaswell] [Inheritance diagrams](https://github.com/matplotlib/matplotlib/pull/22273) - [x] [name=jklymak] [Legend labels w/ underscores](https://github.com/matplotlib/matplotlib/pull/24713) - [ ] [name=greglucas] [2D Collections?](https://github.com/matplotlib/matplotlib/pull/24638) - [x] [name=jklymak] [Arrow and Vector](https://github.com/matplotlib/matplotlib/issues/22390) - @jklymak is holding up over wanting to allow multiple arrows. - [ ] [name=timhoffm] [`check_in_list` + `if` chain best practices](https://github.com/matplotlib/matplotlib/pull/24486#discussion_r1047265094) - [ ] [name=timhoffm] (or [name=oscargus]) [Supporting 0/1 as booleans?](https://github.com/matplotlib/matplotlib/pull/24666#discussion_r1044620858) - [x] [name=anntzer] (added by [name=oscargus]) [New plot method: ecdf](https://github.com/matplotlib/matplotlib/pull/24728) - [x] [name=tacaswell] [more careful tracking on removed artists](https://github.com/matplotlib/matplotlib/pull/24626) (fast y/n on targetting 3.7) - [ ] [name=jklymak] [rcParam set/get](https://github.com/matplotlib/matplotlib/pull/24730) - [x] [name=hannah] [user guide reorg](https://github.com/matplotlib/matplotlib/pull/24493) ## Notes ### RSE reports: - @ksunden: mypy support, adding type support. - doesn't change API - no runtime impact - went way faster than we expected - typing is currently more restrictive than reality - @melissawm - conversations about onboarding - architecture docs - forward people to repo who have questions... - @QuLogic - working on CI issues - Cirrus CI... - HiDPI refactor... - @tacaswell - 3.7/3.8 triage ### 3.7 feature freeze - end of year (really 23 Dec or so) - _definitely_ please flag, or move your own PR remilestone ### [Inheritance diagrams](https://github.com/matplotlib/matplotlib/pull/22273) - not working? png fuzzy; image maps wrong; new png very big. Image map uses original size image - doesn't adjust to dpi. - new theme thinner - solution: adds scrollbars, so imagemap works.. ### Pyproj.toml migration #23829 - will this be a 3.7 release issue? - nightly wheels should be working? - check that they are being published - PR to 3.8 ### Legend with leading underscore in label - deprecation cycle? - dropping, will not drop in future... - users can filter their data to not get deprecation warning - keyword argument? - leave comments on https://github.com/matplotlib/matplotlib/pull/24713 - think of some methods as "applications". implies lots of options ### vector vs arrow - https://github.com/matplotlib/matplotlib/pull/22435 - https://github.com/matplotlib/matplotlib/issues/22390 - no one on call (but Jody) felt passionately, so pushed discussion off ### User guide reorg - https://github.com/matplotlib/matplotlib/pull/24493 - https://matplotlib.org/stable/users/index - has high overlap w/ https://matplotlib.org/stable/index.html - complicated by the fact that users/index is what sphinx this is our root page - for very unclear reasons this page is not getting the left sidebar - it is there but just hidden? ### ecdf - doesn't require binning, cumulative - `ax.plot(sort(x), np.arange(len(x)) / len(x)-1) - steps: tricky api issue - 3.8... - we do not want to rush sorting out the API ----------------- # December 8, 2022 _attending_: @tacaswell, @jklymak, @greglucas, @melissawm, @efiring, @oscargus, @rcomer, @story645, @timhoffm, @ksunden, [Kaidong Hu](@hukaidong), Steven Gough-Kelly, @anntzer, @QuLogic ## Agenda ### Old buisness ### New business - [x] [name=tacaswell] Schedule for 3.7 - Proposal: feature freeze Jan 1, 2023 final release in Feb 2023 - (3.6.3?) - [x] RSE report @QuLogic and @ksunden - [x] [name=oscargus] style file for image comparison tests? - My previous guess was that 'mpl20' should be used for new image tests, but it is not documented. (Benefit: smaller images if nothing else.) If the - Maybe one should add a bit of documentation about preferred settings? Only use PNG (unless...)? remove_text=True? ### PRs and issues - [x] [name=jklymak] [outside legend support](https://github.com/matplotlib/matplotlib/pull/19743) - Stalled on specifying location, but often wanted. - [x] [name=hannah] [vectorized wedge props for pie](https://github.com/matplotlib/matplotlib/pull/24470) - who needs to sign off on new features? - `wedgeprop: [dict, iterable(dicts)]` or `wedgeprop: dict, wedgeprops: iterable(dicts)` - [ ] [name=tacaswell] [Inheritence diagrams](https://github.com/matplotlib/matplotlib/pull/22273) - [ ] [name=greglucas] [2D Collections?](https://github.com/matplotlib/matplotlib/pull/24638) ## Notes ### Matplotlib 3.7 - feature freeze 1 Jan, 1 Feb for release target - any open PRs are critical? - mosaic enhancement is critical? ### RSE reports - Kyle: mypy and Matplotlib? - mypy is static type checking (GVR's main focus recently) - numpy has pretty good type hinting so down stream can start to think about how to add type hints - we do a number of things that violate typing theory - we have decided we will do it. - hard to say no at this point given community direction - how are we going to impliment this? - short term contract? - inline (for new work), or stub files `*.pyi` files. - cycler is an example - what versions of python - developer guide: what is development workflow? - Can't mix inline and stubs in a module. - new methods should have well-defined types for arguments. - stucture in way to make community contributions easy? - reach out to Baz (sp?) who did typing for numpy - Elliott - PR review - following up on old PRs - getting circleci to post the docs warnings directly to the PR (inline like flake) - should also fix circleCI failure spam notifications ### Image test discussion - which style to use - Should maybe change all old tests to use "classic" and once done, change the default value? ### Outside Legend - `loc` keyword only? "outside upper right", "outside right upper" - https://github.com/matplotlib/matplotlib/pull/19743#issuecomment-806258816 - should have "top", "bottom" as synonyms. - need to do a surevy of all the ways we do 'loc' - concerns about too many overlapping features - have `bbox_to_anchor` and `'outside'` modifier conflict ### Wegde properties: - [vectorized wedge props for pie](https://github.com/matplotlib/matplotlib/pull/24470) - Q: sign off on new features? - two reviewers - if unsure, ask for more - which properties should we vectorize? - definitly hatches - colors (already exists) - can currently do what ever you want by post-applying to return list of patches - criteria for adding new kwargs are things with "good reason" because there is always the escapehatch - short proposal: - restrict to just hatch - bias to singular name - but already have colors and labels ### Subplot_mosaic - parameter to specify list of kwargs.... - subplot_kw, and new kw are coupled - gridspec call also has kwargs, and figure kwargs - both are dicts so can't overload - Actions: - go with per_ - group docs / keywords -------------- # December 1, 2022 _attending_: @jklymak @story645 @greglucas @oscargus @melissawm @efiring @ksunden @chahak13 @QuLogic Isabela Presedo-Floyd ## Agenda ### Old business - [x] [name=oscargus] yet another follow up about pycharm - [x] [name=oscargus] any objections to installing cirrus ci? (to try it out if nothing else) ### New business - [x] [name=tacaswell] what do do with https://pypi.org/project/matplotlib-arm64/#history - We now control https://github.com/pypa/pypi-support/issues/2291#issuecomment-1330873859 - Caswell's preference is to yank the release - [x] Weekly RSE report @QuLogic @ksunden - [x] [name=melissa] [aria attribute](https://github.com/matplotlib/matplotlib/pull/21328) - [Isabela Presedo-Floyd](https://github.com/isabela-pf) has gently offered to help us navigate this (Second half of meeting?) ### PRs and issues - [x] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/23439 - fixed-width text format to help blitting? - [ ] [name=hannah] [vectorized wedge props for pie](https://github.com/matplotlib/matplotlib/pull/24470) - who needs to sign off on new features? - `wedgeprop: [dict, list(dicts)]` or `wedgeprop: dict, wedgeprops: list(dicts)` - [x] [name=hannah] [reorganizing user guide landing page](https://github.com/matplotlib/matplotlib/pull/24493) - [ ] [name=jklymak] [outside legend support](https://github.com/matplotlib/matplotlib/pull/19743) - Stalled on specifying location, but often wanted. - [x] [name=rcomer] [colorbar stealing from multiple axes](https://github.com/matplotlib/matplotlib/pull/24408) - support list vs sequence vs iterable - [x] [name=efiring] [Can we close this?](https://github.com/matplotlib/matplotlib/pull/22818) ## Notes ### aria - issue: where to put the attribute, does it need to be tailored for specific use cases? - user annotates or automatic: annotating figure or artist? - high level/fig level attribute - individual attributes - recommend implementing the options and testing them out before settling on a solution too quickly. (Experience has shown that the best theoretical option isn't always the best practical option) - alt text is high-level HTML, describing a figure. Aria is below that and could describe the elements and composition of the figure. - Could alt text be created from the aria attributes of the artists? - It would be useful to have an example of the desired outcome. Does Tableau or other commercial software have an example of a figure and what the screen-reader outputs? We could leverage that for inspiration. ### Pycharm - We have 5 licenses ### Cirrus CI - GHA slow on ARM, so faster would be nice - Someone with access to the matplotlib GitHub account should click https://github.com/marketplace/cirrus-ci and install the Cirrus CI application. ### PyPi version - matplotlib-arm64: maybe we don't have a wheel for this? - we only support 3.7, but this user needed 3.6 - could make our own duplicate? - name ambiguous - conclusion: yank, and provide if we get an outcry... ### Elliott: - CI work - Widget work ### fixed-width text format to help blitting? - blitting on all widgets - sliders don't have a fixed bounding box. - text on the side is outside, so not fixed formatter so size of that can grow and shrink... - user set format so its fixed? - blit to end of figure ### rounded colorbar - needs much work to be usable and unclear use case - consensus: tell them to make a 3rd party library ### colorbar stealing from multiple axes - needs clear guidance on what to put in - Tom suggested type dispatching, ndarray->flattened list, Kyle generalize to sequence - iterable->list, not iterable->[iterable] - handle axd.values() from subplot_mosaic - greg: good to go as is, follow up PR that does the full generalization - Decision: Leave a comment that Tom has a good suggestion, let us know if you want to implement it or we can look at it later to make that update. ---------------- # November 24, 2022 _attending_: @oscargus @story645 @rcomer @QuLogic ## Agenda ### Old business - [x] [name=oscargus] follow up about pycharm ### New business - [ ] [name=oscargus] Cirrus CI? https://cirrus-ci.org/features/ ARM Linux, Mac OSX M1, (FreeBSD) ### PRs and issues - [ ] [name=jklymak] Reverse stackplot draw order: - https://github.com/matplotlib/matplotlib/pull/19591 - [ ] [name=jklymak] Pause raises window by default: - https://github.com/matplotlib/matplotlib/issues/22939 - Complaint from a UI point of view is somewhat valid. Can we run the draws without raising, and how can we offer that to the user (if we don't already?) ## Notes ### Welcome - Ruth Comer accepted the invite to be a developer ### PyCharm - PyCharm: free for numfocus projects but not for projects with paid developers (not clear if it also holds for numfocus projects) - Oscar waiting for confirmation from PyCharm, may follow up with numfocus ### stackplot - consensus on PR seems to be leaning towards fix in legend ### pause - problem: raise_window is always true - plt.plot() calls show by default - plt.pause w/ animation pushes window back up on every loop [example](https://matplotlib.org/devdocs/gallery/animation/animation_demo.html) - inconsistency: - between backends - on somebackends it does the raising on others it doesn't - between window managers - some try to prioritize - request is to turn off by default - rcparam is also applied to`plt.show()`` - can't split b.c. would spin off new related rcParam - maybe related: https://github.com/matplotlib/matplotlib/issues/20415 - _plan_?: - first make it consistent, then decide what to do, - clarify that rc_param can only consistently not attempt to focus (can not call the raise_window) ### cirrus ci - scipy uses it, has FreeBSD, m1, arm - might be useful for arm builds if fast - maybe use it as a turn on special like the ci-build-wheels # November 17, 2022 _attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) [@story645](@story645) [@ksunden](@ksunden) [@QuLogic](@QuLogic) [@chahak13](@chahak13) [@anntzer](@pXw4hSgTQF2--OciPYwa1w) [@greglucas](@IGuKs80UTJCig4yt6Zos7w), [@noatamir](@noatamir) @dopplershift, @melissawm ## Agenda ### Old business - [ ] [name=oscar] follow up about pycharm ### New business - [x] [name=hannah] mastadon: scientific python project server - [x] [name=hannah] [Google Summer of Code](https://opensource.googleblog.com/2022/11/get-ready-for-google-summer-of-code-2023.html) - 10-22 weeks, medium at ~175 hours or large at ~350 hour - students and to beginners in open source software development - [x] [name=hannah] [Pydata global sign-ups](https://docs.google.com/document/d/1s-T-BsWOLDbDvewCFieFR0M_8a0m6PiuJvTBz3fhopk/edit?usp=sharing) ### PRs and issues - [x] [name=hannah] [aria attribute](https://github.com/matplotlib/matplotlib/pull/21328) - [x] [name=greglucas] [hpacker alignment (bug?)](https://github.com/matplotlib/matplotlib/issues/24386) ## Notes ### GSOC - nominally interested, likely mentors are Kyle and Elliott - hard dates are not announced yet by google ### pydata global - please sign up in google doc if you want to help mentor by end of today ### aria roles (long discussion not captured) Take aways: - Get Isabela on the call to talk about how this should be used and at what level it makes sense to inject this into our code base now - We should investigate if our `.. plot` directive already supports `:alt:` and if does not, fix it so it does ### hpacker - treat as a bug or go through deprecation cycle? - be pragmatic and go for least pain--- just fix - once we fix as bug, can not go back - even if we think is a "bug fix" do it in a minor release as it is a big change. # November 10, 2022 _attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) [@story645](@story645) [@ksunden](@ksunden) [@QuLogic](@QuLogic) [@chahak13](@chahak13) [@anntzer](@pXw4hSgTQF2--OciPYwa1w) [@greglucas](@IGuKs80UTJCig4yt6Zos7w) ## Agenda ### Old business - [ ] [name=oscar] follow up about pycharm ### New business - [ ] [name=hannah] PyData NYC sprints - open prs 🥳 - [#24409: fix scatter example](https://github.com/matplotlib/matplotlib/pull/24409) - [#24403: print repr for color string error](https://github.com/matplotlib/matplotlib/pull/24403) - preferred method of communicating that someone is working on an issue for sprints? - [ ] [name=tacaswell] SRE report - [ ] [name=hannah] [CZI round 5](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) - [ ] https://blog.scientific-python.org/scientific-python/2022-czi-grant/ ### PRs and issues - [ ] [name=hannah] [hpacker alignment](https://github.com/matplotlib/matplotlib/issues/24386) - [ ] [name=hannah] [streamplot return type](https://github.com/matplotlib/matplotlib/pull/24388) - [ ] [name=greglucas] [CenteredNorm](https://github.com/matplotlib/matplotlib/pull/24132) ## Notes ### communications Leave note on issue: "is mentored by @name, sprinter @name2 is working on it" ### SRE - Kyle: CI + prototype, Elliott: web stuff + variable width fonts on mpl cairo? - Elliott will open PR on mplcairo ### cmap center+half-range: - current: center + half range are the [current parameters](https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.CenteredNorm.html#matplotlib.colors.CenteredNorm): - vmin/vmax are accessibly from parent class inheritance - proposal: adjust half-range when `set_vmin/set_vmax` are called half range: - current: halfrange = vmin-vcenter, updating vcenter updates half - proposal: shift half-range to using vmin-vcenter ### container object - check that remove works = update: doesn't, not implemented for collections - possibly just have `StreamplotSet` inherit from `Container` directly instead of a new class? - backcompat init, ..versionchanged, remove note - investigate using container objects for the other none collection multi artist returns ### Meson for builds? - soon `distutils` will be removed, and we should try to get off it - `distutils` is mostly unused by us, but the biggest use might be indirectly through `numpy.distutils`, which is in maintenance-only mode - Moving to `pybind11` may also limit the need for `numpy.distutils` - [@greglucas](@IGuKs80UTJCig4yt6Zos7w) and [@QuLogic](@QuLogic) have some experience with Meson - It seems fairly straightforward to implement compiled extensions - The Python integration is not 100% perfect yet, but there seems to be a lot of momentum - [@QuLogic](@QuLogic) has a test branch for _only_ the compiled extensions https://github.com/QuLogic/matplotlib/tree/meson # November 3, 2022 _attending_: @tacaswell @oscargus @QWhXj01mSwmTjk5kN1H_qQ @story645 @timhoffm @kanderso-nrel (Kevin Anderson) @ksunden @jklymak @QuLogic Chahak Mehta (@chahak13) ## Agenda ### Old Business - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? - [x] [name=hannah] [PyData NYC](https://pydata.org/nyc2022/) Nov 8-11 - [name=Melissa] Sprint info https://hackmd.io/@melissawm/pydatanyc2022 (feel free to edit the Matplotlib section if you want to add anything) - [x] [name=tacaswell] worklog: https://hackmd.io/@matplotlib/HyVoUHlSo ### New Business - [x] [name=oscargus] Ask for PyCharm licenses? https://www.jetbrains.com/community/opensource/#support NumFocus projects are done deal https://www.jetbrains.com/community/opensource/#partner but someone will have to apply for a number of licenses for the project(?). - [x] [name=hannah] belated 3.6/3.6.2 twitter release thread https://typefully.com/t/iBIdqnU ### PRs and issues - [x] [name=tacaswell] move data-prototype to mpl org - https://github.com/tacaswell/data-prototype - [x] [name=hannah] [animation tutorial](https://github.com/matplotlib/matplotlib/pull/24274), [3D plotting methods](https://github.com/matplotlib/matplotlib/pull/24307#issuecomment-1302217390) - [x] [name=oscargus] https://github.com/matplotlib/matplotlib/pull/24263 Any idea why this kills lots of tests, but only on Linux? - [x] [name=oscargus] https://github.com/matplotlib/matplotlib/pull/24262 OK to get less than ideal spacing for colorbar xlabel? Way to fix that? - [x] [name=efiring] https://github.com/matplotlib/matplotlib/pull/24257 I think this was deferred from an earlier meeting. - [x] [name=timhoffm] https://github.com/matplotlib/matplotlib/issues/24349 [Bug]: sharex and sharey don't accept 0 and 1 as bool values I don't think we need to be permissive. ## Notes ### forsite - punt ### pydata NYC - @melissawm and @tacaswell are giving keynotes - @story645 is running sprints - if there is anything you want worked on please flag by for next Tuesday (11/08) - mark as "good first issue" - please continue to include explaination of why it is a good first issue ### funded work log - added to top of weekly notes - have a standing 5 minute update slot for paid folks to report - https://github.com/matplotlib/data-prototype/pull/14 - https://github.com/matplotlib/data-prototype/pull/13 ### license for pycharm - @oscargus will ask for them on our behalf - [Numfocus Developer Advocate Arliss Collins](https://numfocus.org/community/people): arliss@numfocus.org ### 3.6.2 PR planning on twitter - https://typefully.com/t/iBIdqnU - please respond by 10AM NY time on Friday - tweet all at once or slowly? - as a single thread but then retweet parts for next week ### rules for data-prototype - willing to accept PRs - 1-review merge - expect to move fast and suffer frequent API breaking re-writes ### animation tutorial - keep an eye on both of these PRs ### pgf tests breaking unrelated PDF tests ?! - proposed theory that something in the pdfs generated is poisioning the long-running ghost script ### removing invisible tick breaks colorbar xlabel - trying to special case this is probably too much complexity and not general enough, accept breaking the test ### let mpl.style.use('module.style') work - any reason not to merge this? - slight concern - it is a bit of magic how we turn string into a style - if there is a '.' in the name we treat it as a package - if no '.' we fallback to old behavior - should we provide a way to a default name style name - `mpl.style.use('seaborn.dflt')` is a bit more verbose than `mpl.style.use('seaborn')` - no for now, but can add iths - we are going to break a small number of existing styles that happen to have dots that happen to shadow a package - these are not available in our list of available - could solve with entry points later - we also take urls which we do not list - proposal: - be explict "pgk://" or similar on the front to opt into the package look up (we do `'module://'` for backends) - trade off is brevity vs precisness ### sharex / sharey - do not take 0/1 in place of True/False - error message does not list True/False as valid! - should we special case ints? - yes: it is a reasonable user expecation - no: too much special casing - True/False _are_ ints - make keywords in Python 3, unassigable is Python 2 - we only have 11 instances where we check for exact Boolean type - we should look into those - decision: - we should support 0/1, but we do not like the proposed patch - we should probably check for string first, then fall thorugh to normal - this particular case may be complicated by a user friendly warning about "you probably not mean to pass an int here?" - but we might be able to remove this due to sharex being kwarg only ------ # October 27, 2022 _attending_: @tacaswell @efiring @melissawm @story645 @anntzer @ksunden @QuLogic @jklymak @timhoffm ## Agenda ### Old Business - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? ### New Business - [ ] [name=tacaswell] AWS funding ask (time critical by CoB Friday 10/28) - https://paper.dropbox.com/doc/AWS-funding-ask--Br3U8tAVE99U2ftVdSIRqcRYAQ-apLg1sl5n3sjagvPgqBq8 - [x] [name=tacaswell] Kyle started this week - [x] [name=tacaswell] tidelift Coordinated Disclosure Policy - https://support.tidelift.com/hc/en-us/articles/4406287910036-Security-process - worth 2.1k$ / mo to project do do this - either eed to just use theirs (and push all of our security reports through thme) or roll our own (which is a bunch of work) - [ ] [name=hannah] [PyData NYC](https://pydata.org/nyc2022/) Nov 8-11 ### PRs and issues - [ ] [name=tacaswell] move data-prototype to mpl org - https://github.com/tacaswell/data-prototype - [name=QuLogic] [Centered Norm](https://github.com/matplotlib/matplotlib/issues/24093) - decide on which of two PR approaches should go in 3.6.2 - [name=jklymak] [Arrow deprecation](https://github.com/matplotlib/matplotlib/issues/20387) - should we deprecate? - [name=jklymak] [Load style libraries from packages](https://github.com/matplotlib/matplotlib/pull/24257) - OK with us? - Other uses of this machanism? ## Notes ### Tidelift - feed money back to maintainers (~2.1k/mo) - maintainers agree to have reasonable release schedule - security policy that is reasonable - will respond? - release w/ bug fix, only reveal at that point - or launder through tidelift. - https://support.tidelift.com/hc/en-us/articles/4406287910036-Security-process - CVE process? - numpy is using tidelift's security process and reporting channel ### Numfocus ask to Amazon for corporate donation - Brian Granger - easier to get more $ than a small number. - https://paper.dropbox.com/doc/AWS-funding-ask--Br3U8tAVE99U2ftVdSIRqcRYAQ-apLg1sl5n3sjagvPgqBq8 - people and AWS credits? - very short timeline - larger scale issues co-ordinating group work/ work for RSEs - @QuLogic @kyle @tacaswell will start summarizing work in Gitter... - Weekly report: - some sort of "blog" for RSEs report before Thur meeting. - maybe announce gitter? - Kyle and Elliott will choose exactly how to do this. ------ # October 20, 2022 _attending_: @efiring, @tacaswell, @story645 ## Agenda ### Old Business - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? ### New Business - [name=tacaswell] Kyle started this week - [name=tacaswell] tidelift Coordinated Disclosure Policy - https://support.tidelift.com/hc/en-us/articles/4406287910036-Security-process - worth 2.1k$ / mo to project do do this - either need to just use theirs (and push all of our security reports through thme) or roll our own (which is a bunch of work) ### PRs and issues - [name=QuLogic] [Centered Norm](https://github.com/matplotlib/matplotlib/issues/24093) - decide on which of two PR approaches should go in 3.6.2 - [name=hannah] [versioning directives](https://github.com/matplotlib/matplotlib/issues/23506) - decide w/ or w/o summary, any styling - [name=jklymak] [Arrow deprecation](https://github.com/matplotlib/matplotlib/issues/20387) - should we deprecate? - [name=jklymak] [Load style libraries from packages](https://github.com/matplotlib/matplotlib/pull/24257) - OK with us? - Other uses of this machanism? ## Notes * ended meeting at 3:15 b/c of attendance ---------- # October 13, 2022 _attending_: @oscargus, @story645, @jklymak, @QuLogic, @ianthomas, @ksunden, @efiring, @melissawm ## Agenda ### Old Business ### New Business - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? - [x] [name=Melissa] New contributor's meeting - There was a conversation about having an accessibility-focused gitter channel for folks to talk about it. - [x] [name=tacaswell] Decide on if we want to start using "Added in ..." in docstrings - should decide before too much 3.7 work lands - https://github.com/matplotlib/matplotlib/issues/23506 - [x] [name=hannah] Document how to milestone test only prs - [x] [name=oscargus] Autolabelling of PRs with merge conflicts? For example https://github.com/eps1lon/actions-label-merge-conflict - [x] [name=oscargus] (Possibly discussed millions times before) C/C++ linter/code style? For example https://github.com/matplotlib/matplotlib/pull/24062/files is missing an empty last line. "Problem"? - Objective C? ### PRs and issues - [x] [name=oscargus] Import textpath from text or textpath? - https://github.com/matplotlib/matplotlib/pull/23576 (discourage importing from textpath) - https://github.com/matplotlib/matplotlib/pull/23565 (deprecate importing from text) - [x] [name=oscargus] QT Figure options dialogue - https://github.com/matplotlib/matplotlib/pull/24141#discussion_r994015429 - Seems to just set converter and units to the same as before. Is that required or just a leftover from a feature never implemented? - https://github.com/matplotlib/matplotlib/blob/main/lib/matplotlib/backends/qt_editor/figureoptions.py is actually (GUI) backend-independent despite the location. Should one try to refactor this in some way so that other backends can also provide it? - [x] [name=oscargus] Improve rubberband on wx and tk. Black and white lines so visible on both light and dark backgrounds. - https://github.com/matplotlib/matplotlib/pull/23985 - Important that the lines look similar (right now tk is a bit more dotted and wx a bit more dashed)? - Probably "easy" to do in the OSX backend as well, Greg? https://github.com/matplotlib/matplotlib/issues/23777 ## Notes ### Welcome Kyle - NASA funded RSE - Data tracking through - @ksunden ### New contributor meeting - Accessibility related channel on gitter @story645 will add - extra channel for coordination? - https://gitter.im/matplotlib/accessibility ### Version added in... - any new feature, on Whats New entry... - deprecation wrapper to add Deprecated in... - whats new should be currated... - need some visualizations - could add PR#s... - Todo: - Policy PR on how to do it @story645 ### PRs with merge conflicts: - GH Action to add a label to say there is a conflict - put in ``.workflows` - @oscar ### C++ linting - perhaps hard to lint old code... - OK to ask folks to "properly" format C code... - do we have format guidelines? - pre-commit is warning, so that is working.. - pep7 - for python extensions - @oscar to open Issue solicitling standard link... ### textpath from text or textpath? - probably got moved at some point - should be consistent internally ### QT Figure Options - set_axis? converter and units? - test with datetime? - not fundamentally QT dependent? - possibly have other GUI toolkits - pyllustrator... ### Rubberband - black on black rubberband not good - tk PR. black and white - need for OSX - currently looks slightly different: - [QT 3 pixels: code](https://github.com/QuLogic/matplotlib/blob/14c96b510ebeba40f573e512299b1976f35b620e/lib/matplotlib/backends/backend_qt.py#L474) 3 on 3 off dash - swap which one is dashed on PR. ### Milestoning tests - need to document it. - if there are documentation changes as well documenting the change helpful. - 3.6-doc is built against released matplotlib - not `*.py` - Default to backporting to current bugfix release: - ignore if it doesn't backport... - ---------- # October 06, 2022 _attending_: Melissa (@melissawm), [@greglucas](@IGuKs80UTJCig4yt6Zos7w), @noatamir, [@ericfiring](@QWhXj01mSwmTjk5kN1H_qQ), @story645, @jklymak, @QuLogic, @timhoffm ## Agenda ### Old Business - [x] [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 - [x] [name=hannah] pydata global sprints - virtual, any time between Dec 1-3 https://pydata.org/global2022/ ### New Business - [x] [name=tacaswell] Adopt + adapt Pandas "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) - [x] [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 - hold off publicizing to let Matt Rocklin (who did the work) publicize first if he wants to - [ ] [name=tacaswell] foresite tool? https://www.runforesight.com they have been sending me emails. Might be useful metrics? - [x] [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? - [x] [name=tacaswell] Kyle defends 10/10, will start with us later this month - [ ] [name=Melissa] New contributor's meeting - There was a conversation about having an accessibility-focused gitter channel for folks to talk about it. ### PRs and issues - [x] [name=jklymak] *Release Critical*: Don't raise on colorbar made from orphaned mappable - https://github.com/matplotlib/matplotlib/pull/24088 - release note? - [x] [name=jklymak] rst versus md: - https://github.com/matplotlib/matplotlib/pull/24067 - [x] [name=timhoffm] `colormaps[None]` - https://github.com/matplotlib/matplotlib/issues/23981 ## 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 ### Claim/AssignBot? - bot to assign them - pandas has it - industry, people are assigned - what do do if people claim something and do not take it? - add "steal" option - pandas now has the problem where they are now telling people to "if it has been long enough" re-assign - this just pushes the problem down a layer and does not actually take burden off of maintainers - proposal: - a way to assign your self - in a few days get a ping that asks if you are still working on it? - if no PR or response after a week un-assign - current process - no real assignment (other than people who feel obligated to fix bugs they put in) - first opened PR "wins", issues with priority while things are "in progress" - did this actually make things better for pandas? - overall they are happy - seems to drive engagement, but pushes awkward down a level (hence the "un assign" proposal) DECISION: @noatamir will implement giving this a try ### Milestones: - `Needs sorting`: From 2.0 bankruptcy - `Unassigned`: For closed issues/PRs? - Others were using for other meanings: stalled which should be "Needs sorting". - "Needs sorting" - "no milestone" means no one has looked at it? - Propose: - get rid of "Unassigned" - "Needs sorting"-> "Future release" - Future should not be read as commitment? - putting in a versioned milestone it stronger - Should describe milestones on GitHub that sets guidance for both PR authors and maintainers. - Proposing tightening up next release milestone - most (no draft) PRs should be for next milestone explicitly - For Issues - numbered milestones usually just bug releases - Cartopy: - long-term, medium-term milestones, and numbered milestone is solid plan to get done - Release Dates: - proper schedule #### consensus - numbered releases: tighter labeling + dates - something for longer term usage - move open `unassigend` to `needs-sorting` + removed `unassigned` - rename `needs-sorting` to `future releases` ### arxiv-matplotlib - "Matplotlib" embeded in figures - 17% of all papers on ArXIV - future work - 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) - Pay someone to do this? - Published journals probably don't preserve info? - Social media after Matt publishes blog ### colorbar[None] - https://github.com/matplotlib/matplotlib/issues/23981 - needs a function for downstream libraries to get default - Nice to get point release because we are deprecating `cm.get_cmap` in 3.6 - On `colormap` object? - @tacaswell with proposed code... ### 24060 - fix floating point slop at least for the machine with the issue - one arrow that was slightly offset ### Hacktoberfest - won't participate this year. ### README.rst versus README.md? - future is Markdown! - three other repos as well... - no matter what: twine test - README needs to be parsed on Pypi - add to `sdist` test @story645 - yay Markdown for README - but not the docs.