matplotlib
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.

      Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Explore these features while you wait
      Complete general settings
      Bookmark and like published notes
      Write a few more notes
      Complete general settings
      Write a few more notes
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 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.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully