Try   HackMD

Matplotlib Weekly Meeting

A regular sync meeting for the project's maintainers, which is open to the community. Everyone is welcome to attend and contribute to conversations.

27 July 2023 February 15 2024

tags: 2023 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 Archive: matplotlib/ProjectManagement

Needs discussion at some point

Medium sized projects

RSE worklog

2023-04-20 19:00:00+00:00
Europe/Berlin        2023-04-06 21:00:00+02:00
UTC                  2023-04-06 19:00:00+00:00
America/New_York     2023-04-06 15:00:00-04:00
America/Vancouver    2023-04-06 12:00:00-07:00
US/Hawaii            2023-04-06 09:00:00-10:00

15 Feb 2024

attending: @tacaswell, @ksunden, @story645, @timhoffm, @QuLogic

Agenda

Old business

  • RSE reports
  • 3.9 progress
  • scipy tutorial planning

new business

  • 3.7 and 3.8 micro release

PRs

Notes

  • start new notes for next week

RSE reports

  • Kyle

    • 3.8.3 tagged out out the door
    • 3.7.5 release in the works
    • dataprototype work
  • Tom:

    • some triage / review work
    • data prototype meetings
  • Elliott

    • video work in the docs
      • now 2 projects deeps
    • will do 3.7.5 today

scipy tutorials

  • asked scipy chair for what they want -> want interactive
  • keep stucture from last year, but change focus
    • move from just building up grid, focus on concepts
  • @story645 has some ideas / material on interactive as well

3.9 status

  • still looking good for RC in March

violinplot colors

  • (color, facecolor, edgecolor) like bar vs. parameter dict violinprops like boxplot
  • consensus: facecolor + edgecolor, and add alpha, vectorize facecolor

08 Feb 2024

attending: @ksunden, @tacaswell, @efiring, @timhoffm, @IGuKs80UTJCig4yt6Zos7w (greglucas), @story645, @shriyakalakata, @QuLogic

Agenda

Old business

  • RSE reports
  • 3.9 progress reports

New business

Issues and PRs

notes

RSE updates

  • Kyle
    • data prototype work: integrating ideas with drawing stack, playing with very simple layers
    • worked on OSX hang issues (with Tom and Elliot)
    • general maintence
    • GSOC
  • Elliott
    • 3.9 progress
    • getting CI PRs up and working
    • closed the last deprecation removal PR
    • change laptop back to linux
  • Tom
    • osx bug, other review
    • paper work
    • now have a windows VM that can test on

3.9 progress?

  • making progress
  • still looking good to hit March
  • please review pybind11 PRs

wiki

  • was world writable
    • locked down now
  • do we want to keep at all?
  • can we archive it?
    • either add it to an exsiting one (project managment)
    • add git repo that backs it to org and then mark as public archive
  • seem to only use it for GSOC ideas / propsoals
  • have a duplicate copy of MEPs
  • propsoal (accepted with no prost)
    • upload and public archive repo
    • removing from GH
    • never talk about again
    • will have to change this years GSOC links

scipy plans

  • do we need to submit stuff
    • sprints: probaly not
    • tutorial: need to get something in on time (Feb 27)
      • re-run the layout one from last year (if Kyle leads)
    • talk:
      • data work (still thinking)
  • going
    • Greg
    • Kyle
    • Hannah (maybe)
    • Elliot (if we have funding)

numpy version

  • in March we should be Python 3.9 / numpy 1.23
    • jump 2 numpy versions and get back on track
  • for numpy 2.0 things built with 2.0 will work with numpy 1.x but things built with 1.x will not work with 2.0
    • should be able to just build everything with 2.0 and not worry about oldest supported

no merge on labels

  • no runs with on premissions
  • but needs to pass if it should not block merging

content guide

Caswell would like to push content guide until Jody is here

01 Feb 2024

attending: @tacaswell @ksunden @story645 @QuLogic

Agenda

Old business

  • final decision on GSOC
  • RSE reports
  • 3.9 progress reports

New business

Issues and PRs

notes

memory leak test

  • takes around 200 iterations for memory usage to "burn in"
  • this takes at least 50 seconds
  • our tests with a burn in of 2 and test of 5
  • we will rip the test out and open an issue for new weekly test to check memory

azure failures

  • add manual timeout to popen test
  • add retry to these tests?
  • maybe related to xvfb issue like hang during collection?

GSOC

  • ask NF for 1 slot
  • visual search project
    • concern that this is would be an acceptable GSOC project

RSE reports

  • Tom: reviews, little bit of testing improvements, meeting with Kyle tomorrow to talk about NASA
  • Kyle:
    • data prototype project
    • trying to actulaly use prototype
  • Elliott:
    • CI work (m1s are now available on github)
    • documentation work
      • change animation format from list of frames to actual video
      • saves space!
      • work upstream with sphinx gallery
      • some examples may see 20x reductions
      • costs us frame-by-frame playback

3.9 progress

  • still making progress
  • need to discuss
    • numpy bump
    • linear rescaling of marker size

don't merge via labels

make it possible to label as "this needs discussion" differently from "I have specific code changes"

25 Jan 2024

attending: @rcomer, @ksunden, @qulogic, @tacaswell, @story645

Old business

  • RSE reports
  • 3.9 progress report

New business

Issues and PRs

legend entries](https://github.com/matplotlib/matplotlib/pull/27568)

notes

RSE updates

  • Kyle:
    • work on data prototype work
    • re-thinking how to manage and optimize the graph of computations
    • small PRs / review
  • Elliott
    • smallish review things
    • have windows on arm working
      • mostly just worked, pushed freetype back to our old version.
      • only see timeouts on interacitve tests (maybe resources due to paralle)
      • did not need any extra tolerances
    • have a PR for linting + validtion of all of our yaml
      • prevents a class of bugs, some issues with source of schemas
      • should catch errors in yaml that are currently only caought by running on main after merge
  • Tom
    • data prototype work
    • EffVer PR
    • some review

mpl3.9

  • making steady progress
  • bunch of PRs on todays agenda
  • jupyterrfb?
    • maybe not for 3.9
    • small quality of life stuff needs to be merged upstream (cursors + rubber band)
    • still have to work out restart / stop / snapshot
      • likely due to us wrapping it in additional widgets (box + toolbar) so snapshotting looks wrong

GSOC

  • do we have good projects?
    • hatch API?
      • not great because API design is hard
    • heigharchical ticks
      • same problem
    • reach out ot multi-variate colormap contributor
  • who has effort?
    • kyle

18 Jan 2024

attending: @QuLogic, @ksunden, @tacaswell, @ianthomas23, @greglucas, @anntzer

Agenda

Old business

  • RSE reports
  • 3.9 progress report

new business

Notes

RSE updates

  • Kyle:
    • preperations for pytest8+ numpy2
    • design work on data prototype
  • tom:
    • general issue review + prototype supportwork
  • elliott:
    • pybind11 work
    • working on window-on-arm test machine setup again

3.9 progress

  • still have a couple of deprecation removals outstanding
    • finish PRs from new contributors
  • some PRs that are adding new deprecations we might want toget in
    • put on agenda for next week

EffVer

Better description of what we currently do

"stamping current policy with better name"

parameters in violiplot

should we do it like ax.bar or ax.boxplot

ipython + Matplotlib integration

  • %matplotlib can be used to select backends
  • list of supported backends currently hard-coded into ipython
    • includes built in Matplotlib backends
    • and 2 jupyter specfic backends
  • includes a mapping from backend <-> gui framework
  • odd that the hard-coded backend lives in IPython
  • how do we support external backends
  • use entry points for backends to declare them selves
    • could put this in IPython and problem most locally
  • better solution is registry to live in Matplotlib
    • supports entry-point registraion
    • supports hard-coded ones we ship
    • support module:// as well

comments

  • IPython %matplotlib ... could support 'module://' as input
  • concern about %matplotlib doing surprising imports
  • concern about alias
    • no alias scheme
  • order of lookup
    • builtin names (maybe include all current names (inline, widgets, notebook))
    • entrty points
      • if collisions fail hard and ask to uninstall one
  • should make IPython respect the required_interactive_backend

do we want to try and seperate GUI selection + renderer selection

  • yes, but does not currently factor nicely
  • some agg specific assumptions in the source

need help with mplcairo

  • sort out why not compatible with mpl3.9
  • can we move mplcairo into mpl-main to replace exsiting cairo
    • depends on how we want to load cairo
    • we may need to build cairo for wheel
      • mplcairo currently depends on pycairo to steal their dll/so
    • some extra text handling
      • one is cairo's font handling
      • one is based on raqm
  • maybe try to do this with a SDG

11 Jan 2024

attending:

Agenda

Old Business

New Busines

  • [] RSE reports
  • [] 3.9 target date

Issues and PRs

notes

RSE updates

  • Kyle: catching up after 2 weeks off
  • Elliott: catchup, looking at CI
    • finishing up autopublishing
    • trying to get labelling working
  • Tom: issue / PR review, busy with other work

Issues

4 Jan 2024

@tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ (@efiring) @IGuKs80UTJCig4yt6Zos7w (@greglucas) @QuLogic

Agenda

Old Business

  • Meeting time discussion

New Busines

  • RSE reports
  • 3.9 target date
  • [ ]

Issues and PRs

notes

meeting discussion

  • hour earlier slightly better in poll, but keep same time for now
  • split triage discussion from broader discussion
    • 1st & 3rd policy
    • 2nd & 4th triage
  • RSE reports have been very helpful

RSE updates

  • Tom: issue review + PRs
  • Elliott: off last week
  • Kyle: off

3.9 release

  • @QuLogic release manager
  • target march
  • when is numpy 2.0 targeted to
  • rcs in late Feburary
    • beat Fedora beta-freeze with our RC (by Feb 20)

Docs

  • link back to diataxes in each section
  • break out user guide into start-> build -> create

SymLog

21 Dec 2023

Agenda

Old Business

  • Meeting time discussion

New Busines

  • RSE reports
  • data prototype slides
  • pydata armenia sprint?
  • next week?

Issues and PRs

Notes

introductions

pydata sprint

  • in person or virtual?
  • monthly meetups
  • yearly conferenece

@tacaswell will reach out to EU based maintainers to see if anyone is interested.

meeting timing discussion

  • 2pm did a bit better than 3pm (times in NY)
  • what is "best time" without HI?
  • table till more people

next week

  • cancel meeting

RSE updates

  • Elliott
    • pushed on replacing transforms with eigen
      • found what to check to see if it works
      • held up on waiting for our path extension to be converted to pybind11 to avoid np conversions
    • automation work on website
    • looking at trusted publisher
      • move to new artifacts action + trusted publisher
  • Kyle
    • general PR review
    • prep slides for this meeting
    • some thoughts about dataprototype
  • Tom
    • PR / issue review
    • data prototype + slides

trusted publisher

  • github + pypi collaboration
  • can set up a workflow on GHA to be trusted by pypi to do uploads directly rather than going through a release manager
  • no shared secrets we manage

data prototype


14 Dec 2023

attending: @ksunden @story645 @oscargus @jklymak, @QuLogic

Old Business

New Business

Issues and Prs

Notes

RSE reports

  • @tacaswell:
    • PR review
  • @ksunden: no data type report until he returns.
    • sprints pydata global. Most of datetime tests in. Though odd so many don't work.
      • datetime64: tri: not formatted;
      • streamplot - timedelta64 doesn't work? Should it? units of velocity. arrow
    • working on data type report concepts
  • @QuLogic
    • transform stack work
      • small numpy arrays expensive: C++ class?
      • add tests to make that robust
      • Has class working
        • pybind11 has eigen helpers
        • needs access to elements for some transforms
      • Path C++ extension not on pybind11 yet. Injects numpy
    • Release automation
      • docs use JS/HTML instead of html5 animations
        • no video controllers in html5
      • sphinx gallery reset of rcParams: uses installed library defaults, so changing .matplotlibrc doesn't work.
        • will open PR to SG to do correct thing
      • timeouts/space limits
        • but we set higher
        • above should fix

GSOC:

Meeting time:

  • 14:00 EST favourite time.

Issues and PRs

  • move users/* up to doc/

7 Dec 2023

Agenda

@attending: @tacaswell @efiring @QuLogic @ksunden @jklymak @chahak @pXw4hSgTQF2OciPYwa1w

Old Business

New Business

  • RSE reports
  • how to inject units

Issues and PRs

Notes

  • RSE notes:
    • @ksunden: test datetime PRs, some data protoype work.
    • @tacaswell: CZI grant in w Elliott and Eric
    • @QuLogic: Grant. test datetime PRs
  • Inject units:
    • conversion nodes for pipeline of data
    • delayed conversion node; when querrying data supplies converter.
    • Maybe a 15 minute short presentation for next week @ksunden
    • Something like dask maybe to general purpose for what we are after
    • linear call graph
      • lazy evaluation
      • caching
      • ordering
      • enforce input/output on methods
    • transform stack in pipeline (probably?)
      • maybe some optimizations
  • Meeting time discussion
    • tabled until next week
  • Redirects on contribute to devdocs
    • test server can try it
    • merged @QuLogic will redeploy main webpage
    • moving dependencies under install instead of devel
  • https://github.com/matplotlib/matplotlib/pull/26854 Path effects
    • parse patheffects as list of tuples
    • third party patheffects?
      • requires import?
      • can't validate patheffect method name
  • https://github.com/matplotlib/matplotlib/issues/27228
    • reasonably dueable to go through shared axes of the one being interacted with
    • find each axes parent and call push tool bare on their toolbars
    • when pushing "back on figure 1"
      • do we just add another thing to the stack
      • move "back" on the other figure

30 Nov 2023

attending: @tacaswell @rcomer @chahak @ksunden @story645 @jklymak

Agenda

  • RSE reports
  • discussion about moving time of standing meeting
  • hannah PyData Global sprints Dec 6-8

Issues and PRs

  • hannah stix license
  • jklymak Move Contribute to devdocs?
    • redirect? Separate repo?
  • Roadmapping:
    • mplgui
    • way forward with baseline images
    • other larger things we should be pushing for?

notes

RSE reports

  • Kyle: travel / vacation,
    • some data prototype work
    • adding api to explicit set converter to Axis
  • Tom: travel / vacation
    • work on grant
  • Elliott:
    • working on code coverage for msvc
    • doc work for redirects
    • bit of work on grant

Meeting time

  • annual re-evaluation
  • @story645 will email to devel mailing list + discourse a survey
  • discuss again in 2 weeks

pydata global sprints

  • online / remote only
  • @ksunden will run our test coverage adding issue again

STIX license

  • @tacaswell will look at this carefully

moving contribute out of main docs

options:

  • redirect from stable/contirbute -> devdocs/contribute
  • move whole tree to separate repo
    • cons: hard to maintain, confusion of what part of the docs come from where
    • pro: makes sperations of concerns very clear
  • point navbar link to point to devdocs
    • con: hard-coded urls are not great

Need to do another pass to make sure we do not have any version dependent information in tree.

conclusions

  • @QuLogic will add in redirect
  • run changing links in navbar
  • keep thinking about if we should clave off into own repo

roadmapping

  • mplgui
    • mostly done
    • try to release on own
    • target merging for 3.10?
    • interaction with jupyter?
    • include in CZI grant + jupyter rfb
  • baseline images
    • stuck in @tacaswell 's head
  • refactoring axes/axis
    • rethink formatters / locators / tickers
    • go to tick collections instead of just ticks
    • have the major + minor locators/formatters be aware of each other
      • generalize to do multi-level locators/formatters
    • rationalize access to to sub-parts
  • blit manager
    • partial prototype exists
  • performance issues
    • axes creation is super slow (ticks)
  • text
    • caching

discussion of units test coverage work

  • some things just don't work and need to be documented (deltas in arrow)
  • found some real bugs (axlines)

23 Nov 2023

Agenda

  • US thanksgiving

16 Nov 2023

attending: @tacaswell, @efiring, @ksunden, @QuLogic, @story645

Agenda

  • RSE updates
  • multi-line tags
  • bug fix release

Notes

RSE updates

  • Kyle:
    • work on dataprototype
      • shape validation thinking + implemenation + tests
    • working on getting 3.8.2 out the door
      • one final PR with contours
  • Elliott
    • sick this week
    • waiting on follow up for igraph
    • webagg + jupyter RFB
    • found a bug in playwrite
    • will be putting in issues to upstream jupyter RFB
  • Tom
    • no mpl-gui work
    • working on making sure we are future proof

multi line for tags

  • with many tags, can end up violating line length
  • multi-line tagging is a good idea, but not upstream yet

3.8.2 and 3.7.4

  • xkcd script
    • version from ipython repo is good enough
    • @story645 now has commit rights upstream
  • contour label
    • PR coming
  • wheel building for 3.7.4
    • may need to backport a couple more things
      • pin setuptools on azure
      • fix pinning on numpy on 32bit builds (or drop builds)

09 Nov 2023

Agenda

attending : @tacaswell @ksunden @chahak @efiring, @raphaelquast, @story645, @devRD,

New business

  • RSE reports
  • GSOD update

Old business

Issues and PRs

Notes

RSE updates

  • Kyle
    • tracked down segfault with py312
    • data prototype work
  • Elliott
  • Tom
    • some mpl-gui work

GSOD update

  • met deliverables
  • writing up case study + blog post to close out project
  • will keep an open doc meeting going
    • bi-weekly or monthly
  • remove from standing agenda starting next week

webagg

  • add feature as a go fast opt in, use string to denote alogorithm choice for flexibility

xkcd

  • @tacaswell will talk to ipython about merging font
  • make plt.xkcd discouraged rather than deprecated

02 Nov 2023

Agenda

attending : @greglucas, @story645, @rcomer , @efiring, @tacaswell, @ksunden, @qulogic,

New business

Old business

  • RFB update
  • tacaswell mpl-gui

Issues and PRs

  • jklymak Logging versus warning vs and for legend
    • general: should we warn on valid input?
      • what should we name the warning if we do?
      • should warnings be toggleable?
    • general: should we use logging at all?
    • specific: should this particular instance (all numeric strings that get passed to categorical) get a message at all?
  • oscargus Typing of values ending up in Text
    • Text converts to str independent of input data
    • Type as Any, document as str as @timhoffm suggests? (Makes sense to me.)
  • oscargus set/get_linestyle and dashed and
    • If I have time to prepare a presentation and @timhoffm is present
  • oscargus Symlog hexbin
    • Review needed, long waiting (make sure it is squash-merged)
  • rcomer Absolute values for pie what should parameters be?

Notes

RSE updates

  • Kyle:
    • 3.8.1 tagged and out
    • starting to work on NASA data stuff
  • Elliott
    • follow up from last work (docs, notebook/web backend)
    • still a few kinks in RBF (mostly snapshot on save)
    • all of toolbar but download button is working
  • Tom
    • met with Kyle on NASA data prototype
    • work on mpl_gui
    • pydataNYC sprints

GSOD

  • sprints at pydataNYC
  • have built tag guidelines and glossary
  • got spreadsheet of tags via sprint, will convert to a PR
    • still working out best way to do that
  • Eva has notes about how to improve docs based on volunteers using them
  • meeting tomorrow for next steps

26 Oct 2023

Agenda

attending: @tacaswell @trygve @devRD @ksunden @rcomer @IGuKs80UTJCig4yt6Zos7w (greg?) @chahak, @timhoffm, @story645

New Business

  • RSE reports
  • GSOD
  • QuLogic Jupyter-RFB proof of concept

Issues and PRs

Notes

  • intros

RSE reports

  • kyle
    • PR review
    • 3.8.1 prep
    • went to xarray dev meetings for NamedArray pulled out (xarray variable pulled out with less dependencies)
  • Elliott
    • docs things
    • 3.8.1 prep
    • proof-of-concept using jupyter RFB
    • pybind11 conversion

jupyter RFB

  • jupyter notebook 8 breaks nbagg
  • never worked in jupyterlab, now broken in normal notebook
    • we did less than secure things to inject our js + comms
  • RFB (remote frame buffer) will send you back user input, you send it bytes
  • have a working prototype, only a few hundred lines
  • questions
    • do we want to have this in main library?
    • do we want to push this to ipympl?
    • drop our notebook integration altogether and just rely on?
  • how does js get served in jupyter?
    • do versions in the server env and kernel envs have to match?
    • js is installed in server side independent of the Python version in the kernel
    • but matching can be a range

GSOD

issues

  • absolute pie values formatting
    • not a 5 minute conversation because the holding point is naming / parameters
  • standardize names

19 Oct 2023

Agenda

attending: @rcomer, @ksunden, @chahak, @jklymak, devRD, @melissawm esibinga, @story645, @efiring, @QuLogic

New Business

  • RSE reports
  • GSOD
  • Zenodo citation

Issues and PRs

Notes

RSE reports

  • @ksunden: pytest with meson; lots of issues with that are not compatible with each other. In particular how editable installs work.
    • not able to find pyc files
    • have work arounds that are being worked around
    • pytest versus python -m pytest
    • hexbin mincnt parameter
    • 3.8.1
  • @QuLogic
    • pybind11
    • website issues; proper redirects
    • real redirects instead of html files. Canonical is set; maybe sitemap could be autogenerated

GSOD

  • tagging sprint beginning Nov.
  • categories and subcategories
  • google spreadsheet tagging workflow
  • 1/3 tagged for examples before sprint

Zenodo citations

  • now generic, doesn't pull from github anymore
  • github stats run anyways on milestone
  • maybe pull and populate cff file

hexbin

  • mincnt comparison > to >=, mincnt=0, some reduction functions error
    • default reduction is mean but returns nan. max returns error.
  • solutions:
    • go back to >
    • make default 1
    • make default change with functions depending on their behaviour
  • decision: make default 1, update docstring to clarify that users can set to 0

quoted rcParams

See https://github.com/matplotlib/matplotlib/issues/3670#issuecomment-1771672120


12 Oct 2023

attending: @rcomer, @tacaswell, @efiring, @ksunden, @jklymak, @devRD, @QuLogic, @trygve, @story645

Agenda

Old Business

New Business

  • RSE reports
  • GSOD

Issues and PRs

Notes

RSE reports

  • @ksunden data prototyping;
    • scatter prototype.
    • 3.8.1 release close; couple of RC
  • @QuLogic
    • pybind 11
    • EOSS grant
  • @tacaswell
    • EOSS grant
    • MPL GUI now has pyplot-like module; docs forthcoming

GSOD

  • going well
  • Eva is doing more tagging
  • working on a sample page with melissa

Issues and PRs

  • mypy precommit
  • Remove deprecate allsegs, find_nearest_contour @jklymak will PR
  • "long_axis" exposed as a read-only property. @jklymak will PR
  • patheffects: dictionary cannot have "name" as it can possibly conflict with a keyword to patheffects classes that may be called "name".
  • meson and pytest: not consulting result source code
    • pytest not consulting metapath?
    • try passing --import-mode importlib

5 Oct 2023

Agenda

attending: @tacaswell, @jklymak, @ksunden, @haoyingzhang, @efiring, @melissawm, @devRD, @trygve, @story645, @timhoffm, @QuLogic

Old Business

New Business

Issues and PR:

Notes

RSE reports:

  • @tacaswell:
    • CZI letter of intent getting in, indicating new things to do, and carrying on current work
    • test image work plans
  • @ksunden:
    • PR review; clabel for low dpi issue
    • hacktoberfest PRs
  • @QuLogic
    • meson merged for building.
    • pybind11 - agg
  • @melissawm
    • coming back from holidays. Now on volunteer basis versus

GSOD

bivariate colormapping. https://github.com/matplotlib/matplotlib/pull/26996

  • 2d colormaps versus multivariate
  • VectorMappable instead of Scalar mappable
  • pcolormesh implimentation.
  • list of further changes.
  • Is this way good?
    • how to roadmap it?
  • needs specific colormaps?

Quiver Key

  • angle degrees anti clockwise from x axis versus horizontal

hacktoberfest

  • flag one liners or treat as normal
  • usually one liners are welcomed.
  • Treat as normal. Don't label, just close
  • formatting changes OK

MPL GUI

  • attach GUI after figure made rather than figure needs a GUI to be instantiated.
  • get into library or install into pypi first
  • see if people like it.
  • Could be part of main
    • iteration cycles
  • applications:
    • interactive use cases where helpful
    • API: distinguish from different interfaces.
  • could have an experimental import of 3rd party library
    • circular dependency
    • optional dependency?
  • next week @tacaswell @timhoffm will try and look at it
  • would require documentation changes, but after stable

mypy pre-committ hook?

  • runs on lib/matplotlib/
  • some caching
  • linter?

grid versus list tables

  • read more than edited
  • spacing
  • vim extension, VSCode
  • longer tables OK as list table

28 Sept 2023

Agenda

attending: @tacaswell, @rcomer, @devRD, @oscargus, @haoyingzhang, @efiring, @theOehrly, @ananyadevarakonda, @ksunden, @jklymak, @story645, @qulogic, @rakshitsingh

Old Business

  • GHC

New Business

Issues and PR:

Notes

introductions

GHC

  • got a good number of PRs (and ) datetime tests and deprecations

RSEs

  • @ksunden : all day at Grace Hopper, dealing with GHC issues (merge conflicts, CI),
    • Typing mypy --strict reports pouring in.
    • eg plt.show is untyped and mypy fails.
    • meson discussions
  • @QuLogic
    • GHC things: about 15 PRs
    • cycler release candidate; testing trusterd publisher workflow
      • remove some cycler type hinting
    • documentation site: redirects to clean up some of the setup so that many files can be moved out of top level
    • ISO 1202 cycling linestyles issue. Some interesting thoughts about implimentation of dashing.
      • standard is $200 or so to buy
      • long descriptive names?
      • straightforward to impliment
    • worth thinking about reviving LineStyle class work

GSOD:

  • tagging sprint?
    • good plan
  • PR
    • please look at
    • discussion about separating the different domains the tags are pulled from (generic vs mpl specific)
    • how should this look in the docs?
    • how do we make sure it is clear that the number of docs can grow?
  • how will this look when rendered in the docs?

Hacktober

  • no t-shirts; plant a tree
  • datetime testing as easiest thing to steer people to
  • put tags on, and help first PRs.
  • spam label if nuisance PRs
  • "hacktober accepted" label for unmerged but worthy PRs

Timedelta64

  • either error better
  • or use Timedelta64 as in PR.
  • mark as provisional consider unstable for a cycle
  • need example for how to turn it off and changing defaults.
    • need to look at knobs for adjusting Locator and Formatter.
    • Whats new needs examples
  • pandas Timedelta formatter as touchstone?
  • stop at a day for largest interval
  • Current version:
    • has knobs
    • @theOherly willing to work on this
    • string formatting? Define string formatter
    • define a function formatter

Comaptibility with pandas and CFtime:


21 September 2023

Agenda

attending: @efiring, @ksunden, @tacaswell, @rcomer, @trygve, @haoyingzhanh, @jklymak, @devrd, @QuLogic, @story645

Old business

New Business

Issues and PRs

Notes

RSE updates:

  • @tacaswell: on family leave
  • @ksunden: dealing with 3.8 release issues.
    • np.ndarray not a Sequence but is acceptable input for many things. "array-like" isn't correct because it accepts scalars. np.ndarray is missing index and count
    • plt.Axes and plt.Figure not exported
    • locale issue
    • some optimizations had unexpected changes
  • @QuLogic

GSOD

  • first draft of tags + tag guidelines
  • Eva has been tagging things in a spreadsheet
  • goal is to do tagging sprint at pydata NYC (November)
  • looking for high-level feedback on categories
  • private category?
    • tags on examples but not displayed on built page
  • check if this is a good starting point
  • levels
    • based on what context the reader to understand
  • are there any controversial looking tags
    • things that would be hard for a new-contributor to follow rules and correctly apply tags

NFSummit

  • @rcomer attended last week in Amstredam
  • discussions about writing a cook-book for universities for how to contribute to open source projects in a way that is easier on maintainers
  • lots of biology projects

single review merge label

can use if you want

issues with sphinx version

namespace packages

  • why do we have a namespace package
    • historical reasons
  • currently having (worse) issues with shadowing
  • if you shadow something with a Matplotlib install which provides the mpl_toolkits importer will prefer the old one

options

  • move mpl_toolkits in wholesale
  • move just mplot3D

cons: by pulling it in we are sigining up to keep it alive forever


14 September 2023

attending: @trygvrad, @jklymak, @ksunden, @IGuKs80UTJCig4yt6Zos7w (@greglucas), @QuLogic, @devRD , @haoyingzhang, @efiring, @story645

Old business

  • Steering team?

New business

  • RSE updates
  • GSOD updates

Issues and Pull requests

Notes

  • steering council team: @QuLogic will work on it.

RSE updates:

  • @ksunden
    • 3.8 Segfault reported so working on that (polar triangles with NaN values in Agg);
    • release notes
  • @QuLogic also 3.8 release;
    • CI - new limits on Cirrus builds will have to watch;
    • Working on Meson build - waiting on pybind11 for image module. Also after 3.8;
      • no-build-isolation flags when building editable versus isolated VM
      • some notes in docs for developers
      • otehrwise should be similar
      • some concern for downstream that care about nightly wheels because version number labeller not trivial;
        • needs upstream work
      • advantage; auto recompile c extensions if edited versus having to remember to pip install..
    • mpl-sphinx-theme: automatic pushing to pypi. Maybe try for 3.9 or 3.8.1 main library versus manually upload wheels.

GSOD/GSOC

  • @ratna
    • post to front page news item. Need to fix sphinx pinning.
  • GSOD:
    • no updates.

Code of Conduct

  • move into users/project from CODE_OF_CONDUCT.md
  • link goes to stable

Mutlivariate colormapping

  • types:
    • overlapping images with single colormaps
      • meshing two images:
        • RGB matrices "added"
        • need to choose RGB so that adding is well-defined
    • 2-D colormap
      • designed 2-D colormaps
      • hsv colormaps, but uneven in colorspace
    • https://colorstamps.readthedocs.io/en/latest/
  • implimentation options:
    • implicit
      • set V colormaps or norms to trigger
      • (V, M, N)
      • Additive: colormap families needed to make sense
      • Two-d: separate bivariate norm and bivariate colormaps
      • ScalarMappable multiple norms?
        • Make a parent "Mappable" that allows multiple inputs to make a color.
        • use the Transform stack as a model maybe? _BaseMappable + dim dispatch
      • new methods as alts to {plt, fig}.colorbar(ScalarMappable)
        • multiple_colorbar(VectorMappable) that positions multiple colorbars
        • bivariate_color{square,circle}(VectorMappable) + new class(es) for color square/circle object
    • explicit
      • separate methods.
    • third alternative: separate packages.

07 September 2023

attending: @rcomer @devRD @jklymak @story645 @efiring @haoyingZhang @QuLogic

Old business

New business

  • RSE updates
  • GSOC/GSOD updates
  • hannah CZI EOSS round 6
  • add steering council github team
    • would allow for finer grained permissions on governance

pull requests

Notes

ipympl small dev grant?

RSE

GSOC/GSOD

  • @Ratna: GSOC ended. Time off. Draft PRs. Final reports submitted. Blog post. Will send link to @story645
  • @story645: tagging sprint pydata Nov. Second draft on site by Oct. First draft up soon?

EOSS round 6


31 August 2023

attending: @efiring, @IGuKs80UTJCig4yt6Zos7w @haoyingZhang, @story645 @QuLogic @devRD @timhoffm

Agenda

Old business

New business

  • RSE updates
  • GSOC/GSOD updates
  • 3.8rc
  • hannah pydata NYC, Nov 1-3
  • hannah small dev grant, Sept 8
  • hannah streamline approval of triage additions
  • @qlogic PyCharm issue

Pull requests

Notes

RSE

  • Kyle: largely 3.8rc; some with Seaborn, numpy 2.0 preparation. Did do some playing with data-prototype units behavior
  • Elliott: typing large and small; mainly Meson #26621 should be close; docs coming soon.

GSOC/GSOD

  • Ratna: comments on open PRs; work on super/subscripts, spacedlooking for LaTeX behavior matching.
  • Hannah (for Eva): fleshing out scoping; opened issues on Sphinx Gallery.

3.8rc

  • Some typing cleanups to be done.
  • Dictionary input to barh is broken by a typing change PR? Kyle will investigate.

Pydata NY

Hannah will attend and probably do a sprint and maybe a joint tutorial; is anyone else coming? Sept. 22 deadline for proposal (but it's flexible); only cost is travel.

Small Devel Grant

Hannah talked with Ian Hunt-Isaak about mpl-playback, for gifs in gallery to show widget behavior; probably not enough work still needed.

Concern about low-bandwidth functionality: there may be options for handling it.

Do we need a full html backend? Render to html; can see by opening in browser.

  • Do we want another Quantstack SDG for ipympl improvement or replacement?
  • Nicolas Rougier advocates a library-independent rendering protocol. All libraries could take advantage of the various hardware optimizations. Maybe an SDG could do a study preparatory to a massive project.
  • Elliott: vispy was supposed to be an all-encompassing replacement of all 3D graphic libraries. While it didn't fully do that, there was a jupyter_rfb that came out of it that might be useful for ipympl as its implementation/replacement. https://jupyter-rfb.readthedocs.io/en/stable/
  • Proposal from Hannah: SDG for ipympl maintenance? She will start a hackmd for listing things to fix.

backends for notebooks

Tim: better notebook backend is higher priority.

streamline approval of triage additions

Proposal: send steering council "is this person OK to add" email? steering council has N days to say NO, maintainers have privileges to/can then add person

PYCharm

#26463 (Tim has PyCharm and can check) Elliot can't reproduce; maybe it is PyCharm version-specific, maybe fixed.

24 August 2023

attending: @efiring, @rcomer, @haoyingZhang, @ksunden, Eva Sibinga, @story645, @devRD, @QuLogic

Agenda

Old business

New business

  • RSE updates
  • GSOC/GSOD updates
  • 3.8rc
  • what systems are supported?

Notes

small dev grant

  • mpl-playback has 50% feedback, question is how fast is good enough for doc builds

tiny-icons

  • numfocus lawyers are talking to tiny-icons

RSE

  • ksunden: NASA annual report, responding to 3.8 issue reports (Seaborn today); with Elliot, looked through Fedora build failures; mostly minor
  • Elliot: Fedora: only 5 are new failures; bugs reported. Nothing that we accidentally broke. Work on Meson port, facilitated by work done for numpy and scipy. Working on linux and Freetype versions. Should be ready for 3.9.

GSOC/GSOD

  • Eva: draft PR coming in next few days with guidelines for tagging gallery examples. Includes examples of tags.
  • Ratna: GSOC final report deadline this week. Some longterm issues depend on future work. New features have been added.

3.8

Not too many complaints about backwards incompatibility.

What systems do we support?

Whatever is reasonable: we can test it, and there is a developer.

Specific question: GTK on Mac? Maybe; updating for newer GTK API is good, provided the code still works on older versions.

Testing of doc build on Windows? Maybe weekly? Hannah will investigate; requires command-line latex, etc.

17 August 2023

attending: @efiring, @ksunden, @haoyingZhang, @melissawm, @chahakmehta, @oscargus, @devRD, @story645, @QuLogic, @rcomer

Agenda

Old business

New business

Notes

Old

Plausible: instance set up, managed by scientific python project; Elliot will contact Melissa via email regarding an address and contact.

RSE

  • Kyle: new desktop set up. Annual report for NASA grant is underway. responding to 3.8 bug reports; general maint. Fix sphinx
  • Elliott: mostly typing on mathtext; CI maint.; Cirrus is working, but should we enable it? Other maint.
  • Melissa: "plausible", working on reports, winding down.

GSOC/GSOD

  • Ratna: various mathtext features
  • Hannah: no update this week

3.8

3.9

  • Haoying: https://github.com/matplotlib/matplotlib/issues/26092
    • RGBA array + alpha kwarg input
      • scaler alpha:
        • 2D and RGB - overwrites
        • RGBA - works, unclear if blend or overwrite
      • array alpha:
        • 2D array w/ colormap (no A): overwrites cmap(2d Array)(A=1)
        • 2D array w/ colormap w/ A: unknown cmap(2d Array)
        • RGB: ignores alpha -> RGB(A=1)
        • RGBA array: ignores proposed solutions:
    • ignore one alpha - either A or alpha
    • blend A and alpha -
    • consensus: to consistenly blend, treat alpha=None as alpha=1

small dev grant

Due Sept 8

10 August 2023

attending: @efiring, @rcomer, @ksunden, @melissawm, @oscargus, @haoyingZhang, @devRD, @QuLogic, @story645, @chahakmehta, @anntzer, @tacaswell

Agenda

Old business

New business

  • RSE updates
  • GSOC/GSOD updates
  • NF summit
  • 3.8rc1 is out!
  • 3.9 goals?

Notes

RSE

  • Thomas
    • clearing issues, helping with 3.8
  • Kyle
    • geting 3.8rc1 out the door
    • pypy wheel building / musl
  • Elliott
    • finishing up 3.8, ps work, doc work
  • Mellissa
    • working on grant report / wrapup
    • planning to do some doc work

GSOC/GSOD

  • Ratna (GSOC)
    • had a couple of stalled issues, currently working on resolving
    • was waiting on feedback on alignment which was gotten, dealing with consequences
  • Hannah (GSOD)
    • there is a PR that needs review

NF summit

  • Ruth and Tim will be representing Matplotlib
  • pass them anything we want to communicate to NF or other projects

3.8.0rc1

  • please test!
  • question about typing private methods
    • not done in first pass because it is aimed at down-stream tools
    • not done to try and put upper bound on initial work
    • we will take PRs to add types to private methods going forward

3.9 goals

  • finish rcparams work (chahak)
  • linestyles (from Oscar, need input from Tim)
  • continue to (re)organize the docs
  • backend selection improvements / pull in mpl-gui ()https://github.com/matplotlib/mpl-gui
  • pull mplcairo into core?

plausible (website analytic)

  • scientific python has an instance

symlog locater

  • internal list is not ordered, should we fix it or just test the current behavior
    • decide to just leave

03 August 2023

_attending: @efiring, @rcomer, @greglucas, @ksunden, @devRD, @tacaswell , @story645

Agenda

Old business

New business

Notes

updates

  • RSE update
    • Tom: where did july go?! Some 3.8 work + behind the scenes work
    • Kyle:
      • 3.8 prep
      • got the pyparsing fix commited upstream and backported to 3.7.x
      • working with xarray to deal with our coming type hints, at least one fix on our side
      • all main release critical stuff is done
    • Elliott:
      • typing work for 3.8 (using mypy strict and fixing small things)
      • mplsphinx-theme to upload automatically
  • GSOC
    • ok-ish
    • been working on a couple of issues that are not clear, waiting on feedback
    • looking at bold caligraphy
    • sized delimiters
  • GSOD
    • Eva has a couple of small PRs in the queue
    • text is getting ready
    • where to put it?
    • going well

3.8 progress

news

  • we have a pypi org now

orginize the docs

  • @story645 is going to start writing a documentation road map

27 July 2023

Agenda

attending: @efiring, @jklymak, @ksunden, @devRd, @RaphaelQuast, @haoyingZhang, @qulogic, @story645

Old business

New business

PRs and Issues

Notes

RSE updates

  • @ksunden: reviews for 3.8 in particular (typing w/ Elliott)
  • @QuLogic typing work, largely internal
  • @Ratna: GSoC
    • mathtext. Draft PRs (hrule, latin)
  • @hannah: GSoD
    • second eval submitted, halfway through first pass tagging, private draft of tagging + content guidelines

Typing

  • new 3.8
  • maybe some release strategy
  • document for users, developers
  • downstream projects: some comms at scipy as may affect them.
  • Microsoft has some type hints that people have used.
    • project ones take precedence (probably)

Hrule

tiny icon

Doc github labels

  • more fine grained than before

RC 3.8

  • pyparsing issue; pinned for now
    • testing issue
    • user facing in error handling
  • contouring antialiasing
    • re-adding property
    • some deprecations recommend deprecated properties

pan/zoom of overlapping axes

mathtext anti aliasing?