# Matplotlib Weekly Meeting 2022-10-06 to 2023-03-02
[](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.