diff --git a/meeting_notes/2018/2018.md b/meeting_notes/2018/2018.md index 974d3c9..ea93cba 100644 --- a/meeting_notes/2018/2018.md +++ b/meeting_notes/2018/2018.md @@ -1,21 +1,19 @@ -# ☑️ Matplotlib 2018 meeting agenda -**Call co-ordinates: 15:00 Eastern US time (UTC -05:00)** -[Google Hangout](https://hangouts.google.com/hangouts/_/calendar/NzloazhqaHZsa3M4am44ZHM0cmkxZTZxNGdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ.bb6q6do0fci19u582r7mjv6o2o?authuser=0) (link) -Template: (use headings `#-###` so that TOC/linking has searchable topic headings) - - # Date - ## Agenda - [ ] - [ ] - ## Notes - ### Topic 1 - * subpoints - ### Topic 2 ----------- -# 31 Dec 2018 - No Meeting -# 24 Dec 2018 - No Meeting +# 31 Dec 2018 + +**No Meeting** + +--- + +# 24 Dec 2018 + +**No Meeting** + +--- + # 17 Dec 2018 + ## Agenda + [ ] 12678: Properly set tz for YearLocator @Jody K https://github.com/matplotlib/matplotlib/pull/12678 [ ] Matplotlib 3.1 release schedule and release manager - https://mail.python.org/pipermail/matplotlib-devel/2018-October/001125.html @@ -23,40 +21,37 @@ Template: (use headings `#-###` so that TOC/linking has searchable topic heading [ ] Matplotlib 3.0.3 and 2.2.4 release schedule and release manager ## Notes -**Scheduling Meeting** +### Scheduling Meeting - send out doodle poll to dev-list - pretty pinned to this time due to HI + EU (and business hours EST) -**12678: set Tz for YearLocator** +### 12678: set Tz for YearLocator - https://github.com/matplotlib/matplotlib/pull/12678 - discussion punted -**12422 Scatter Color** +### 12422 Scatter Color https://github.com/matplotlib/matplotlib/pull/12422 - [matplotlib/matplotlib#12422](https://github.com/matplotlib/matplotlib/pull/12422) - masking + colorbars are a little worrying - merged -**10928: preprocess data** +### 10928: preprocess data https://github.com/matplotlib/matplotlib/pull/10928 - [matplotlib/matplotlib#10928](https://github.com/matplotlib/matplotlib/pull/10928) - @Thomas C will review ‘soon’ -**12980: thicker horizontal lines, thinner vertical line** +### 12980: thicker horizontal lines, thinner vertical line https://github.com/matplotlib/matplotlib/issues/12980 - [matplotlib/matplotlib#12980](https://github.com/matplotlib/matplotlib/issues/12980) - apply transform before drawing path & then again after drawing @@ -64,7 +59,7 @@ https://github.com/matplotlib/matplotlib/issues/12980 - needs to be backend independentish - would need set_pen method -**3.1 release schedule** +### 3.1 release schedule - branch in late January, tag in March - somebody other than Tom as release manager-email to dev list @@ -73,7 +68,7 @@ https://github.com/matplotlib/matplotlib/issues/12980 - bugfix releases? - also March? -**12909: Format all the ticks** +### 12909: Format all the ticks https://github.com/matplotlib/matplotlib/pull/12909 @@ -84,7 +79,7 @@ https://github.com/matplotlib/matplotlib/pull/12909 - format ticks for fixed formatter should check for ticks - overwrite the format all methods for specific formatters -**Azure Pipelines for testing** +### Azure Pipelines for testing - make 2.6 build using vscode/windows binaries - ping @Antony L after New Years @@ -92,19 +87,25 @@ https://github.com/matplotlib/matplotlib/pull/12909 - push test image into their own repo & use submodules for test management - talk to free type about testing stability/summer students - email freetype and ask about testing stability? + +--- + # 10 Dec 2018 + ## Agenda + [ ] https://github.com/matplotlib/matplotlib/pull/12459 [ ] https://github.com/matplotlib/matplotlib/pull/12779 [ ] **admin**: calendar meeting link flaky + ## Notes -**12459: imshow cursor + colorbar data** +### 12459: imshow cursor + colorbar data [ ] https://github.com/matplotlib/matplotlib/pull/12459 - [+☑️ Matplotlib meeting agenda: 12-Nov-2018](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12-Nov-2018-aAmENlkgepgsMeDZtlsYu#:uid=811503718402000321362157&h2=12-Nov-2018) -**12779: add scatterplots to Qt figure options** +### 12779: add scatterplots to Qt figure options - https://github.com/matplotlib/matplotlib/pull/12779 - replace image with ScalerMappable @@ -113,27 +114,27 @@ https://github.com/matplotlib/matplotlib/pull/12909 - int - - list - combobox, first is first element selected by default other is appened by choices -**google calendar link inconsistent** +### google calendar link inconsistent - calendar link works for some people, not others - end of lining hangouts in 2020, need functional replacement + roll out of new link (cc @Thomas C ) -**12538: removing Python 3.5 from tests** +### 12538: removing Python 3.5 from tests - merged in https://github.com/matplotlib/matplotlib/pull/12538 - [+☑️ Matplotlib meeting agenda: testing-drop-3.5?](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-testing-drop-3.5-aAmENlkgepgsMeDZtlsYu#:h2=testing-drop-3.5?) -**12432: datetime64 in list** +### 12432: datetime64 in list - https://github.com/matplotlib/matplotlib/pull/12432 - reopened to redo tests -**12422: Scatter Color** +### 12422: Scatter Color - https://github.com/matplotlib/matplotlib/pull/12422 - support non 1D non masked arrays to support RGB triplets -**12945: Weight and style hints from Microsoft Fonts** +### 12945: Weight and style hints from Microsoft Fonts - https://github.com/matplotlib/matplotlib/pull/12945 - mpl was using apple/osx font tables @@ -141,20 +142,25 @@ https://github.com/matplotlib/matplotlib/pull/12909 - checks for bold/italic look of font, parse English version of textual description of font - needs test -**12929: skip gtkbackend if pygtk not installed** +### 12929: skip gtkbackend if pygtk not installed - https://github.com/matplotlib/matplotlib/pull/12929 - was held on checking that valueerror is raised -**Milestone 3.03 open PRS** +### Milestone 3.03 open PRS - backport [+☑️ Matplotlib meeting agenda: 12929:-skip-gtkbackend-if-pygt](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12929-skip-gtkbackend-if-pygt-aAmENlkgepgsMeDZtlsYu#:h2=12929:-skip-gtkbackend-if-pygt) - travis default- sudo:true - https://github.com/matplotlib/matplotlib/pull/12596 - close or new PR or getting rid of sudo:true at top of config - 12678: Properly set tz for YearLocator @Jody K + +--- + # 3 Dec 2018 + ## Agenda + [ ] Testing: drop 3.5? https://github.com/matplotlib/matplotlib/pull/12538 [ ] Do we need Azure and all the Travis runs? [ ] Performance profiling: https://github.com/matplotlib/matplotlib/pull/12915 Can we have a proper profiling test? Seems maybe some import profiling is happening that tests pathological import cases. @@ -165,38 +171,38 @@ https://github.com/matplotlib/matplotlib/pull/12909 ## Notes -**testing drop 3.5?** +### testing drop 3.5? - numpy 1.11 minimum - still need mac and pc on Azure before switching -**profiling - optimizing imports and the like** +### profiling - optimizing imports and the like - low hanging fruit - straight python work - maybe good first issue? -**12909: formatters formatting all ticks at once** +### 12909: formatters formatting all ticks at once - creates method for running list comprehension over list of ticks -**isinstance in formatters?** +### isinstance in formatters? - checking for membership in class and not documenting @Eric F - API change w/ no note change -**12903: time has datetime + time delta** +### 12903: time has datetime + time delta - categories has literals and float delta (for spacing ‘cause of cat→int mapping) - tries to directly do math on values (like a time delta) because axis supports it - default to overloaded class methods (like +, -) - falls back on calling convert on values if [+- not overloaded](https://paper.dropbox.com/doc/not-overloaded-GwKLO91ub6MVrkm1BVKru) -**WIP fall off dates, policy on closing old PRs** +### WIP fall off dates, policy on closing old PRs - needs revision/needs adoption - label clean ups -**documentation sprint** +### documentation sprint - sort out what to write for grant to hire full time technical writer for a year - write a 2 page Work Plan for sprint -@hannah by end of January @@ -211,15 +217,19 @@ https://github.com/matplotlib/matplotlib/pull/12909 - need to include information about visualization basics (not mpl specific) - more toy-datasets rather than random data -**TODO: ALL THE GOVERNANCE THINGS -** @Thomas C ****@Eric F ****@Ryan M **** +**TODO: ALL THE GOVERNANCE THINGS - @Thomas C @Eric F @Ryan M ** +--- # 19 Nov 2018 + ## Agenda + [ ] https://github.com/matplotlib/matplotlib/pull/12158 (non-pixel dependent tick trimming) + ## Notes -**funding pr****oposals:** +### funding proposals: - NSF cyber infrastructure - Sloan, etc @@ -233,21 +243,27 @@ https://github.com/matplotlib/matplotlib/pull/12909 - sustainability workshop - time consuming, - proposals can be a bit boiler-platable. -# #12 Nov 2018 + +--- + +# 12 Nov 2018 + ## Agenda + [ ] Admin backlog [ ] Governance [ ] Swag logo (numfocus email) What version of the Matplotlib logo would you want featured on the shop? I was thinking it might be nice to use one that actually says "Matplotlib," but the only file I have like that is very long and narrow and the font is sort of odd. Do you want us to come up with something on your behalf? Is just the circle logo okay? - [ ] Community outreach + [ ] Community outreach + ## Notes -**gitter discussion: wheels error** +### gitter discussion: wheels error - don’t default backend -**12473/12458 - cursor formatting** +### 12473/12458 - cursor formatting - hidden colorbar: https://github.com/matplotlib/matplotlib/pull/12473 - dummy axis version needs mapping out @@ -256,12 +272,12 @@ https://github.com/matplotlib/matplotlib/pull/12909 - check out how boundary norm cursor formatting - formatter rewrite: https://github.com/matplotlib/matplotlib/pull/5804 -**12759: warn on Freetype missing glyphs** +### 12759: warn on Freetype missing glyphs - https://github.com/matplotlib/matplotlib/pull/12759 - warns people if font doesn’t support glyphs -**admin backlag** +### admin backlag - swaq logo: @hannah a reply to gina - https://matplotlib.org/_static/logo2.png @@ -269,13 +285,13 @@ https://github.com/matplotlib/matplotlib/pull/12909 - wordmark + circle - core-dev shirts? -**community outreach** +### community outreach - user needs help/community support - https://github.com/matplotlib/matplotlib/labels/Community%20support - point person for community outreach? (hacktoberfest, summer students, classes w/ PR requirements, etc) -**governance:** +### governance: - defined roles on the project - roles @@ -297,21 +313,27 @@ https://github.com/matplotlib/matplotlib/pull/12909 - CoC has seperate people - user community representative - European committee member + +--- + # 05 Nov 2018 + ## Agenda + [x] Other 3.0.x https://github.com/matplotlib/matplotlib/milestone/39 [ ] Github policies and best practices: [ ] cleaning up old issues w/ no feedback [ ] user help versus actual issue… [ ] Doc builds + ## Notes -**Azure:** +### Azure: - need to find way of copying permissions over: no group privileges… - may take over some of the testing from Travis. -**github policy** +### github policy - bot - we think this has gone silent, after n weeks bot will close, reopen on interest - at least one round of conversation @@ -321,7 +343,7 @@ https://github.com/matplotlib/matplotlib/pull/12909 - bug reports are self selecting/small chunk of things people fine - can assign teasing out the question issues to @hannah a -**docs deploy cycle** +### docs deploy cycle - auto building of docs not set up - circle CI config @@ -337,8 +359,13 @@ https://github.com/matplotlib/matplotlib/pull/12909 - submodules for old versions - submodules for externel projects (their existing repos) - can use git-filter tree to maintain history + +--- + # 29 Oct 2018 + ## Agenda + [x] Mac Framework (or not): https://github.com/matplotlib/matplotlib/pull/12633 [ ] pushed to 3.1 [ ] Matplotlib.use() after `import matplotlib.pyplot`: https://github.com/matplotlib/matplotlib/pull/12608 @@ -366,10 +393,10 @@ https://github.com/matplotlib/matplotlib/pull/12909 - https://github.com/matplotlib/matplotlib/issues/12669 _hold bug that breaks cartopy/basemap - minimimum fix - make setter or remove property - #12958 - waiting on @Benjamin R -- -# 22 Oct 2018 +--- +# 22 Oct 2018 [ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x [ ] Test coverage? How fussy do we want to be? @@ -382,6 +409,7 @@ https://github.com/matplotlib/matplotlib/pull/12909 ## Notes + - logo? numfocus starting a store for t-shirts stickers etc. - logo only - webpage header @@ -403,14 +431,12 @@ https://github.com/matplotlib/matplotlib/pull/12909 - merge with two approvals (don’t ping) - encourage devs/contributors to curate their own PRs +--- - # 15 Oct 2018 - ## Agenda: - [ ] Py3.5 in 3.1? [ ] https://github.com/matplotlib/matplotlib/pull/11711 lazy eval colors [ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x @@ -430,9 +456,13 @@ https://github.com/matplotlib/matplotlib/pull/12909 - Solutions for upgrading python are much better than before… - communication downstream: - user and devel list (@tacaswell) -- + +--- + # 1 Oct 2018 + ## Agenda + [ ] Stale PR mechanism? https://github.com/apps/stale, astropy has hand-built version. Let more people tag? More people close issues? https://github.com/ipython/ipython/pull/11326 [ ] More get_tightbbox including artists that are not meant to be included. https://github.com/matplotlib/matplotlib/issues/12256 [ ] https://github.com/matplotlib/matplotlib/pull/9565: How to deprecate the return value from `stem` method? @@ -453,13 +483,17 @@ https://github.com/matplotlib/matplotlib/pull/12909 - maybe adds noise - need to encourage a culture of closing issues. - Didn’t talk about letting more people close issues. + +--- + # 24 Sep 2018 -## Agenda -[ ] 3.0.x bugs: https://github.com/matplotlib/matplotlib/milestone/37 +## Agenda +[ ] 3.0.x bugs: https://github.com/matplotlib/matplotlib/milestone/37 ## Notes: + - because of https://github.com/matplotlib/matplotlib/pull/12213 we should release 3.0.1 pretty soon. And https://github.com/matplotlib/matplotlib/pull/12177 - [#12173](https://github.com/matplotlib/matplotlib/issues/12173) might not just be windows. - @efiring indicated that maybe on MacOSX as well @@ -468,14 +502,19 @@ https://github.com/matplotlib/matplotlib/pull/12909 - search - math directive - > mathmpl - https://github.com/matplotlib/matplotlib/issues/12216 -- + +--- + # 17 Sep 2018 + ## Agenda + [ ] tick locators. Why return bracketing values? Why worry about pixel size? https://github.com/matplotlib/matplotlib/pull/12105 https://github.com/matplotlib/matplotlib/pull/11004 [ ] Date Formatter: https://github.com/matplotlib/matplotlib/pull/10841 Path to acceptance? Pros better. Cons, API change ## Notes + - tick locators: - old was based on ticks rather than margins - half pixel to reduce fiddling @@ -495,8 +534,13 @@ https://github.com/matplotlib/matplotlib/pull/12909 - https://github.com/matplotlib/matplotlib/pull/10928 - https://github.com/matplotlib/matplotlib/pull/10411/files should maybe be merged / done as part of / after proprocess data (not before). - @Thomas C is on board with this. + +--- + # 10 Sep 2018 + ## Agenda + [ ] Backend continues: https://github.com/matplotlib/matplotlib/pull/11962 [ ] jquery: https://github.com/matplotlib/matplotlib/pull/11246 [ ] needs caching in place? @@ -555,8 +599,13 @@ https://github.com/matplotlib/matplotlib/pull/12909 - @todo cookie cutter for data file creation a colormap… - color cycles - from discrete colormaps? + +--- + # 27 Aug + ## Agenda + [x] PR https://github.com/matplotlib/matplotlib/pull/11934 Suprress “Non GUI Backend Warning” [x] https://github.com/matplotlib/matplotlib/pull/11896 `rcParams.``**__getitem**``__('backend')` [ ] @@ -564,9 +613,8 @@ https://github.com/matplotlib/matplotlib/pull/12909 [x] PR https://github.com/matplotlib/matplotlib/pull/10088 Deprecate Tick.{gridOn,tick1On,label1On,...} in favor of set_visible [x] PR https://github.com/matplotlib/matplotlib/pull/11944 - wx:clientDC - - ## Notes + - mpl-altair summer work: https://github.com/matplotlib/mpl-altair - convert altair chart to mpl fig/ax - in pre-alpha form @@ -584,13 +632,14 @@ https://github.com/matplotlib/matplotlib/pull/12909 - 11936 - replacement except for thumbnail view (@Antony L just needs the CSS for that) - +--- # 19 Aug 2018 @efiring, @tacaswell, @dopplershift, @anntzer, @jklymak ## Agenda + [x] How do we get 3.0 out the door? What to do about the backend mess? - https://github.com/matplotlib/matplotlib/pull/11896 [x] [NF] Add 'truncate' and 'join' methods to colormaps. https://github.com/matplotlib/matplotlib/pull/7716 @@ -600,14 +649,12 @@ https://github.com/matplotlib/matplotlib/pull/12909 ## Notes - - RC3.0r1 - Backend issue - inter-operability, packaging etc issue. Patterns of usage. - solve packaging issue with forcing packagers to choose a backend. - jquery - @tacaswell to finish up… -- # - 7716 - make simpler interface and do some of work outside function - indexing w/ slices and lists @@ -617,17 +664,23 @@ https://github.com/matplotlib/matplotlib/pull/12909 - Probably best to do as a documentation example of using `ListedColormap` to do what this PR does. @jklymak will write an example if something doesn’t exist. - Scaling floating point - 3.1 or 3.0: 3.0 Approved after @efiring fix deprecation messages. + +--- + # 30 July 2018 +--- # 23 July 2018 Various PRs were discussed in preparation for 3.0. Progress was made closing a few. -# 16 July 2018 +--- +# 16 July 2018 ## Agenda + - Eight 3.0 PRs: https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.0 - ~~https://github.com/matplotlib/matplotlib/pull/11672 : Trivial please merge~~ - https://github.com/matplotlib/matplotlib/pull/11637 : API changes (release work) @@ -643,10 +696,8 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - See https://github.com/matplotlib/matplotlib/pull/11664 and associated issues - #11664 proposes *not* registering the pandas date converters and running tests on our own date converters instead. Per discussion with pandas folks https://github.com/matplotlib/matplotlib/issues/10533 and https://github.com/matplotlib/matplotlib/pull/10638, they want to *not* automatically register their converters on `import pandas`, so we were moving towards making matplotlib converters work without needing their converters. Given that it makes sense to not register their converters, and leave testing of their converters to pandas. - ## Notes - - SciPy debrief @Thomas C : - Governance - steering council Matplotlib @@ -691,18 +742,18 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - 2.2.3 this week - qt release breaks shims - no RC -- +--- # 9 July 2018 - ## Notes +--- # 2 July 2018 -## Agenda +## Agenda ## Notes - revive matplotlib dev mailing list @@ -717,10 +768,17 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a surface.pcolor(x, y, z, ax=ax) - decorators to supply pyplot-like interface? context manager? i.e. - `with ax as plt.gca():` -- + +--- + # 25 June 2018 + ## Agenda + +--- + # 18 June 2018 + ## Agenda - PR https://github.com/matplotlib/matplotlib/pull/11127 still needs second review - PR https://github.com/matplotlib/matplotlib/pull/10682 : @@ -730,8 +788,8 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - PR: https://github.com/matplotlib/matplotlib/pull/11438 - one-liner plus some docs; provides: `gs = ax.get_gridspec()` - ## Notes + - https://github.com/matplotlib/matplotlib/pull/11293 - naming xmin/xmax, left/right, upper/lower etc. - merged @@ -748,8 +806,11 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - @Thomas C will review this week. - https://github.com/matplotlib/matplotlib/pull/10682: - TODO review before 3.0 - - + +--- + # 11 June 2018 + ## Agenda - https://github.com/matplotlib/matplotlib/issues/11416: datalim/sharex/y issue. - Scatter legend handler @@ -757,6 +818,7 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), - rename cm.py→colormaps.py https://github.com/matplotlib/matplotlib/pull/11413 + ## Notes @efiring, @jklymak @@ -784,7 +846,11 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - show simple API - show ways to get basic things done. - ENH add an inset_axes to the axes class #11026 + +--- + # 4 June 2018 + - Scatter legend handler - https://github.com/matplotlib/matplotlib/pull/11127 - DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… @@ -794,6 +860,7 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - do we want this? Not attracting reviews… - @Tim H naming issues? In particular the set_*lim parameter names #11293 - @Tim H naming conventions re methods: maybe inset_axes_rect #11026. + ## Notes **Naming issues re xmin/xmax/limits** @@ -825,15 +892,20 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - use verbs that explain what the method is doing: - `make_inset_axes_rec` - Alternative: `inset_axes_from_rect` (makes it clear that it’s not only returning a value because it’s creating “from the rect”. + +--- + # 27 May 2018 + ## Agenda - ~~#6254 https://github.com/matplotlib/matplotlib/pull/6254 quick review~~ - traitletts? What is the path forward here? - previous attempts tried to do all in one PR - seems impossible w/o freezing the rest of development. Need a better strategy (or scrap idea?) - switch meetings to a hangout hosted by matplotlib@numfocus.org? + ## Notes -**Traitlets** +### Traitlets - `_traitlets/` submodule (?) - monkey patch into new modules as they are built out. @@ -860,16 +932,18 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - https://github.com/tacaswell/mpl_grant (currently invite only) - Look at governance rules - assign owner to contentious PRs -**3.0 timing:** +### 3.0 timing: - cut 3.0 in time for SciPy - approx. June 23 RC1 tagged - 3.0 July 8 final before SciPy - - - ---------- + # 20 May 2018 + +---------- + # 14 May 2018 @Jody K @Eric F @Antony L @Thomas C @hannah a @@ -885,9 +959,10 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), - `ax.inset_axes` still needs review: https://github.com/matplotlib/matplotlib/pull/11026 + ## Notes -**2.2.3 out****standing PRs** +### 2.2.3 outstanding PRs - 11062 - merged on rebase, all in new constrained layout - 2.2.3 after jquery fix (11199) @@ -897,7 +972,7 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - follow jupyter’s methodology - @Antony L in next month or so? -**Scipy dependency** +### Scipy dependency - use for examples? - Yes, but not in main codebase… Travis tests always w/o scipy @@ -906,7 +981,7 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - what about their plotting? seaborn - add to examples to showoff pandas integration -**Leg****e****nd entry on PathCollecti****on** +### Legend entry on PathCollection - good idea, parallels version on contours - concern that PathCollection used for other things @@ -915,11 +990,13 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a ---------- + # 07 May 2018 @Jody K @Eric F @hannah a @Thomas C ## Agenda + - get legend entries for scatter: - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) - To review: [#](https://github.com/matplotlib/matplotlib/issues/11079)[~~11079~~](https://github.com/matplotlib/matplotlib/issues/11079) [#11060](https://github.com/matplotlib/matplotlib/issues/11060) @@ -937,11 +1014,11 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a ## Notes -**Repr vs. Str for Transforms** +### Repr vs. Str for Transforms - str same as repr is fine? Best practice? `__repr__` shorter…. -**Unit property of Axis****:** attn ****@Ryan M **** +### Unit property of Axis: ** attn @Ryan M ** - go back to using different attribute to store mapping - create attribute on unit that stores ordering string - unit.unit = @@ -960,13 +1037,13 @@ Various PRs were discussed in preparation for 3.0. Progress was made closing a - adaptive re-sampling - units handling on fly… stores units. -**OpenGL** +### OpenGL - graphics cards transform stack - draw stack hard to plug that in w/o moving whole stack down - ---------- + # 30 Apr 2018 @Eric F @Jody K @Thomas C @paul h @hannah a @@ -985,7 +1062,7 @@ PY3 transition. UpdateL bbox issues -- a`rtist.inbbox` flag - property on artist: +- `artist.inbbox` flag - property on artist: - when tight_layout does calculation, ignores everything set to False - pro: explicit listing of elements in bbox - con: @Eric F unintended consequences like possible performance issues? @@ -1007,13 +1084,8 @@ UpdateL bbox issues - maintain get_tightbox signature by removing: - get_tightbox should stay on artists and do intersection in print, thereby deprecating extra artist - - - - - - ---------- + # 23 Apr 2018 @efiring @jklymak, @story645, @dopplershift @@ -1028,7 +1100,7 @@ UpdateL bbox issues - https://developers.google.com/analytics/devguides/collection/analyticsjs/events ## Notes: -**bbox_issues** +### bbox_issues - previously: constraint/tight layout didn’t include legends - figure legends not in tight bbox? @@ -1050,7 +1122,7 @@ UpdateL bbox issues - do axes composition: axes.get_legend_entries in fig.axes - feed sum(handles, labels) into fig.legend() -**inset_axis** +### inset_axis - child axes - @Eric F want to preserve hierarchy/ composition @@ -1068,7 +1140,7 @@ UpdateL bbox issues - @Jody K add_inset_rect + pad - specify pad in physical units -**API inconsistencies** +### API inconsistencies - @Eric F: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) - keep track of inconsistencies? @@ -1077,18 +1149,13 @@ UpdateL bbox issues - new github repo for program management? https://github.com/matplotlib/ProjectManagement - add issues for api inconsistencies -**3.0 plan** +### 3.0 plan - aim is for SciPy: release 3.0 - point of 3.0 is mostly to get devs using Python 3.0 only version - - - - ---------- - # 16 Apr 2018 @Eric F, @Ryan M, @Thomas C, @hannah a, @Antony L @@ -1148,17 +1215,8 @@ UpdateL bbox issues - defining what is intermediate? - @Antony L what is Python? what is matplotlib? - https://mail.python.org/pipermail/matplotlib-devel/2018-March/001033.html - - - - - - - - - - ---------- + # 9 Apr 2018 @Ryan M , @Jody K @Eric F @Thomas C , @hannah a @@ -1175,7 +1233,7 @@ UpdateL bbox issues ## Notes -**Inset_axes/spine tick stuff** +### Inset_axes/spine tick stuff - @Eric F spend time over the weekend reading through how tick code actually works and took notes. - @Jody K Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) @@ -1201,32 +1259,31 @@ UpdateL bbox issues - transform(x) on x data - separate transform for projection - need full transform to do all ticks - -**Wh****ere to put developer notes?** +### Where to put developer notes? - add tutorial section for developers - https://github.com/matplotlib/matplotlib/pull/10947 - Notes in progress? - @Antony L suggested the wiki - - **Con****se****nsus** https://github.com/orgs/matplotlib/teams/developers + - **Consensus** https://github.com/orgs/matplotlib/teams/developers -**Perez:** +### Perez: - possible rewrite pyplot with aim to more consistent input → output, state machine -**Gitwash/git workflow documentation** +### Gitwash/git workflow documentation - Find out who has push on it - using it to standardize workflow across communities - @Antony L suggesting we just link to central gitwash instead of bothering with templating - @Tim H https://github.com/matplotlib/matplotlib/pull/10997 -**Mailing list:** +### Mailing list: - @Jody K suggest automatic reply on rejected posts saying you have to join to post to the list -**Tool manager:** +### Tool manager: - https://github.com/matplotlib/matplotlib/pull/9022 - @Antony L - good idea but ToolBarManager should be moved out of core @@ -1240,14 +1297,17 @@ UpdateL bbox issues ---------- -# 2 Apr 2018 (Easter Monday) + +# 2 Apr 2018 + [ ] Clarify MEP process [ ] Tick refactor: - (Timhoffm, but he has no email address to invite.) - https://github.com/matplotlib/matplotlib/issues/5665#issuecomment-377269387 -## Notes 2 Apr 2018 -**MEP about MEP?** @Thomas C **will do book keeping tasks** +## Notes + +### MEP about MEP? ** @Thomas C will do book keeping tasks** - When to write a MEP? - proposing controversial features, @@ -1274,7 +1334,7 @@ UpdateL bbox issues [x] documentation summit -**Tick Refactor** @Tim H **** +### Tick Refactor ** @Tim H ** - target 3.1 - MEP? @@ -1300,7 +1360,7 @@ UpdateL bbox issues - have to snap ticks and axes border and girdlines - currently snap to closest pixel -**TextCollection? instead of list of Texts** +### TextCollection? instead of list of Texts - text rendering may be slow because of rasterization of individual glyphs, but should be profiled - might be good for completeness/API reasons @@ -1311,11 +1371,16 @@ UpdateL bbox issues - if all markers same, draw once and stamp (draw marker path) - if one marker different, falls back on individual rendering (draw poly path) -**Ternary graph:** +### Ternary graph: - https://github.com/matplotlib/matplotlib/pull/6737 + ---------- + # 26 Mar 2018 + +- Antony, Hannah, Ryan, Jody + [ ] DateFormatter and Locator @Jody K Do we want to update the default locator and ticks or just provide another Formatter option for savvy users? - https://github.com/matplotlib/matplotlib/pull/10841 @@ -1329,12 +1394,9 @@ UpdateL bbox issues - https://github.com/matplotlib/matplotlib/pull/9452 - https://github.com/matplotlib/matplotlib/issues/9397 +## Notes - -## Notes: 26 Mar 2018 - - Antony, Hannah, Ryan, Jody - -**Ticks** +### Ticks - issues with extra ticks outside viewlims. Antony said they were due to roundoff errors. - maybe trim at Locator level. @@ -1349,7 +1411,7 @@ UpdateL bbox issues - speed benefit? - can’t manipulate individual tick visibility. -**Datetime formatting:** +### Datetime formatting: - https://github.com/matplotlib/matplotlib/pull/10841 - https://github.com/matplotlib/matplotlib/pull/9801 @@ -1362,1521 +1424,12 @@ UpdateL bbox issues - Alias AutoFormatter to current MPLXYDateFormatter - Document “We reserve right to change formatter” - deprecate old linear scalar formatter? - - ☑️ Matplotlib 2019 meeting agenda - - **Call co-ordinates: 15:00 Eastern US time (UTC -05:00)** - - [Google Hangout](https://hangouts.google.com/hangouts/_/calendar/NzloazhqaHZsa3M4am44ZHM0cmkxZTZxNGdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ.bb6q6do0fci19u582r7mjv6o2o?authuser=0) (link) - - Template: (use headings `#-###` so that TOC/linking has searchable topic headings) - # Date - ## Agenda - [ ] - [ ] - ## Notes - ### Topic 1 - * subpoints - ### Topic 2 ----------- -# 11 Feb 2019 - [x] Release details - [ ] Scatter legend: https://github.com/matplotlib/matplotlib/pull/11127 - [ ] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 - [ ] figsize in non-inches: https://github.com/matplotlib/matplotlib/pull/12415 - [ ] python-based matplotlibrc (4.0?) https://github.com/matplotlib/matplotlib/pull/9528 - [ ] xmin/xmax undeprecate: https://github.com/matplotlib/matplotlib/issues/11761 - [ ] legend locations “NE”, vs. “northeast” vs. just leaving “upper right”. https://github.com/matplotlib/matplotlib/pull/12679 - [ ] consensus in that PR seems to be “northeast”; retain “upper right” for backwards compat -## Notes - - **Outstanding PRs** **/ work** **for 3.0.3** -- [OS/X backend + latex = event loop chokin](https://github.com/matplotlib/matplotlib/issues/13066)[g #](https://github.com/matplotlib/matplotlib/issues/13066)[13066](https://github.com/matplotlib/matplotlib/issues/13066) - punted to 3.1? -- needs release note - - -- close with no action, corrected on wheels sides ( https://github.com/MacPython/matplotlib-wheels/pull/5) -https://github.com/matplotlib/matplotlib/issues/12119 - - - [matplotlib/matplotlib#12119](https://github.com/matplotlib/matplotlib/issues/12119) [](https://github.com/matplotlib/matplotlib/issues/12119) - - -- https://github.com/matplotlib/matplotlib/pull/13405 (needs second review) -- https://github.com/matplotlib/matplotlib/pull/11246 (needs some comments addressed by @Thomas C ) -- https://github.com/matplotlib/matplotlib/issues/13258 last outstanding issue - - **Scatter Legend** -- @Eric F in charge of merging it - - -# 4 Feb 2019 - [ ] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 - [x] colorbar norm: https://github.com/matplotlib/matplotlib/pull/13234 - [x] final decision on summer students - [x] https://gitter.im/geopandas/geopandas?at=5c584e4b9221b9382d12eeea - [ ] NE vs upper-right discussion… - [ ] Anchored artist legend: `upper right` - [ ] Axes_Divider NE/NW -## Notes -- @Thomas C sent out email about release schedule - - **Colorbar Norm #13234** -- undoing @Eric F design choice: - - original inheritance from scalarmappable, when colorbar is really dependent on the AxesImage/Scatter - change the mappable rather than colorbar - - @Jody K made mock scalarmappable that can be deprecated - - **Units issue discussion #13236** -- what does default width mean in context of units? - - bar is set to .8 width relative to ? (but what when data is united) - - datetime w/ timedelta - - xref:https://github.com/matplotlib/matplotlib/pull/12903 - - [+☑️ Matplotlib meeting agenda: unit-conversion:](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-unit-conversion-aAmENlkgepgsMeDZtlsYu#:uid=393380968722540654338756&h2=unit-conversion:) - - **Summer Students** -- summer joint project between geopandas + pysal (pysal will kick in mentors) - - emailed NF to ask if they are ok with mentors from non-NF projects -- students propose their own projects -- due to lack of available effort, lets run through GSoC this year -- @hannah a will take lead on admin side - - **Wh****at do do with** **John Hunter Fellowship money?** -- https://software-carpentry.org/blog/2014/03/john-hunter-fellowship-2014.html -- look into doing it this way again this year - - **Legend location** -- geographic coordinates - [N, S, etc] -- https://github.com/matplotlib/matplotlib/pull/13072 -- upper right is ambiguous ‘cause besides or on top of bunch of axis -- need centralized documentation of how it *should* be done, then can move towards doing it uniformly. -- conflicts with change from min/max to {top, bottom}, {left, right} - - this older change also conflicts badly with polar -- think of these as layered APIs? -- - - **OS/X Backend** -https://github.com/matplotlib/matplotlib/issues/12918 - -- [matplotlib/matplotlib#12918](https://github.com/matplotlib/matplotlib/issues/12918) -- [matplotlib/matplotlib#1](https://github.com/matplotlib/matplotlib/issues/12918)3096 -- OS/X backend used to be verified using cocoa app - @Jody K -- on master, milestoned as bugfix though - - **Backport/to do/bugfix/critical** -- sphinx related fixes to 2.2?? -- vendored old version of jequery - pull request that downloads it as part of install process 11246 - - https://github.com/matplotlib/matplotlib/pull/11246 - - can build on boat (except first time, that time needs internet) - - put in .cache, check there on reinstall (survive git clean -xfd) -- closed: (retina dpi bug) https://github.com/matplotlib/matplotlib/issues/10160 -- need to prioritize next two weeks worth of bugfixes - - start moving things to new milestones - - things that should go in - release critical - - things that can be punted - label w/ next milestone - - - - - -# 28 Jan 2019 -## Agenda -[x] follow up on summer studentsReviews - [x] https://github.com/matplotlib/matplotlib/pull/12678 (fix for timezone handling) - [x] https://github.com/matplotlib/matplotlib/pull/13128 (Parameter renaming) - [x] https://github.com/matplotlib/matplotlib/pull/13069 (default minor ticker change) - [ ] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 -## Notes - - **Timezone handling** -- https://github.com/matplotlib/matplotlib/pull/12678 -- timezone information wasn’t being passed into YearLocator -- alternative is don’t support timezone/assume GMT -- without passing isdst, will raise exception if time being DST is ambiguous (no timezone passed in) - - user can pass localtime instead of datetime - - `dateutil` might correctly handle this - - this is in yearlocator - - - - **Parameter renaming decorator** -- https://github.com/matplotlib/matplotlib/pull/13128 -- just waiting on @Thomas C -- decorator to make functions keyword only? - - later deprecate positional and make them kwarg only - - would require making pyplot wrappers aware of deprecators -- merged - - - - **Minor tick changer** -- https://github.com/matplotlib/matplotlib/pull/13 069 -- insist on backcompat api? -- minor ticks not as commonly used, so should in theory have smaller ripple effects -- leave 1 and 10 at 5 ticks, because it yields a middle - - - - **Verbose logging** -- requires multiple levels of hierarchies -- need way to turn off mpl level logging w/o turning off other logging - - can’t use global handler (basicconfig) -- handler needs to be publicly accessible -- this is designed for end (mostly novice) user, not library dev - - needs to not cause ripple effects in downstream libraries/apps - - **summer students** -- @hannah a spoke with geopandas, worried their project is not a full 3 months (but we suspect it is more complicated than they think) -- @Thomas C will send follow up email and include user list. - - - - **Next release?** -- release bugfix 3.0.x soon and 3.1 in a month or so - - must already be in master to be considered for 3.1 -- check in on https://github.com/matplotlib/matplotlib/pull/13281 -- @Thomas C will send email with announcement + asking for volunteers to help run release. -- get in https://github.com/matplotlib/matplotlib/pull/13030 (ping @Benjamin R) - - - - **Units** -- @Antony L - datetime should be pitched to floats & stay there instead of mixed units -- places where you’d like to pitch stuff to numpy but as array destroys units (for example unwraps pint) -- xref: [+☑️ Matplotlib meeting agenda: unit-conversion:](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-unit-conversion-aAmENlkgepgsMeDZtlsYu#:uid=393380968722540654338756&h2=unit-conversion:) - - - - - - -# 21 Jan 2019 -## Agenda -[x] updates for NF annual report - > Happy new year! We are hard at work producing the 2018 NumFOCUS Annual Report. Last year we invited all of our sponsored projects to include the main highlights of their year, and we'd like to do so again this year. - > - > To keep things manageable with over 2 dozen projects, please reply to me with 2 or 3 bullet points of your 2018 highlights. - > - > For example: - > Received ACM Best Project Of All Time Award - > Celebrated our 1.0 release - > Brought on two new core developers, Jane Doe and John Hancock - > Kindly send me your highlights by the end of this week if at all possible. - > - > Let me know if you have any questions. -[ ] gsoc or JDH student fellowship this summer? - [ ] if gsoc, then what should we do with JDH fellowship this year? -[ ] documentation summit -## Notes - - **Numfocus Annual Report** @Thomas C **wrote it** -- I officially became lead developer, 3 new core developers (Tim Hoffman, Ernest, Dietmar Schwertberger) -- 200 unique code contributors for year (average ~26 unique contributors per month) -- One major release (3.0), one minor release (2.2), 8 total patch releases -- note about plotting contest & summer fellowship - - **GSOC & JDH** -- pros: more control + good use of fellowship money -- cons: running ourselves, everyone stretched super thin -- Are there projects? - - keep working on matplotlib altair - - - cons: altair is kinda dead, any mpl developer interest? - - propose there own projects - - infrastructure: - - proper webpage/documentation deployment - - sphinx - - fix doc version selection - version toggle - - google pointing to outdated docs - - which HTMLs are associated to each other, or clean versioning - - python has instructions somewhere for building versioning? - - needs mentor - - put out call to devel mailing list for mentors/projects - - run it through gsoc if mentors are new - - models of good projects: - - astropy, sympy - - clear projects, milestones, fairly self contained - - outside matplotlib + mpl related - - fix viz in geopandas @hannah a would mentor, need run by geopandas - - cartopy - @Ryan M & Elliot have commit bits so stuff could go in - - factor out pandas plotting into its own package - kinda becomes matplotlib toolkit - - @Thomas C maybe, @hannah a maybe - - factor out xarray plotting into its own package/clean up their visualization - - @Thomas C maybe, @hannah a maybe - - seems to be an interest in geospatial / mapping extensions - - list of things basemap can do that cartopy: - - besides labeling lines - - migrating basemap to cartopy - - convert basemap examples to cartopy - - - **Depr****e****cated/closed MEPS** -- MEP 25 (closed #3424) -- MEP 26 - - - - **Discussion about webpage** -- looking into ways to get redirect of main page like python.org (https://docs.python.org/3/library/index.html = https://docs.python.org/library/index.html) -- bandwidth cloudflare - 2 Tb/month (780k unique users) -- each version 250 Mb - doc repo about 10 Gb. - - **documentation summit** -- @Ryan M can host -- $13k budget + small grant ($3k from numfocus) - - 2 days, 5 - 7 travelers? - - Have to be there: @Ryan M @Eric F @Thomas C - - probably: @hannah a + Dora - - who else? post to mailing list - - budget for flights + hotel + food - - work product is proposal to ask funding agency for technical writer - - scope of work - - milestones - - what the document looks like in the end - (kinda like book proposal??) - - usability issues seem to be more due to docs than code base? - - sort out how to call people in -- possibly combine with steering council meeting (Ryan, Tom, Eric) -- last week of may/ first week of June - - -# 14 Jan 2019 -## Agenda -[ ] Merging policy clarification -[ ] how eager should units conversion be for x+dx (ie bar(x, width))? - - Eager makes our lives easier but doesn’t allow combining units that will add but may have different converters (timedelta, datetime). https://github.com/hgrecco/pint/issues/751 - - Exactly what types are allowed as input? `[], [unit-y objects (i.e. numbers, strings, datetimes)], np.ndarray, np.ma, unit-wrapper(np.ndarray)``, pandas.Series` - - documentation issue, we should specify what inputs are allowed for tuples, and what properties they must satisfy. -[ ] scipy 2019 talk + tutorial - [ ] @Benjamin R is not planning to go to SciPy this year, @hannah a has volunteered to teach intro-to-matplotlib tutorial - [ ] should we put in for the interactive one as well? - [ ] do we want to give a talk? - - -## Notes - - - - **Merging** -- need to balance review strictness versus getting things merged… -- test suite not perfect and not complete -- cleanups can miss corner cases -- for core devs, make objections explicit -- more aggressive use of ‘request changes’ (red x) on review when you want: - - changes to the PR - - indicate that you want to close the PR, with timeline - - to have sign off on the PR getting merged -- use comment (no approve/reject) to not sign on as a full reviewer? -- @Antony L proposal for core devs: - - if PR has one positive review & it’s been two weeks, ping devs for review - - if month of no comment, can be merged - - each dev can sponsor one review at a time - - reviewers can say needs more review - - @Jody K needs 100% code coverage -- 2nd reviewer can just scan & merge -## unit - - - - conversion: -- **containers**: arrays, lists, dictviews -- **datatype**: int, float, string, bool, datetime -- container specification of supported operators: - - must be singleton/iterable - - unit aware asarray w/o data duplication + dictview support - - something that we can call asarray on + dictviews - - but will do unit support first (numpy strips up units) -- datatype specification of support on operators: - - unit registry/unit specs out how datatype works - - convertible to/from float - - write timedelta convertor? -- data wrapper object vs fixing units in numpy - - FOH: unit work - - BOH: use arrays for things - - only duplicate memory if you’re using units? -- **TODO**: - - document expected unit containers - - test united data -## SciPy -- modified Anatomy of Matplotlib by @hannah a - - needs assistants -## Students -- maybe @Antony L answering questions -- what sorts of projects? stand alone/isolated/doable -- low stakes, standalone, halfway done - - discrete legend - - colorbar refactor - - VR backend - - fix geopandas viz/other 3rd party matplotlib viz projects? - - -# 7 Jan 2019 -## Agenda - - -[ ] Eager or lazy eval of line/patch/marker properties. -[ ] https://github.com/matplotlib/matplotlib/pull/13026 : warn all floats in strings -[ ] https://github.com/matplotlib/matplotlib/pull/13126 minor tick suppression (log scales). -[ ] https://github.com/matplotlib/matplotlib/pull/13117#discussion_r245755479 matplotlib.use cleanup -[ ] https://github.com/matplotlib/matplotlib/pull/13030 mplot 3d -## Notes - - - - **Matplotlib.use cleanup?** -- param re-naming discussion -- param rename decorator? -- - - - - **Minor ticks** -- Try to pass major ticks to minor tick locators @Jody K - - - - **Warn on all-float string arrays** -- https://github.com/matplotlib/matplotlib/pull/13026 -- hard to google, -- but we shouldn’t emit warnings for proper usage -- put in offset? Will show up in final plot… - - in coord format? Category -- going in circles about how to support both the naive user which is getting things-that-work-but-are-not-what-they-want vs non-naive users who are get spurious errors for correct usage of the library (sorry for cynical summary). -- more general discussion about helping users with common pitfalls - - plt.helpful → set logging level to Info for matplotlib. -- maybe we can just use logging.info? -- Settled on using logging - - @Jody K will change #13026 to use logging - - someone will open a PR to add a helper function to pyplot (and/or top-level ?) to set up the logging at info level. - - - - **Discussion about #13030** -- deprecation is ok modulo a more documentation -- Want to enable 25% performance speed up so we can - - -# 31 Dec 2018 - No Meeting -# 24 Dec 2018 - No Meeting -# 17 Dec 2018 -## Agenda -[ ] 12678: Properly set tz for YearLocator @Jody K https://github.com/matplotlib/matplotlib/pull/12678 -[ ] Matplotlib 3.1 release schedule and release manager - - https://mail.python.org/pipermail/matplotlib-devel/2018-October/001125.html - - https://mail.python.org/pipermail/matplotlib-devel/2018-October/001134.html -[ ] Matplotlib 3.0.3 and 2.2.4 release schedule and release manager -## Notes - - **Scheduling Meeting** -- send out doodle poll to dev-list -- pretty pinned to this time due to HI + EU (and business hours EST) - - **12678: set Tz for YearLocator** -- https://github.com/matplotlib/matplotlib/pull/12678 -- discussion punted - - **12422 Scatter Color** -https://github.com/matplotlib/matplotlib/pull/12422 - - - [matplotlib/matplotlib#12422](https://github.com/matplotlib/matplotlib/pull/12422) -- masking + colorbars are a little worrying -- merged - - **10928: preprocess data** -https://github.com/matplotlib/matplotlib/pull/10928 - - - [matplotlib/matplotlib#10928](https://github.com/matplotlib/matplotlib/pull/10928) -- @Thomas C will review ‘soon’ - - **12980: thicker horizontal lines, thinner vertical line** -https://github.com/matplotlib/matplotlib/issues/12980 + - localization of month + - Check if way? - - [matplotlib/matplotlib#12980](https://github.com/matplotlib/matplotlib/issues/12980) -- apply transform before drawing path & then again after drawing -- needs bigger canvas and maybe secondary canvas -- needs to be backend independentish -- would need set_pen method - - **3.1 release schedule** -- branch in late January, tag in March -- somebody other than Tom as release manager-email to dev list -- needs issue/pr trimming - 300+ open -- add 3.2 for punting? or use needs sorting milestone? -- bugfix releases? - - also March? - - **12909: Format all the ticks** -https://github.com/matplotlib/matplotlib/pull/12909 - - - [matplotlib/matplotlib#12909](https://github.com/matplotlib/matplotlib/pull/12909) -- @Eric F format ticks method takes only values, applies particular formatter - - format ticks for fixed formatter should check for ticks - - overwrite the format all methods for specific formatters - - **Azure Pipelines for testing** -- make 2.6 build using vscode/windows binaries - - ping @Antony L after New Years -- use custom images from Qulogic because all the pngs fail because of free type - - push test image into their own repo & use submodules for test management - - talk to free type about testing stability/summer students - - email freetype and ask about testing stability? -# 10 Dec 2018 -## Agenda -[ ] https://github.com/matplotlib/matplotlib/pull/12459 -[ ] https://github.com/matplotlib/matplotlib/pull/12779 -[ ] **admin**: calendar meeting link flaky -## Notes - - **12459: imshow cursor + colorbar data** -[ ] https://github.com/matplotlib/matplotlib/pull/12459 - - [+☑️ Matplotlib meeting agenda: 12-Nov-2018](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12-Nov-2018-aAmENlkgepgsMeDZtlsYu#:uid=811503718402000321362157&h2=12-Nov-2018) - - **12779: add scatterplots to Qt figure options** -- https://github.com/matplotlib/matplotlib/pull/12779 -- replace image with ScalerMappable -- QT options editor library generates menu based on second entry?? (@Antony L ?) - - string - - - int - - - list - combobox, first is first element selected by default other is appened by choices - - **google calendar link inconsistent** -- calendar link works for some people, not others -- end of lining hangouts in 2020, need functional replacement + roll out of new link (cc @Thomas C ) - - **12538: removing Python 3.5 from tests** -- merged in https://github.com/matplotlib/matplotlib/pull/12538 -- [+☑️ Matplotlib meeting agenda: testing-drop-3.5?](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-testing-drop-3.5-aAmENlkgepgsMeDZtlsYu#:h2=testing-drop-3.5?) - - **12432: datetime64 in list** -- https://github.com/matplotlib/matplotlib/pull/12432 -- reopened to redo tests - - **12422: Scatter Color** -- https://github.com/matplotlib/matplotlib/pull/12422 -- support non 1D non masked arrays to support RGB triplets - - **12945: Weight and style hints from Microsoft Fonts** -- https://github.com/matplotlib/matplotlib/pull/12945 -- mpl was using apple/osx font tables -- refrence: https://github.com/matplotlib/matplotlib/pull/12945#discussion_r240377476 -- checks for bold/italic look of font, parse English version of textual description of font -- needs test - - **12929: skip gtkbackend if pygtk not installed** -- https://github.com/matplotlib/matplotlib/pull/12929 -- was held on checking that valueerror is raised - - **Milestone 3.03 open PRS** -- backport [+☑️ Matplotlib meeting agenda: 12929:-skip-gtkbackend-if-pygt](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12929-skip-gtkbackend-if-pygt-aAmENlkgepgsMeDZtlsYu#:h2=12929:-skip-gtkbackend-if-pygt) -- travis default- sudo:true - - https://github.com/matplotlib/matplotlib/pull/12596 - - close or new PR or getting rid of sudo:true at top of config -- 12678: Properly set tz for YearLocator @Jody K -# 3 Dec 2018 -## Agenda -[ ] Testing: drop 3.5? https://github.com/matplotlib/matplotlib/pull/12538 - [ ] Do we need Azure and all the Travis runs? -[ ] Performance profiling: https://github.com/matplotlib/matplotlib/pull/12915 Can we have a proper profiling test? Seems maybe some import profiling is happening that tests pathological import cases. -[ ] https://github.com/matplotlib/matplotlib/pull/10841 ping @efiring (New date formatter) - [ ] https://github.com/matplotlib/matplotlib/pull/12909 Format all ticks at once. (Should go in before above?) -[ ] https://github.com/matplotlib/matplotlib/pull/12903 Units math… - - -## Notes - - **testing drop 3.5?** -- numpy 1.11 minimum -- still need mac and pc on Azure before switching - - **profiling - optimizing imports and the like** -- low hanging fruit -- straight python work - maybe good first issue? - - **12909: formatters formatting all ticks at once** -- creates method for running list comprehension over list of ticks - - **isinstance in formatters?** -- checking for membership in class and not documenting @Eric F -- API change w/ no note change - - **12903: time has datetime + time delta** -- categories has literals and float delta (for spacing ‘cause of cat→int mapping) -- tries to directly do math on values (like a time delta) because axis supports it - - default to overloaded class methods (like +, -) -- falls back on calling convert on values if [+- not overloaded](https://paper.dropbox.com/doc/not-overloaded-GwKLO91ub6MVrkm1BVKru) - - **WIP fall off dates, policy on closing old PRs** -- needs revision/needs adoption -- label clean ups - - **documentation sprint** -- sort out what to write for grant to hire full time technical writer for a year -- write a 2 page Work Plan for sprint -@hannah by end of January - - what we want to get out of it - - better scoping of matplotlib - - example: concrete data driven examples vs. random numbers - - who wants to come/interested in coming -- numpy small grants- apply -- Boulder as location @Ryan M -- work around academic schedules -- Overhaul and revise documentation -- need to include information about visualization basics (not mpl specific) -- more toy-datasets rather than random data - - **TODO: ALL THE GOVERNANCE THINGS -** @Thomas C ****@Eric F ****@Ryan M **** - - -# 19 Nov 2018 -## Agenda -[ ] https://github.com/matplotlib/matplotlib/pull/12158 (non-pixel dependent tick trimming) -## Notes - - **funding pr****oposals:** -- NSF cyber infrastructure -- Sloan, etc -- DOE cyber infrastructure… -- need steering council in place - - who should be there? Eye to thinking about funding sources… -- what is the pitch? - - need five-year changes discussion -- numfocus - - can help with ideas and structuring… - - sustainability workshop - - time consuming, - - proposals can be a bit boiler-platable. -# #12 Nov 2018 -## Agenda -[ ] Admin backlog - [ ] Governance - [ ] Swag logo (numfocus email) - What version of the Matplotlib logo would you want featured on the shop? I was thinking it might be nice to use one that actually says "Matplotlib," but the only file I have like that is very long and narrow and the font is sort of odd. - Do you want us to come up with something on your behalf? Is just the circle logo okay? - [ ] Community outreach -## Notes - - **gitter discussion: wheels error** -- don’t default backend - - **12473/12458 - cursor formatting** -- hidden colorbar: https://github.com/matplotlib/matplotlib/pull/12473 - - dummy axis version needs mapping out -- improve formatting: https://github.com/matplotlib/matplotlib/pull/12459 - - + 1 on merge here - - check out how boundary norm cursor formatting -- formatter rewrite: https://github.com/matplotlib/matplotlib/pull/5804 - - **12759: warn on Freetype missing glyphs** -- https://github.com/matplotlib/matplotlib/pull/12759 -- warns people if font doesn’t support glyphs - - **admin backlag** -- swaq logo: @hannah a reply to gina - - https://matplotlib.org/_static/logo2.png - - supposed to go on like hoodies and stuff: https://shop.spreadshirt.com/numfocus/ - - wordmark + circle -- core-dev shirts? - - **community outreach** -- user needs help/community support -- https://github.com/matplotlib/matplotlib/labels/Community%20support -- point person for community outreach? (hacktoberfest, summer students, classes w/ PR requirements, etc) - - **governance:** -- defined roles on the project - - roles - - release manager - - community manager - - point person on sub-systems (over laps with labels) - - liason to third-party packages - - documents responsibility, thing to put on CV -- discussion about moving call (use a doodle?) - - email dev-list about who wants to come to call -- @Thomas C @Eric F @Ryan M need to schedule call for governence meeting/draft -- committee: 5 -7 people - - put out call for who wants to be in on it - - ask for nominations (self nominations allowed) - - anyone w/ commit bit can endorse person - - thomas, eric, ryan make final choice - - not limited to core devs - - - administration, fundraising, how CoC issues handled - - CoC has seperate people - - user community representative - - European committee member -# 05 Nov 2018 -## Agenda -[x] Other 3.0.x https://github.com/matplotlib/matplotlib/milestone/39 -[ ] Github policies and best practices: - [ ] cleaning up old issues w/ no feedback - [ ] user help versus actual issue… -[ ] Doc builds -## Notes - - **Azure:** -- need to find way of copying permissions over: no group privileges… -- may take over some of the testing from Travis. - - **github policy** -- bot - we think this has gone silent, after n weeks bot will close, reopen on interest -- at least one round of conversation - - invite them to close themselves, “think this is not a bug because X” - - use “needs confirmation” tag - - support: stack overflow, mailing list, gitter -- bug reports are self selecting/small chunk of things people fine - - can assign teasing out the question issues to @hannah a - - **docs deploy cycle** -- auto building of docs not set up -- circle CI config -- or @Elch R can do it manually more often -- docs organization: - - matplotlib.org/rendered docs: https://github.com/matplotlib/matplotlib.github.com - - pipeline: - - website gets published to top level - - matplotlib.org/version gets to version docs - - matplotlib.org/project yields project docs - manually c&p’ed by maintainers -- possibly use submodules to refactor: https://help.github.com/articles/using-submodules-with-pages/ - - top level is current - - submodules for old versions - - submodules for externel projects (their existing repos) - - can use git-filter tree to maintain history -# 29 Oct 2018 -## Agenda -[x] Mac Framework (or not): https://github.com/matplotlib/matplotlib/pull/12633 - [ ] pushed to 3.1 -[ ] Matplotlib.use() after `import matplotlib.pyplot`: https://github.com/matplotlib/matplotlib/pull/12608 -[ ] Test coverage? How fussy do we want to be? -[ ] Other 3.0.x https://github.com/matplotlib/matplotlib/milestone/39 -[ ] `_hold` issue… - - -## Notes -- builds: - - windows via volunteer - - mac/linux https://github.com/MacPython/matplotlib-wheels and https://matplotlib.org/devel/release_guide.html#building-binaries -- Mac Framework - - working for pypy is a future feature, so push to 3.1 -- `Matplotlib.use` - - merged. Monitor for possible failure modes? -- squash and merge backports - - why not squash and merge? Users get confused because there is no record that the branch has been merged…. - - squashing helps make sure malicious commits not snuck in. -- #12641 Drop asarray and c[0] (indexing on first element) because breaks units and doesn’t quite work on pandas data frames? -- #12651 -- #12655 - data has bad values/overflow error - - - throw exception on runtime_warning? -- #12620 -- https://github.com/matplotlib/matplotlib/issues/12669 _hold bug that breaks cartopy/basemap - - minimimum fix - make setter or remove property -- #12958 - waiting on @Benjamin R -- - -# 22 Oct 2018 - - -[ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x -[ ] Test coverage? How fussy do we want to be? -[ ] Admin backlog - [ ] Governance - [ ] Swag logo (numfocus email) - What version of the Matplotlib logo would you want featured on the shop? I was thinking it might be nice to use one that actually says "Matplotlib," but the only file I have like that is very long and narrow and the font is sort of odd. - Do you want us to come up with something on your behalf? Is just the circle logo okay? - [ ] Community outreach - - -## Notes -- logo? numfocus starting a store for t-shirts stickers etc. - - logo only - - webpage header - - custom design - - forward to user mailing list (attn: @Thomas C ) -- community outreach: - - governance question for steering committee - - managing new contributors/summer students/ etc. -- PR review - - if you make minor change OK to approve… - - multiple reviewers: - - use the reject button to veto PR - - ping that reviewer if two others have approved - - explain why it’s rejected - - close if outright don’t want in - - no reject button: - - check if other comments have handled - - ping reviewers with deadline comments - - merge with two approvals (don’t ping) - - encourage devs/contributors to curate their own PRs - - - -# 15 Oct 2018 - - -## Agenda: - - -[ ] Py3.5 in 3.1? -[ ] https://github.com/matplotlib/matplotlib/pull/11711 lazy eval colors -[ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x -[ ] API changes level of detail. Mechanism for enforcing… i.e. numpy is more concise (?) -## Notes -- went through some v3.0.x PRs. Nov 3 weekend first w/e @tacaswell can get to it -- Py 3.5 - - schedule is for dropping for 3.1 - - need a good reason for dropping; - - Bug fix policy…. - - don’t have people to maintain too many bug fix branches - - can backport critical bugs - - Features in python that are worth doing - - kw-only arguments - - kw-argument order: API can be cleaned up (i.e. color, facecolor, do in order they came in). - - Default packages don’t include new versions of matplotlib… - - Solutions for upgrading python are much better than before… - - communication downstream: - - user and devel list (@tacaswell) -- -# 1 Oct 2018 -## Agenda -[ ] Stale PR mechanism? https://github.com/apps/stale, astropy has hand-built version. Let more people tag? More people close issues? https://github.com/ipython/ipython/pull/11326 -[ ] More get_tightbbox including artists that are not meant to be included. https://github.com/matplotlib/matplotlib/issues/12256 -[ ] https://github.com/matplotlib/matplotlib/pull/9565: How to deprecate the return value from `stem` method? -[ ] https://github.com/matplotlib/matplotlib/issues/12312 - - -## Notes - - -- still need to resolve how to move #9565 forward…. -- https://github.com/matplotlib/matplotlib/issues/12312 - - arbitrary scale needed? - - colorbars need some clean up still -- powernorm issue -- For annotate and ax.legend consider adding `in_layout=` kwarg…. TODO: @jklymak -- PR Stale: - - concerns about politeness - - maybe adds noise - - need to encourage a culture of closing issues. - - Didn’t talk about letting more people close issues. -# 24 Sep 2018 -## Agenda -[ ] 3.0.x bugs: https://github.com/matplotlib/matplotlib/milestone/37 - - - - -## Notes: -- because of https://github.com/matplotlib/matplotlib/pull/12213 we should release 3.0.1 pretty soon. And https://github.com/matplotlib/matplotlib/pull/12177 - - [#12173](https://github.com/matplotlib/matplotlib/issues/12173) might not just be windows. - - @efiring indicated that maybe on MacOSX as well - - https://github.com/matplotlib/matplotlib/issues/9485 perhaps also relevant. -- Sphinx issue - - search - - math directive - > mathmpl - - https://github.com/matplotlib/matplotlib/issues/12216 -- -# 17 Sep 2018 -## Agenda -[ ] tick locators. Why return bracketing values? Why worry about pixel size? https://github.com/matplotlib/matplotlib/pull/12105 https://github.com/matplotlib/matplotlib/pull/11004 -[ ] Date Formatter: https://github.com/matplotlib/matplotlib/pull/10841 Path to acceptance? Pros better. Cons, API change - - -## Notes -- tick locators: - - old was based on ticks rather than margins - - half pixel to reduce fiddling - - https://github.com/matplotlib/matplotlib/issues/1310 - - https://github.com/matplotlib/matplotlib/pull/1686 - - seem to have conflicting requirements - - on one hand we want to make the locators more separable from axis - - on the other hand we want may need to have access to the scales to work in pixel space so we need - - @Jody K ‘s PR moves the ‘pixel’ level clipping to the Axis object rather than the the locator - - Maybe keep extra ticks but trim in `axis.py` - - Ticks kept and removed… ticks not drawn versus not created confusing - - TODO: look at log locators; check axis API. Check drawing / having extra ticks… -- Date locator: - - TODO: localization - - -- Proposal: - - https://github.com/matplotlib/matplotlib/pull/10928 - - https://github.com/matplotlib/matplotlib/pull/10411/files should maybe be merged / done as part of / after proprocess data (not before). - - @Thomas C is on board with this. -# 10 Sep 2018 -## Agenda -[ ] Backend continues: https://github.com/matplotlib/matplotlib/pull/11962 -[ ] jquery: https://github.com/matplotlib/matplotlib/pull/11246 - [ ] needs caching in place? -[x] https://github.com/matplotlib/matplotlib/pull/12012 Fallback renderer for text (just like we did for legend) -[x] https://github.com/matplotlib/matplotlib/issues/11966 Cartopy was using private method. Fix already in master for cartopy. -[ ] color sequence management and colormaps: - - see https://github.com/matplotlib/matplotlib/pull/12009 New Tableau colormaps. - - what is level for adding new colormap - - how do we go from colormap to color cycles? - - better advertisement of packages that provide more colormaps or add such a repository to the matplotlib tree? i.e `cmocean` -[x] https://github.com/matplotlib/matplotlib/pull/12037 artist.get_aliases API change… -[ ] PR https://github.com/matplotlib/matplotlib/pull/11936 sphinx-exhibit -[x] https://github.com/matplotlib/matplotlib/issues/10948 OS/X backend deprecation warning for event_notify: - [x] https://github.com/matplotlib/matplotlib/pull/12053 merged - - -## Notes - - -- backend issue: needs another review -- jquery - - not actually all that urgent. - - might be moot when `ipympl` gets going and replaced `nbagg`… - - still relevant for webagg -- Renderer issues for get_window_extent - - mixed-mode renderer needs to specify renderer - - just always fallback to figure renderer? - - too much implicitness… - - but artists can’t move between figures. So each artist has a figure… - - force draw after saving… - - all caches onto figure and off individual figures… - - renderer=None → cahced renderer - - instantiate a renderer at figure creation? - - svg, pdf, only created when saving figure… - - they use agg etc - - but if initialized w/ pdf tight_layout etc don’t work?? - - get_window_extent screen space… -- Cartopy GeoAxes - - lost `._subplot_classes` but Cartopy pre-master still uses it. - - @Antony L and @Thomas C looking at it. -- Colormaps, color cycles, palettes, style sheets - - merging colormaps and palettes? Keep separate? - - palette: discrete set of colors - - discrete lines and areas - - flag is really a palette… - - colormap: quasi-continuous → floating point number. - - How often do we update colormaps? - - infinite colormaps? - - colormap packages? - - variations of colormaps… - - better document register_colormap - - in startup script or library init… - - palettable: @todo link: https://jiffyclub.github.io/palettable/ - - make colormaps have info about themselves. - - ie discrete, diverging, etcs - - @todo cookie cutter for data file creation a colormap… - - color cycles - - from discrete colormaps? -# 27 Aug -## Agenda -[x] PR https://github.com/matplotlib/matplotlib/pull/11934 Suprress “Non GUI Backend Warning” -[x] https://github.com/matplotlib/matplotlib/pull/11896 `rcParams.``**__getitem**``__(``'``backend``'``)` -[ ] -[x] https://github.com/matplotlib/matplotlib/issues/8289 broke hatching on OS/X .eps -[x] PR https://github.com/matplotlib/matplotlib/pull/10088 Deprecate Tick.{gridOn,tick1On,label1On,...} in favor of set_visible -[x] PR https://github.com/matplotlib/matplotlib/pull/11944 - wx:clientDC - - - - -## Notes -- mpl-altair summer work: https://github.com/matplotlib/mpl-altair - - convert altair chart to mpl fig/ax - - in pre-alpha form - - needs write up for numfocus -- 11934 - merged -- 11896 - waiting for CI to spin - - put initial config of backend capability back, but default to none -- 10948 - needs confirmation by someone with OS/X (@* Paul I?) -- 8289 - punted to 3.1? -- 10088 - - - all public API, would need to be shimmed out in refactor -- 11944 - - needs backport? - - needs verification with WX -- 11936 - - replacement except for thumbnail view (@Antony L just needs the CSS for that) - - - - -# 19 Aug 2018 - - @efiring, @tacaswell, @dopplershift, @anntzer, @jklymak -## Agenda -[x] How do we get 3.0 out the door? What to do about the backend mess? - - https://github.com/matplotlib/matplotlib/pull/11896 -[x] [NF] Add 'truncate' and 'join' methods to colormaps. https://github.com/matplotlib/matplotlib/pull/7716 -[x] PR Download jquery during build. https://github.com/matplotlib/matplotlib/pull/11246 -[x] [**BUG: correct the scaling in the floating-point slop test.**](https://github.com/matplotlib/matplotlib/pull/11591) ****https://github.com/matplotlib/matplotlib/pull/11591 - - -## Notes - - -- RC3.0r1 - - Backend issue - - inter-operability, packaging etc issue. Patterns of usage. - - solve packaging issue with forcing packagers to choose a backend. -- jquery - - @tacaswell to finish up… -- # -- 7716 - - make simpler interface and do some of work outside function - - indexing w/ slices and lists - - otherwise too complex. - - direct indexing and floating point referencing. - - difficult because cmaps take floats and integers now. - - Probably best to do as a documentation example of using `ListedColormap` to do what this PR does. @jklymak will write an example if something doesn’t exist. -- Scaling floating point - - 3.1 or 3.0: 3.0 Approved after @efiring fix deprecation messages. -# 30 July 2018 - - -# 23 July 2018 - - - - Various PRs were discussed in preparation for 3.0. Progress was made closing a few. -# 16 July 2018 - - -## Agenda -- Eight 3.0 PRs: https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.0 - - ~~https://github.com/matplotlib/matplotlib/pull/11672 : Trivial please merge~~ - - https://github.com/matplotlib/matplotlib/pull/11637 : API changes (release work) - - https://github.com/matplotlib/matplotlib/pull/11600 : backend switching: @Tim H has some concerns, but we should probably bite bullet and merge (2 approvals) - - https://github.com/matplotlib/matplotlib/pull/11234 : `fig.add_artist` Needs second review; ready to merge - - ~~https://github.com/matplotlib/matplotlib/pull/10886 : Not sure what this is, and why its needed~~ @Antony L remilestoned by AL - - https://github.com/matplotlib/matplotlib/pull/11026 : `ax.inset_axes` bringing functionality over from `axes_grid`. One approval - - https://github.com/matplotlib/matplotlib/pull/10691 : needs second review. Makes shared axes ticks follow each other. Requesting from @Eric F - - https://github.com/matplotlib/matplotlib/pull/10513#pullrequestreview-137499525 : file encoding changes @Antony L . Needs second approval - - https://github.com/matplotlib/matplotlib/pull/9084 : py3 @Antony L dealing with `_proxy`. - - https://github.com/matplotlib/matplotlib/pull/8951 : qt changes to mix blit and redraw @Antony L -- pandas datetime integration revisit - - See https://github.com/matplotlib/matplotlib/pull/11664 and associated issues - - #11664 proposes *not* registering the pandas date converters and running tests on our own date converters instead. Per discussion with pandas folks https://github.com/matplotlib/matplotlib/issues/10533 and https://github.com/matplotlib/matplotlib/pull/10638, they want to *not* automatically register their converters on `import pandas`, so we were moving towards making matplotlib converters work without needing their converters. Given that it makes sense to not register their converters, and leave testing of their converters to pandas. - - -## Notes - - -- SciPy debrief @Thomas C : - - Governance - - steering council Matplotlib - - different than technical leadership - - grants, 10000-foot view project - - Code of conduct issues - - commit bit decisions - - cap on numbers i.e. five people - - non-commit bit people on council (i.e. downstream consumers) - - Finance committee w/ numfocus - - new membership - - meet regularly - - Sprints - - documentation overlap - - canonical links in old docs. More direction to top levels. - - scrape archive for matplotlib - - sort out matplotlib in them: arAxiv 13% in last month ~2000 papers; grant draft. Grant numbers? - - Refactors - - maybe in affiliated packages - - structured data `xarray` and `dataframes` - - numpy `dtypes` discussion: co-ordinated w/ numpy - - `axes` and `pyplot` possibly legacy - - data “class” - - better return types for children - - more custom artists - - draw tree: high level and low level… - - export to java script, and save to JSON etc… - - traitlets - - notify listeners. - - Link to ipywidgets, - - tuned to ipython - - maybe we need to implement our selves? - - python-based configuration? - - ipython does it: - - No ui can go in front - - *Why? Something like https://github.com/matplotlib/matplotlib/pull/7696 could work. AL.* - - jupyter - - security? Probably not an issue and switches… - - can't programatically roundtrip - - do we want? - - *Is this true? Can’t we just ensure that everything that goes to the rcParams has a correct (roundtripping) repr? AL.* -- 2.2.3 this week - - qt release breaks shims - - no RC -- - - -# 9 July 2018 - - -## Notes - - -# 2 July 2018 -## Agenda - - -## Notes -- revive matplotlib dev mailing list -- naming conventions -- new major feature; how to make a namespace package - - easier for 3.0 -- relaxing object-orientation… - - make plotting functions that take an axes rather than axes methods - - current way barrier to other projects who want to add their own plot functionality - - how to pass `ax` argument to such functions - surface.pcolor(ax, x, y, z) - surface.pcolor(x, y, z, ax=ax) - - decorators to supply pyplot-like interface? context manager? i.e. - - `with ax as plt.gca():` -- -# 25 June 2018 -## Agenda -# 18 June 2018 -## Agenda -- PR https://github.com/matplotlib/matplotlib/pull/11127 still needs second review -- PR https://github.com/matplotlib/matplotlib/pull/10682 : - - `ax.get_tightbbox` includes *all* axes artists by default - - new `artist.set_in_layout` meallow artists to opt out of layout - - big PR, but mostly because piecemeal implementation has been refactored to one place. (ie. `savefig('name.png', bbox_inches='tight')` uses the same algorithm as `get_tightbbox` now, whereas before they did not -- PR: https://github.com/matplotlib/matplotlib/pull/11438 - - one-liner plus some docs; provides: `gs = ax.get_gridspec()` - - -## Notes -- https://github.com/matplotlib/matplotlib/pull/11293 - - naming xmin/xmax, left/right, upper/lower etc. - - merged -- https://github.com/matplotlib/matplotlib/pull/11026 - - “lbwh” versus ambiguous “rect” - - move in dir of more consistency naming - - better name for `zoom_inset_indicator` - - highlight_zoom_region - - outline_zoon_region - - add_inset_locator - - `add_zoom_inset_indicator`? - - -- TODO: review https://github.com/matplotlib/matplotlib/pull/11127 determine if it needs https://github.com/matplotlib/matplotlib/pull/11127 a subclass scatter artist. - - @Thomas C will review this week. -- https://github.com/matplotlib/matplotlib/pull/10682: - - TODO review before 3.0 - - -# 11 June 2018 -## Agenda -- https://github.com/matplotlib/matplotlib/issues/11416: datalim/sharex/y issue. -- Scatter legend handler - - https://github.com/matplotlib/matplotlib/pull/11127 -- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… - - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), -- rename cm.py→colormaps.py https://github.com/matplotlib/matplotlib/pull/11413 -## Notes - - @efiring, @jklymak -- colormap/cm issue - - old issue… - - probably a good first step. larger scale organization maybe for later… -- #11412: https://github.com/matplotlib/matplotlib/pull/11412 - - consisntency `contour` and `contourf` - - keep same number of levels even if no data when user specifies a level. - - colors match up between fill and edge - - levels and layers: color-mapping to layers. levels and layers same for line contour… -- datalim/ apply aspect, sharex etc - - apply_aspect can have impossible solns - - works at draw time, and then tries to send info to shared axes…. - - has possible constrained_layout implications… - - race conditions possible. - - sharing across figures. - - resize figure, aspect ratio changes - - datalim option to aspect is very tricky, especially when sharing… - - add twinning: - - Limitations that are a problem… - - question whether to special case some? - - Todo write tutorial: @jklymak - - show simple API - - show ways to get basic things done. -- ENH add an inset_axes to the axes class #11026 -# 4 June 2018 -- Scatter legend handler - - https://github.com/matplotlib/matplotlib/pull/11127 -- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… - - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), -- @Jody K Methods to organize plotting hierarchy: #11026, #11010, #11234 - - Note new project aimed at axes_grid1 harmonization: https://github.com/matplotlib/matplotlib/projects/9 - - do we want this? Not attracting reviews… -- @Tim H naming issues? In particular the set_*lim parameter names #11293 -- @Tim H naming conventions re methods: maybe inset_axes_rect #11026. -## Notes - - **Naming issues re xmin/xmax/limits** -- currently can use min/max or directional - - https://github.com/matplotlib/matplotlib/pull/11293#issuecomment-391438870 -- don’t have two parameters with different names doing the same thing, but may not be a good idea to discard existing - - min/max is consistent with r/theta - - directional may be more strictly correct/accurate - - replace name and use start/stop for everything -- @Eric F xlim/xmin/xmax are horrible: - - xmin/xmax subset of xlim - - min & max isn’t clear - positional or numerical - - - for cartesian axis left & right are correct and unambiguous -- @Eric F bbox methods confusing but use left, right, bottom, top - - rlim directional would be inner/outer - - theta lim - maybe use stop/start instead (would be consistent with normal range) - - radial has clockwise and counterclockwise - figure out default direction? -- ToDo: - - look at situation with polar plots - - look at transforms see if change needed for API consistency - - check with @Thomas C for thoughts - - formal deprecation or informal deprecation in documentation (new standards) - - do a long term change in docs and warn people heavily - slow dep roll out - - **Naming issues re methods** -- https://github.com/matplotlib/matplotlib/pull/11026#issuecomment-392315969 -- use verbs that explain what the method is doing: - - `make_inset_axes_rec` -- Alternative: `inset_axes_from_rect` (makes it clear that it’s not only returning a value because it’s creating “from the rect”. -# 27 May 2018 -## Agenda -- ~~#6254 https://github.com/matplotlib/matplotlib/pull/6254 quick review~~ -- traitletts? What is the path forward here? - - previous attempts tried to do all in one PR - seems impossible w/o freezing the rest of development. Need a better strategy (or scrap idea?) -- switch meetings to a hangout hosted by matplotlib@numfocus.org? -## Notes - - **Traitlets** - - `_traitlets/` submodule (?) - - monkey patch into new modules as they are built out. - - tried last summer, but didn’t get done… - - month of full-time effort senior developer… - - hard for nights and weekend… - - could have a grant proposal - - Sloan? Moore, NSF Infastructure (Thomas can’t be on NSF grant) - - Projects that look good - major change versus under the hood - - Numfocus? - - institutional partner? BIDS? - - talk to Fernando Perez - - Summer student? - - core library so maybe dangerous - - Difficult to make sure consistency across classes - - stakeholders - - lots of cleanup along the way - - Half-time buyout for senior developer? - - google stats, hits on documentation… -- ToDo: - - start iterating through drafts of whitepapers/proposal drafts - - https://vorpus.org/blog/the-unreasonable-effectiveness-of-investment-in-open-source-infrastructure/ - - https://vorpus.org/blog/a-farewell-to-the-berkeley-institute-for-data-science/ - - https://github.com/tacaswell/mpl_grant (currently invite only) - - Look at governance rules - assign owner to contentious PRs - - - - **3.0 timing:** - - cut 3.0 in time for SciPy - - approx. June 23 RC1 tagged - - 3.0 July 8 final before SciPy - - - - ----------- -# 20 May 2018 -# 14 May 2018 - - @Jody K @Eric F @Antony L @Thomas C @hannah a -## Agenda -- 2.2.3? https://github.com/matplotlib/matplotlib/milestone/34 - - 3 outstanding PRs 1/2 approved. A few issues. -- image scaling: (attn @tacaswell) - - https://github.com/matplotlib/matplotlib/pull/11047 -- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? -- get legend entries for scatter: - - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) -- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… - - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), -- `ax.inset_axes` still needs review: https://github.com/matplotlib/matplotlib/pull/11026 -## Notes - - - - **2.2.3 out****standing PRs** -- 11062 - merged on rebase, all in new constrained layout -- 2.2.3 after jquery fix (11199) -- change in build strategy for 2.2.3 and long term to fix jquery - - in sdist, but not repo; download at download time? Download sdist, not tarball - - from pypi will be OK not GitHub for a single tar file - - follow jupyter’s methodology - - @Antony L in next month or so? - - - - **Scipy dependency** -- use for examples? - - Yes, but not in main codebase… Travis tests always w/o scipy -- scipy readily available; annotate examples to make it clear its needed… -- pandas? - - what about their plotting? seaborn - - add to examples to showoff pandas integration - - **Leg****e****nd entry on PathCollecti****on** - - good idea, parallels version on contours - - concern that PathCollection used for other things - - maybe add a ScatterAritist which is a subsclass of PathCollecion which adds this method (+ would help @Antony L with mpl cursor) - - https://github.com/networkx/grave/blob/master/grave/grave.py#L221 - - ----------- -# 07 May 2018 - - @Jody K @Eric F @hannah a @Thomas C -## Agenda -- get legend entries for scatter: - - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) -- To review: [#](https://github.com/matplotlib/matplotlib/issues/11079)[~~11079~~](https://github.com/matplotlib/matplotlib/issues/11079) [#11060](https://github.com/matplotlib/matplotlib/issues/11060) -- ~~Needs squash and merge:~~ [~~https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754~~](https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754) -- unit property of axis: - - https://github.com/matplotlib/matplotlib/issues/11095 - - https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/testing/jpl_units/StrConverter.py -- mplot3d status and long term plans? GL and cairo? -- `__repr__` vs `__str__` ? - - https://github.com/matplotlib/matplotlib/pull/11173 -- image scaling: (attn @tacaswell) - - https://github.com/matplotlib/matplotlib/pull/11047 -- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? - - -## Notes - - **Repr vs. Str for Transforms** -- str same as repr is fine? Best practice? `__repr__` shorter…. - - **Unit property of Axis****:** attn ****@Ryan M **** -- go back to using different attribute to store mapping -- create attribute on unit that stores ordering string - unit.unit = -- fix overwriting the unit object by passing in the unit **kwarg -- general sense - - units are offsets + scaling factors or (days, minutes, etc. ) - unify inches and feets - - data stylesheets - mapping data to floats (dates, times, strings) - - user sets -- two types of units: - - kwarg unit - was stored in ax.unit, now clobbered my datatype unit - - datatype - _unit -- should axis support floats even when locked? - - @Jody K let the convertor decide -- internal data abstraction @tacaswell - - data objects attached to artist… - - adaptive re-sampling - - units handling on fly… stores units. - - **OpenGL** -- graphics cards transform stack -- draw stack hard to plug that in w/o moving whole stack down - - ----------- -# 30 Apr 2018 - - @Eric F @Jody K @Thomas C @paul h @hannah a -## Agenda: -- py3 transition: - - [#11142](https://github.com/matplotlib/matplotlib/issues/11142) is this too aggressive? makes for issues with PRs being able to be back ported to 2.2.3 - if we yank out all future imports etc how do we write PRs that can be ported to 2.2.x? -- Update: bbox issues: @jklymak: - - [#10682](https://github.com/matplotlib/matplotlib/pull/10682) updated to have `inbbox=True/False` parameter. -## Notes: - - PY3 transition. -- @Thomas C wants to stand by the backport criteria (critical bugs and regressions), other backports need a champion. -- 2.2.2 doc branch should only get changes to the .rst file, won’t see changes .py because of how docs are built - - UpdateL bbox issues -- a`rtist.inbbox` flag - property on artist: - - when tight_layout does calculation, ignores everything set to False - - pro: explicit listing of elements in bbox - - con: @Eric F unintended consequences like possible performance issues? - - does everything need to be explicitly white/blacklisted? - - goal for constraint layout to maybe be default? - - GUIs need to be resized and so on the fly layout - - @paul h suggests doing some benchmarks to see if performance is an issue - - @Thomas C what else could we use this flag for? semantic content of “I want this artist included in the bbox” - tight layout, constrained layout - - sticky edge - when you change autoscaling to non-tight, but some artists need tight like imshow: - - draw circle on image, will recognize that image wants tight - - if circle>image, adds pad - - clip paths - draw a line from [-10, 10], set limits to [-5, 5] , only see data in -5, 5 range, if you turn off then will show [-10,10] line - - clip on - yes/no clip flag - - clib path - arbitrary path to clip to - - clib box -if path rectangle, has some optimized code to make box - - if child not clipped, will include as part of axes bbox - - could check if clip box==axes box - - axes bounding box = union of all clip objects, and objects outside that box get added in -- maintain get_tightbox signature by removing: -- get_tightbox should stay on artists and do intersection in print, thereby deprecating extra artist - - - - - - - - ----------- -# 23 Apr 2018 - - @efiring @jklymak, @story645, @dopplershift -## Agenda: -- bbox issues: @jklymak: - `ax.get_tightbbox()` now includes legends as of #9164 (and #10682 proposes making it that way for *all* artists). But that is sometimes bad if the user has stuck the legend far from the axes (i.e. #11041). @ImportanceOfBeingEearnest brought up the idea of having a flag attached to an artist that says whether it should be part of get_tightbbox, so users can turn it on/off on an as-needed basis. - - https://github.com/matplotlib/matplotlib/issues/9130, https://github.com/matplotlib/matplotlib/pull/9164, https://github.com/matplotlib/matplotlib/pull/10682, https://github.com/matplotlib/matplotlib/issues/11041 -- inset_axes API: - - https://github.com/matplotlib/matplotlib/pull/11026 -- event tracking data in google analytics w/docs - - https://developers.google.com/analytics/devguides/collection/analyticsjs/events -## Notes: - - **bbox_issues** -- previously: constraint/tight layout didn’t include legends - - figure legends not in tight bbox? - - included when fig bbox=tight - - not included in axes bbox - - used in tight and constraint layout - - artist property set to true by default, could be set to false by default -- should all artists be part of tight box? do we need method of exclusion? - - @Eric F flag is low barrier, but is there enough use case? - - current: legend based on bbox_to_anchor argument against existing axes - - proposed exclusion methods: - - method on artist: legend.exclude for bbox - - kwarg to `constraint_layout`? - - alternatives for legends: - - attach legend to its own axes and use that bbox - - @use fig.legend + bbox transform -- @Jody K To Do: add exclusion flag -- @Eric F move automatic gathering of handles, labels into axes methods - - do axes composition: axes.get_legend_entries in fig.axes - - feed sum(handles, labels) into fig.legend() - - **inset_axis** -- child axes - - @Eric F want to preserve hierarchy/ composition - - @Jody K needed for tight_layout/constrained_layout - - tension w/ preserving axesgrid api: - - axesgrid is poorly documented - - multiple apis for add_inset: - - manual, specify the box for the inset axis - - loc based but needs height+width - - padding? - - handled w/ uniform shrink (like colorbar) - - pad in terms of physical units? @Jody K?? - - @Eric F : Start with simple api - - specify rectangle and transform - - @Jody K add_inset_rect + pad - - specify pad in physical units - - **API inconsistencies** - - @Eric F: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) - - keep track of inconsistencies? - - shift to a more uniform standard? - - how to tabulate? - - new github repo for program management? https://github.com/matplotlib/ProjectManagement - - add issues for api inconsistencies - - **3.0 plan** -- aim is for SciPy: release 3.0 -- point of 3.0 is mostly to get devs using Python 3.0 only version - - - - - ----------- - - -# 16 Apr 2018 - - @Eric F, @Ryan M, @Thomas C, @hannah a, @Antony L -- Documentation Summit: Who wants to come? (And where are you located?) -- PRs: - - https://github.com/matplotlib/matplotlib/pull/11048 - - https://github.com/matplotlib/matplotlib/pull/11027 - - https://github.com/matplotlib/matplotlib/pull/11055 -## Notes -- imshow Python refactor: - - agg interpolation -- 11027 - @Thomas C - - Add one more dial to automatic spacing based on font size - - assuming x axis tick labels are wider than y axis - more ticks on y than x - - wants algorithm to factor in when x is smaller - dynamic guessing of xtick size - - adding unnecessary? complexity - - @Ryan M - subclass locator, make it first class citizen in library - - @Antony L monkey patch axis api: - - add public API to replace methods - - tell user to subclass locator - have subclassing API - - set default axes for axis - - @Eric F generalize API to accomplish same by making two new parameters: - - x tick label size/ y tick label size - access to these properties - - trying to estimate how large tick will be in axis dimension (based on character width and height, not fontsize) - - Public API change to locator: - - control multiples of x and y tick label size - - heuristic is combining stuff from axis to locator - - deprecate get_tick_space, replace with private method that - - gets length of tick in points - - fontsize in points - - locator can get axis object for axis names (x or y) - - need easy way to subclass locators instead of having to subclass axis -- 11048 - @Thomas C - - move bar grouping out of hist into its own thing so that it can be a shared private function - - add a plt.multibar/groupedbar to support multiple bars that can call bar underneath the hood - - can prune some of the features of bar: no bottom, no alignment, - - grouping - by variable (y) or by x(category) - - API design with no implementation first + how it’d be used by refactored hist - - follow plot and pandas semantics with respect to broadcasting x to y: each column is a dataseries/variable - - replace some of histograms logic with a call to multibar - - @Eric F create a hierarchy of how the plots build on top of each other - - bar charts x tick labels should probably be fixedlocator/fixedformatter by default -- 11055 - - @Antony L easy to restore, unclear what it does, doesn’t think it works - - @Ryan M conda-forge testing branch makes setup_cfg use the local freetype - - use case: conda looks up listed packages, so you can run only the tests and install the test data, can check all the files that were installed and say “that’s my package” which is a test only package that only contains test results - - newer versions of conda build can generate multiple packages out of one recipe - - pitch it back to conda unless they ask about it? -- [+Documentation summit](https://paper.dropbox.com/doc/Documentation-summit-3HkbTDvrztZbmIm6wsC0B) - - Late Summer/Early Fall - 2-3 days - - Manning people want long form narrative explaining step by step - - thoughts - - @Eric F - summer is better than fall (mid august) - - @Antony L - intermediate level docs (step function in documentation) - - does this already exist? - - defining what is intermediate? - @Antony L what is Python? what is matplotlib? - - https://mail.python.org/pipermail/matplotlib-devel/2018-March/001033.html - - - - - - - - - - - ----------- -# 9 Apr 2018 - - @Ryan M , @Jody K @Eric F @Thomas C , @hannah a - - -[x] inset_axes and extra_spine_x/extra_spine_y into main library. - [ ] https://github.com/matplotlib/matplotlib/issues/10976 - [ ] https://github.com/matplotlib/matplotlib/issues/11005 -[x] https://github.com/matplotlib/matplotlib/pull/9022 -[ ] https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av2.2.3 ? -[x] Mailing list administration -[x] Git workflow documentation? https://github.com/matplotlib/matplotlib/pull/10997 - - -## Notes - - **Inset_axes/spine tick stuff** -- @Eric F spend time over the weekend reading through how tick code actually works and took notes. -- @Jody K Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) -- @Eric F summary of history of axes_grid and friends -- discussion of what parts of axes_grid we can move up into the ‘mainline’ of the codebase -- @Eric F - refactor and better document code to reduce technical debt? -- @Eric F Cleaning up current ticker might be worth doing before we do whole-sale re-write -- @Eric F suggests that we accept more breakage of edge-case APIs for improved consistency, -- trade off: replacing more complex with simpler 👍 , complex with complex 👎 -- @Thomas C sold on: - - axes_inset as children of parent axes - - more thought on axis children objects - - different x spine/multiple x spines - - facilitates hierarchical locating/labeling - - ticker - container for one formatter/locator - - smarter ticker that can have sequence of : - - spines, locators, formatters - - thing that’s drawn: spine/tickers/formatters - - axis: information about scale, patches, etc. - - scale sets transform, default locator, formatter - - blended scale - apply - - transform(y) to y data, - - transform(x) on x data - - separate transform for projection - - need full transform to do all ticks - - - **Wh****ere to put developer notes?** - - add tutorial section for developers - - https://github.com/matplotlib/matplotlib/pull/10947 - - Notes in progress? - - @Antony L suggested the wiki - - **Con****se****nsus** https://github.com/orgs/matplotlib/teams/developers - - - - **Perez:** -- possible rewrite pyplot with aim to more consistent input → output, state machine - - - - **Gitwash/git workflow documentation** -- Find out who has push on it -- using it to standardize workflow across communities -- @Antony L suggesting we just link to central gitwash instead of bothering with templating -- @Tim H https://github.com/matplotlib/matplotlib/pull/10997 - - - - **Mailing list:** -- @Jody K suggest automatic reply on rejected posts saying you have to join to post to the list - - - - **Tool manager:** -- https://github.com/matplotlib/matplotlib/pull/9022 -- @Antony L - good idea but ToolBarManager should be moved out of core -- @Thomas C can’t be moved out ‘cause too coupled with GUI backends -- @Jody K why ToolBarManager? - - @Thomas C makes toolbar modular -can just add buttons for things like zoom and lasso - - @Antony L adding buttons using homebuilt widget system → tool bar manager → write full blown QT GUI - - @Antony L wants to know if it will be the full blown default or another axis_grid - - backends: everything except WX (which is in PR) -- goal for 3, default in 3.1 - - ----------- -# 2 Apr 2018 (Easter Monday) -[ ] Clarify MEP process -[ ] Tick refactor: - - (Timhoffm, but he has no email address to invite.) - - https://github.com/matplotlib/matplotlib/issues/5665#issuecomment-377269387 -## Notes 2 Apr 2018 - - **MEP about MEP?** @Thomas C **will do book keeping tasks** -- When to write a MEP? - - proposing controversial features, - - backward incompatible features - - big new features/ major features - - add to top of : https://matplotlib.org/devel/MEP/index.html - - in readme.txt add link to MEP page - - https://github.com/matplotlib/matplotlib/tree/master/doc/devel -- possibly update index with abstract info from MEP -- Style guide for MEPs - - https://matplotlib.org/devel/MEP/template.html -- Where to discuss MEPS? - - PR + DEV mailing list? - - numpy just had this discussion- ended up split between PR and mailing list - - cross link wiki MEPs to PR MEPS, declare which is canonical version - - PR to doc/devel/mep -- When proposing a MEP: - 1. do a small PR that adds your MEP to the master list (in https://matplotlib.org/devdocs/devel/MEP/index.html), - 2. have another PR with the actual discussion. Helps avoiding conflicting numbers. - - - - **Need text/followup from** @Thomas C **on** -[x] summer student -[x] documentation summit - - - **Tick Refactor** @Tim H **** -- target 3.1 -- MEP? -- concern about how much of the current flexibility do we actually use? -- get buy in from cartopy and astropy/yt/wcsaxes/etc -- 3 phases to roll out (probably 2 year timeline): - - old system as default + new as beta - - new as default + old available - - drop old system -- Figure out how much of the API changes/what public methods need to dropped; - - public api that predates __ convention - - are ticks markers or line collections or something else? - - gridlines are line collections/single broken line - - @Antony L sketch: https://github.com/anntzer/matplotlib/tree/_wip/newaxis - - how does it work with projections? - - straight line in proj space or data space - - rader plots wants straight - - other polar wants curved - - `l.get_path()._interpolation_steps = GRIDLINE_INTERPOLATION_STEPS` L505 in axis.py - - how does it work with labeling? - - correctly computing normals of the edge - - Snapping: - - have to snap ticks and axes border and girdlines - - currently snap to closest pixel - - **TextCollection? instead of list of Texts** -- text rendering may be slow because of rasterization of individual glyphs, but should be profiled -- might be good for completeness/API reasons -- @Ryan M scattertext WIP: https://github.com/matplotlib/matplotlib/pull/4063 - - needs colormapping -- marker, patch and polycollection - - marker codepath/ in draw path: - - if all markers same, draw once and stamp (draw marker path) - - if one marker different, falls back on individual rendering (draw poly path) - - **Ternary graph:** -- https://github.com/matplotlib/matplotlib/pull/6737 ----------- -# 26 Mar 2018 -[ ] DateFormatter and Locator @Jody K - Do we want to update the default locator and ticks or just provide another Formatter option for savvy users? - - https://github.com/matplotlib/matplotlib/pull/10841 - - https://github.com/matplotlib/matplotlib/pull/9801 -[ ] Google summer of code student - - project? -[ ] Extra Ticks: - why do we need extra ticks around viewlims? These end up causing headaches because they are not drawn, and their visible state is true (in master). - - https://github.com/matplotlib/matplotlib/pull/10881 - - https://github.com/matplotlib/matplotlib/issues/10874 - - https://github.com/matplotlib/matplotlib/pull/9452 - - https://github.com/matplotlib/matplotlib/issues/9397 - - - - -## Notes: 26 Mar 2018 - - Antony, Hannah, Ryan, Jody - - **Ticks** - - issues with extra ticks outside viewlims. Antony said they were due to roundoff errors. - - maybe trim at Locator level. - - deprecate not visible: - - `ticker.Locator` would all need to change - - deprecate out of range ticks first, and then expect proper list - - epsilon out of viewlims? Keep those. - - ticks and lines top and bottom: individual lines for each ticks. - - overhaul, single line for top and bottom ticks. `LineCollection` for grids. - - back compatibility? Custom `Axes` subclass with new `Axis` subclass…. - - each line call is slow (units support). - - speed benefit? - - can’t manipulate individual tick visibility. - - - - **Datetime formatting:** - - https://github.com/matplotlib/matplotlib/pull/10841 - - https://github.com/matplotlib/matplotlib/pull/9801 - - General agreement locator - - General agreement formatter: - - needs way to get old beghaviour - - useful for teaching/default - - @Antony L suggested naming convention - - MPLxyDateFormatter - - Alias AutoFormatter to current MPLXYDateFormatter - - Document “We reserve right to change formatter” - - deprecate old linear scalar formatter? - - localization of month - - Check if way? - - - - **To merge:** -[x] https://github.com/matplotlib/matplotlib/pull/10314 -[x] https://github.com/matplotlib/matplotlib/pull/10158 - - - - - - localization of month - - Check if way? - -**To merge:** +### To merge: [x] https://github.com/matplotlib/matplotlib/pull/10314 [x] https://github.com/matplotlib/matplotlib/pull/10158 - - diff --git a/meeting_notes/2018/2018_03_mar.md b/meeting_notes/2018/2018_03_mar.md new file mode 100644 index 0000000..1068f8f --- /dev/null +++ b/meeting_notes/2018/2018_03_mar.md @@ -0,0 +1,60 @@ +# Matplotlib Weekly Meeting: March 2018 + +###### tags: `2018 dev call` + +--- + +# March 26, 2018 + +- Antony, Hannah, Ryan, Jody + +[ ] DateFormatter and Locator @Jody K + Do we want to update the default locator and ticks or just provide another Formatter option for savvy users? + - https://github.com/matplotlib/matplotlib/pull/10841 + - https://github.com/matplotlib/matplotlib/pull/9801 +[ ] Google summer of code student + - project? +[ ] Extra Ticks: + why do we need extra ticks around viewlims? These end up causing headaches because they are not drawn, and their visible state is true (in master). + - https://github.com/matplotlib/matplotlib/pull/10881 + - https://github.com/matplotlib/matplotlib/issues/10874 + - https://github.com/matplotlib/matplotlib/pull/9452 + - https://github.com/matplotlib/matplotlib/issues/9397 + +## Notes + +### Ticks + + - issues with extra ticks outside viewlims. Antony said they were due to roundoff errors. + - maybe trim at Locator level. + - deprecate not visible: + - `ticker.Locator` would all need to change + - deprecate out of range ticks first, and then expect proper list + - epsilon out of viewlims? Keep those. + - ticks and lines top and bottom: individual lines for each ticks. + - overhaul, single line for top and bottom ticks. `LineCollection` for grids. + - back compatibility? Custom `Axes` subclass with new `Axis` subclass…. + - each line call is slow (units support). + - speed benefit? + - can’t manipulate individual tick visibility. + +### Datetime formatting: + + - https://github.com/matplotlib/matplotlib/pull/10841 + - https://github.com/matplotlib/matplotlib/pull/9801 + - General agreement locator + - General agreement formatter: + - needs way to get old beghaviour + - useful for teaching/default + - @Antony L suggested naming convention + - MPLxyDateFormatter + - Alias AutoFormatter to current MPLXYDateFormatter + - Document “We reserve right to change formatter” + - deprecate old linear scalar formatter? + - localization of month + - Check if way? + +### To merge: + +[x] https://github.com/matplotlib/matplotlib/pull/10314 +[x] https://github.com/matplotlib/matplotlib/pull/10158 diff --git a/meeting_notes/2018/2018_04_09.md b/meeting_notes/2018/2018_04_09.md deleted file mode 100644 index 7316c44..0000000 --- a/meeting_notes/2018/2018_04_09.md +++ /dev/null @@ -1,82 +0,0 @@ -# ☑️ Matplotlib meeting agenda -**Call co-ordinates: 15:00 Eastern US time (UTC -04:00)** -[Google Hangouts](https://hangouts.google.com/hangouts/_/calendar/NzloazhqaHZsa3M4am44ZHM0cmkxZTZxNGdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ.bb6q6do0fci19u582r7mjv6o2o?authuser=0) (link) - -# 9 Apr 2018 - -@Ryan M , @Jody K @Eric F @Thomas C , @hannah a - - -[x] inset_axes and extra_spine_x/extra_spine_y into main library. - [ ] https://github.com/matplotlib/matplotlib/issues/10976 - [ ] https://github.com/matplotlib/matplotlib/issues/11005 -[x] https://github.com/matplotlib/matplotlib/pull/9022 -[ ] https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av2.2.3 ? -[x] Mailing list administration -[x] Git workflow documentation? https://github.com/matplotlib/matplotlib/pull/10997 - - -## Notes - -**Inset_axes/spine tick stuff** - -- @Eric F spend time over the weekend reading through how tick code actually works and took notes. -- @Jody K Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) -- @Eric F summary of history of axes_grid and friends -- discussion of what parts of axes_grid we can move up into the ‘mainline’ of the codebase -- @Eric F - refactor and better document code to reduce technical debt? -- @Eric F Cleaning up current ticker might be worth doing before we do whole-sale re-write -- @Eric F suggests that we accept more breakage of edge-case APIs for improved consistency, -- trade off: replacing more complex with simpler 👍 , complex with complex 👎 -- @Thomas C sold on: - - axes_inset as children of parent axes - - more thought on axis children objects - - different x spine/multiple x spines - - facilitates hierarchical locating/labeling - - ticker - container for one formatter/locator - - smarter ticker that can have sequence of : - - spines, locators, formatters - - thing that’s drawn: spine/tickers/formatters - - axis: information about scale, patches, etc. - - scale sets transform, default locator, formatter - - blended scale - apply - - transform(y) to y data, - - transform(x) on x data - - separate transform for projection - - need full transform to do all ticks - - -**Where to put developer notes?** - - - add tutorial section for developers - - https://github.com/matplotlib/matplotlib/pull/10947 - - Notes in progress? - - @Antony L suggested the wiki - - **Con****se****nsus** https://github.com/orgs/matplotlib/teams/developers - -**Perez:** - -- possible rewrite pyplot with aim to more consistent input → output, state machine - -**Gitwash/git workflow documentation** - -- Find out who has push on it -- using it to standardize workflow across communities -- @Antony L suggesting we just link to central gitwash instead of bothering with templating -- @Tim H https://github.com/matplotlib/matplotlib/pull/10997 - -**Mailing list:** - -- @Jody K suggest automatic reply on rejected posts saying you have to join to post to the list - -**Tool manager:** - -- https://github.com/matplotlib/matplotlib/pull/9022 -- @Antony L - good idea but ToolBarManager should be moved out of core -- @Thomas C can’t be moved out ‘cause too coupled with GUI backends -- @Jody K why ToolBarManager? - - @Thomas C makes toolbar modular -can just add buttons for things like zoom and lasso - - @Antony L adding buttons using homebuilt widget system → tool bar manager → write full blown QT GUI - - @Antony L wants to know if it will be the full blown default or another axis_grid - - backends: everything except WX (which is in PR) -- goal for 3, default in 3.1 diff --git a/meeting_notes/2018/2018_04_16.md b/meeting_notes/2018/2018_04_16.md deleted file mode 100644 index 509c83e..0000000 --- a/meeting_notes/2018/2018_04_16.md +++ /dev/null @@ -1,64 +0,0 @@ -# ☑️ Matplotlib meeting agenda -**Call co-ordinates: 15:00 Eastern US time (UTC -04:00)** -[Google Hangouts](https://hangouts.google.com/hangouts/_/calendar/NzloazhqaHZsa3M4am44ZHM0cmkxZTZxNGdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ.bb6q6do0fci19u582r7mjv6o2o?authuser=0) (link) - ----------- -# 16 Apr 2018 - -@Eric F, @Ryan M, @Thomas C, @hannah a, @Antony L - -- Documentation Summit: Who wants to come? (And where are you located?) -- PRs: - - https://github.com/matplotlib/matplotlib/pull/11048 - - https://github.com/matplotlib/matplotlib/pull/11027 - - https://github.com/matplotlib/matplotlib/pull/11055 -## Notes -- imshow Python refactor: - - agg interpolation -- 11027 - @Thomas C - - Add one more dial to automatic spacing based on font size - - assuming x axis tick labels are wider than y axis - more ticks on y than x - - wants algorithm to factor in when x is smaller - dynamic guessing of xtick size - - adding unnecessary? complexity - - @Ryan M - subclass locator, make it first class citizen in library - - @Antony L monkey patch axis api: - - add public API to replace methods - - tell user to subclass locator - have subclassing API - - set default axes for axis - - @Eric F generalize API to accomplish same by making two new parameters: - - x tick label size/ y tick label size - access to these properties - - trying to estimate how large tick will be in axis dimension (based on character width and height, not fontsize) - - Public API change to locator: - - control multiples of x and y tick label size - - heuristic is combining stuff from axis to locator - - deprecate get_tick_space, replace with private method that - - gets length of tick in points - - fontsize in points - - locator can get axis object for axis names (x or y) - - need easy way to subclass locators instead of having to subclass axis -- 11048 - @Thomas C - - move bar grouping out of hist into its own thing so that it can be a shared private function - - add a plt.multibar/groupedbar to support multiple bars that can call bar underneath the hood - - can prune some of the features of bar: no bottom, no alignment, - - grouping - by variable (y) or by x(category) - - API design with no implementation first + how it’d be used by refactored hist - - follow plot and pandas semantics with respect to broadcasting x to y: each column is a dataseries/variable - - replace some of histograms logic with a call to multibar - - @Eric F create a hierarchy of how the plots build on top of each other - - bar charts x tick labels should probably be fixedlocator/fixedformatter by default -- 11055 - - @Antony L easy to restore, unclear what it does, doesn’t think it works - - @Ryan M conda-forge testing branch makes setup_cfg use the local freetype - - use case: conda looks up listed packages, so you can run only the tests and install the test data, can check all the files that were installed and say “that’s my package” which is a test only package that only contains test results - - newer versions of conda build can generate multiple packages out of one recipe - - pitch it back to conda unless they ask about it? -- +Documentation summit - - Late Summer/Early Fall - 2-3 days - - Manning people want long form narrative explaining step by step - - thoughts - - @Eric F - summer is better than fall (mid august) - - @Antony L - intermediate level docs (step function in documentation) - - does this already exist? - - defining what is intermediate? - @Antony L what is Python? what is matplotlib? - - https://mail.python.org/pipermail/matplotlib-devel/2018-March/001033.html - diff --git a/meeting_notes/2018/2018_04_23.md b/meeting_notes/2018/2018_04_23.md deleted file mode 100644 index 8e105c4..0000000 --- a/meeting_notes/2018/2018_04_23.md +++ /dev/null @@ -1,67 +0,0 @@ -# 23 Apr 2018 - -@efiring @jklymak, @story645, @dopplershift - -## Agenda: -- bbox issues: @jklymak: - `ax.get_tightbbox()` now includes legends as of #9164 (and #10682 proposes making it that way for *all* artists). But that is sometimes bad if the user has stuck the legend far from the axes (i.e. #11041). @ImportanceOfBeingEearnest brought up the idea of having a flag attached to an artist that says whether it should be part of get_tightbbox, so users can turn it on/off on an as-needed basis. - - https://github.com/matplotlib/matplotlib/issues/9130, https://github.com/matplotlib/matplotlib/pull/9164, https://github.com/matplotlib/matplotlib/pull/10682, https://github.com/matplotlib/matplotlib/issues/11041 -- inset_axes API: - - https://github.com/matplotlib/matplotlib/pull/11026 -- event tracking data in google analytics w/docs - - https://developers.google.com/analytics/devguides/collection/analyticsjs/events -## Notes: - -### bbox issues: - -- previously: constraint/tight layout didn’t include legends - - figure legends not in tight bbox? - - included when fig bbox=tight - - not included in axes bbox - - used in tight and constraint layout - - artist property set to true by default, could be set to false by default -- should all artists be part of tight box? do we need method of exclusion? - - @Eric F flag is low barrier, but is there enough use case? - - current: legend based on bbox_to_anchor argument against existing axes - - proposed exclusion methods: - - method on artist: legend.exclude for bbox - - kwarg to `constraint_layout`? - - alternatives for legends: - - attach legend to its own axes and use that bbox - - @use fig.legend + bbox transform -- @Jody K To Do: add exclusion flag -- @Eric F move automatic gathering of handles, labels into axes methods - - do axes composition: axes.get_legend_entries in fig.axes - - feed sum(handles, labels) into fig.legend() - -### inset_axis - -- child axes - - @Eric F want to preserve hierarchy/ composition - - @Jody K needed for tight_layout/constrained_layout - - tension w/ preserving axesgrid api: - - axesgrid is poorly documented - - multiple apis for add_inset: - - manual, specify the box for the inset axis - - loc based but needs height+width - - padding? - - handled w/ uniform shrink (like colorbar) - - pad in terms of physical units? @Jody K?? - - @Eric F : Start with simple api - - specify rectangle and transform - - @Jody K add_inset_rect + pad - - specify pad in physical units - -### API inconsistencies - - - @Eric F: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) - - keep track of inconsistencies? - - shift to a more uniform standard? - - how to tabulate? - - new github repo for program management? https://github.com/matplotlib/ProjectManagement - - add issues for api inconsistencies - -### 3.0 plan - -- aim is for SciPy: release 3.0 -- point of 3.0 is mostly to get devs using Python 3.0 only version diff --git a/meeting_notes/2018/2018_04_30.md b/meeting_notes/2018/2018_04_30.md deleted file mode 100644 index 214ce2e..0000000 --- a/meeting_notes/2018/2018_04_30.md +++ /dev/null @@ -1,45 +0,0 @@ -# 30 Apr 2018 - -@Eric F @Jody K @Thomas C @paul h @hannah a - -## Agenda: -- py3 transition: - - [#11142](https://github.com/matplotlib/matplotlib/issues/11142) is this too aggressive? makes for issues with PRs being able to be back ported to 2.2.3 - if we yank out all future imports etc how do we write PRs that can be ported to 2.2.x? -- Update: bbox issues: @jklymak: - - [#10682](https://github.com/matplotlib/matplotlib/pull/10682) updated to have `inbbox=True/False` parameter. - -## Notes: - -PY3 transition. - -- @Thomas C wants to stand by the backport criteria (critical bugs and regressions), other backports need a champion. -- 2.2.2 doc branch should only get changes to the .rst file, won’t see changes .py because of how docs are built - -UpdateL bbox issues - -- `artist.inbbox` flag - property on artist: - - when tight_layout does calculation, ignores everything set to False - - pro: explicit listing of elements in bbox - - con: @Eric F unintended consequences like possible performance issues? - - does everything need to be explicitly white/blacklisted? - - goal for constraint layout to maybe be default? - - GUIs need to be resized and so on the fly layout - - @paul h suggests doing some benchmarks to see if performance is an issue - - @Thomas C what else could we use this flag for? semantic content of “I want this artist included in the bbox” - tight layout, constrained layout - - sticky edge - when you change autoscaling to non-tight, but some artists need tight like imshow: - - draw circle on image, will recognize that image wants tight - - if circle>image, adds pad - - clip paths - draw a line from [-10, 10], set limits to [-5, 5] , only see data in -5, 5 range, if you turn off then will show [-10,10] line - - clip on - yes/no clip flag - - clib path - arbitrary path to clip to - - clib box -if path rectangle, has some optimized code to make box - - if child not clipped, will include as part of axes bbox - - could check if clip box==axes box - - axes bounding box = union of all clip objects, and objects outside that box get added in -- maintain get_tightbox signature by removing: -- get_tightbox should stay on artists and do intersection in print, thereby deprecating extra artist - - - - - diff --git a/meeting_notes/2018/2018_04_apr.md b/meeting_notes/2018/2018_04_apr.md new file mode 100644 index 0000000..b0219bd --- /dev/null +++ b/meeting_notes/2018/2018_04_apr.md @@ -0,0 +1,335 @@ +# Matplotlib Weekly Meeting: April 2018 + +###### tags: `2018 dev call` + +--- + +# April 2, 2018 + +[ ] Clarify MEP process +[ ] Tick refactor: + - (Timhoffm, but he has no email address to invite.) + - https://github.com/matplotlib/matplotlib/issues/5665#issuecomment-377269387 + +## Notes + +### MEP about MEP? ** @Thomas C will do book keeping tasks** + +- When to write a MEP? + - proposing controversial features, + - backward incompatible features + - big new features/ major features + - add to top of : https://matplotlib.org/devel/MEP/index.html + - in readme.txt add link to MEP page + - https://github.com/matplotlib/matplotlib/tree/master/doc/devel +- possibly update index with abstract info from MEP +- Style guide for MEPs + - https://matplotlib.org/devel/MEP/template.html +- Where to discuss MEPS? + - PR + DEV mailing list? + - numpy just had this discussion- ended up split between PR and mailing list + - cross link wiki MEPs to PR MEPS, declare which is canonical version + - PR to doc/devel/mep +- When proposing a MEP: + 1. do a small PR that adds your MEP to the master list (in https://matplotlib.org/devdocs/devel/MEP/index.html), + 2. have another PR with the actual discussion. Helps avoiding conflicting numbers. + +**Need text/followup from** @Thomas C **on** + +[x] summer student +[x] documentation summit + + +### Tick Refactor ** @Tim H ** + +- target 3.1 +- MEP? +- concern about how much of the current flexibility do we actually use? +- get buy in from cartopy and astropy/yt/wcsaxes/etc +- 3 phases to roll out (probably 2 year timeline): + - old system as default + new as beta + - new as default + old available + - drop old system +- Figure out how much of the API changes/what public methods need to dropped; + - public api that predates __ convention + - are ticks markers or line collections or something else? + - gridlines are line collections/single broken line + - @Antony L sketch: https://github.com/anntzer/matplotlib/tree/_wip/newaxis + - how does it work with projections? + - straight line in proj space or data space + - rader plots wants straight + - other polar wants curved + - `l.get_path()._interpolation_steps = GRIDLINE_INTERPOLATION_STEPS` L505 in axis.py + - how does it work with labeling? + - correctly computing normals of the edge + - Snapping: + - have to snap ticks and axes border and girdlines + - currently snap to closest pixel + +### TextCollection? instead of list of Texts + +- text rendering may be slow because of rasterization of individual glyphs, but should be profiled +- might be good for completeness/API reasons +- @Ryan M scattertext WIP: https://github.com/matplotlib/matplotlib/pull/4063 + - needs colormapping +- marker, patch and polycollection + - marker codepath/ in draw path: + - if all markers same, draw once and stamp (draw marker path) + - if one marker different, falls back on individual rendering (draw poly path) + +### Ternary graph: + +- https://github.com/matplotlib/matplotlib/pull/6737 + +--- + +# April 9, 2018 + +@Ryan M , @Jody K @Eric F @Thomas C , @hannah a + + +[x] inset_axes and extra_spine_x/extra_spine_y into main library. + [ ] https://github.com/matplotlib/matplotlib/issues/10976 + [ ] https://github.com/matplotlib/matplotlib/issues/11005 +[x] https://github.com/matplotlib/matplotlib/pull/9022 +[ ] https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av2.2.3 ? +[x] Mailing list administration +[x] Git workflow documentation? https://github.com/matplotlib/matplotlib/pull/10997 + + +## Notes + +### Inset_axes/spine tick stuff + +- @Eric F spend time over the weekend reading through how tick code actually works and took notes. +- @Jody K Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) +- @Eric F summary of history of axes_grid and friends +- discussion of what parts of axes_grid we can move up into the ‘mainline’ of the codebase +- @Eric F - refactor and better document code to reduce technical debt? +- @Eric F Cleaning up current ticker might be worth doing before we do whole-sale re-write +- @Eric F suggests that we accept more breakage of edge-case APIs for improved consistency, +- trade off: replacing more complex with simpler 👍 , complex with complex 👎 +- @Thomas C sold on: + - axes_inset as children of parent axes + - more thought on axis children objects + - different x spine/multiple x spines + - facilitates hierarchical locating/labeling + - ticker - container for one formatter/locator + - smarter ticker that can have sequence of : + - spines, locators, formatters + - thing that’s drawn: spine/tickers/formatters + - axis: information about scale, patches, etc. + - scale sets transform, default locator, formatter + - blended scale - apply + - transform(y) to y data, + - transform(x) on x data + - separate transform for projection + - need full transform to do all ticks + +### Where to put developer notes? + + - add tutorial section for developers + - https://github.com/matplotlib/matplotlib/pull/10947 + - Notes in progress? + - @Antony L suggested the wiki + - **Consensus** https://github.com/orgs/matplotlib/teams/developers + +### Perez: + +- possible rewrite pyplot with aim to more consistent input → output, state machine + +### Gitwash/git workflow documentation + +- Find out who has push on it +- using it to standardize workflow across communities +- @Antony L suggesting we just link to central gitwash instead of bothering with templating +- @Tim H https://github.com/matplotlib/matplotlib/pull/10997 + +### Mailing list: + +- @Jody K suggest automatic reply on rejected posts saying you have to join to post to the list + +### Tool manager: + +- https://github.com/matplotlib/matplotlib/pull/9022 +- @Antony L - good idea but ToolBarManager should be moved out of core +- @Thomas C can’t be moved out ‘cause too coupled with GUI backends +- @Jody K why ToolBarManager? + - @Thomas C makes toolbar modular -can just add buttons for things like zoom and lasso + - @Antony L adding buttons using homebuilt widget system → tool bar manager → write full blown QT GUI + - @Antony L wants to know if it will be the full blown default or another axis_grid + - backends: everything except WX (which is in PR) +- goal for 3, default in 3.1 + +--- + +# April 16, 2018 + +@Eric F, @Ryan M, @Thomas C, @hannah a, @Antony L + +- Documentation Summit: Who wants to come? (And where are you located?) +- PRs: + - https://github.com/matplotlib/matplotlib/pull/11048 + - https://github.com/matplotlib/matplotlib/pull/11027 + - https://github.com/matplotlib/matplotlib/pull/11055 +## Notes +- imshow Python refactor: + - agg interpolation +- 11027 - @Thomas C + - Add one more dial to automatic spacing based on font size + - assuming x axis tick labels are wider than y axis - more ticks on y than x + - wants algorithm to factor in when x is smaller - dynamic guessing of xtick size + - adding unnecessary? complexity + - @Ryan M - subclass locator, make it first class citizen in library + - @Antony L monkey patch axis api: + - add public API to replace methods + - tell user to subclass locator - have subclassing API + - set default axes for axis + - @Eric F generalize API to accomplish same by making two new parameters: + - x tick label size/ y tick label size - access to these properties + - trying to estimate how large tick will be in axis dimension (based on character width and height, not fontsize) + - Public API change to locator: + - control multiples of x and y tick label size + - heuristic is combining stuff from axis to locator + - deprecate get_tick_space, replace with private method that + - gets length of tick in points + - fontsize in points + - locator can get axis object for axis names (x or y) + - need easy way to subclass locators instead of having to subclass axis +- 11048 - @Thomas C + - move bar grouping out of hist into its own thing so that it can be a shared private function + - add a plt.multibar/groupedbar to support multiple bars that can call bar underneath the hood + - can prune some of the features of bar: no bottom, no alignment, + - grouping - by variable (y) or by x(category) + - API design with no implementation first + how it’d be used by refactored hist + - follow plot and pandas semantics with respect to broadcasting x to y: each column is a dataseries/variable + - replace some of histograms logic with a call to multibar + - @Eric F create a hierarchy of how the plots build on top of each other + - bar charts x tick labels should probably be fixedlocator/fixedformatter by default +- 11055 + - @Antony L easy to restore, unclear what it does, doesn’t think it works + - @Ryan M conda-forge testing branch makes setup_cfg use the local freetype + - use case: conda looks up listed packages, so you can run only the tests and install the test data, can check all the files that were installed and say “that’s my package” which is a test only package that only contains test results + - newer versions of conda build can generate multiple packages out of one recipe + - pitch it back to conda unless they ask about it? +- [+Documentation summit](https://paper.dropbox.com/doc/Documentation-summit-3HkbTDvrztZbmIm6wsC0B) + - Late Summer/Early Fall - 2-3 days + - Manning people want long form narrative explaining step by step + - thoughts + - @Eric F - summer is better than fall (mid august) + - @Antony L - intermediate level docs (step function in documentation) + - does this already exist? + - defining what is intermediate? - @Antony L what is Python? what is matplotlib? + - https://mail.python.org/pipermail/matplotlib-devel/2018-March/001033.html + +--- + +# April 23, 2018 + +@efiring @jklymak, @story645, @dopplershift + +## Agenda: +- bbox issues: @jklymak: + `ax.get_tightbbox()` now includes legends as of #9164 (and #10682 proposes making it that way for *all* artists). But that is sometimes bad if the user has stuck the legend far from the axes (i.e. #11041). @ImportanceOfBeingEearnest brought up the idea of having a flag attached to an artist that says whether it should be part of get_tightbbox, so users can turn it on/off on an as-needed basis. + - https://github.com/matplotlib/matplotlib/issues/9130, https://github.com/matplotlib/matplotlib/pull/9164, https://github.com/matplotlib/matplotlib/pull/10682, https://github.com/matplotlib/matplotlib/issues/11041 +- inset_axes API: + - https://github.com/matplotlib/matplotlib/pull/11026 +- event tracking data in google analytics w/docs + - https://developers.google.com/analytics/devguides/collection/analyticsjs/events +## Notes: + +### bbox_issues + +- previously: constraint/tight layout didn’t include legends + - figure legends not in tight bbox? + - included when fig bbox=tight + - not included in axes bbox + - used in tight and constraint layout + - artist property set to true by default, could be set to false by default +- should all artists be part of tight box? do we need method of exclusion? + - @Eric F flag is low barrier, but is there enough use case? + - current: legend based on bbox_to_anchor argument against existing axes + - proposed exclusion methods: + - method on artist: legend.exclude for bbox + - kwarg to `constraint_layout`? + - alternatives for legends: + - attach legend to its own axes and use that bbox + - @use fig.legend + bbox transform +- @Jody K To Do: add exclusion flag +- @Eric F move automatic gathering of handles, labels into axes methods + - do axes composition: axes.get_legend_entries in fig.axes + - feed sum(handles, labels) into fig.legend() + +### inset_axis + +- child axes + - @Eric F want to preserve hierarchy/ composition + - @Jody K needed for tight_layout/constrained_layout + - tension w/ preserving axesgrid api: + - axesgrid is poorly documented + - multiple apis for add_inset: + - manual, specify the box for the inset axis + - loc based but needs height+width + - padding? + - handled w/ uniform shrink (like colorbar) + - pad in terms of physical units? @Jody K?? + - @Eric F : Start with simple api + - specify rectangle and transform + - @Jody K add_inset_rect + pad + - specify pad in physical units + +### API inconsistencies + + - @Eric F: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) + - keep track of inconsistencies? + - shift to a more uniform standard? + - how to tabulate? + - new github repo for program management? https://github.com/matplotlib/ProjectManagement + - add issues for api inconsistencies + +### 3.0 plan + +- aim is for SciPy: release 3.0 +- point of 3.0 is mostly to get devs using Python 3.0 only version + +--- + +# April 30, 2018 + +@Eric F @Jody K @Thomas C @paul h @hannah a + +## Agenda: +- py3 transition: + - [#11142](https://github.com/matplotlib/matplotlib/issues/11142) is this too aggressive? makes for issues with PRs being able to be back ported to 2.2.3 - if we yank out all future imports etc how do we write PRs that can be ported to 2.2.x? +- Update: bbox issues: @jklymak: + - [#10682](https://github.com/matplotlib/matplotlib/pull/10682) updated to have `inbbox=True/False` parameter. +## Notes: + +PY3 transition. + +- @Thomas C wants to stand by the backport criteria (critical bugs and regressions), other backports need a champion. +- 2.2.2 doc branch should only get changes to the .rst file, won’t see changes .py because of how docs are built + +UpdateL bbox issues + +- `artist.inbbox` flag - property on artist: + - when tight_layout does calculation, ignores everything set to False + - pro: explicit listing of elements in bbox + - con: @Eric F unintended consequences like possible performance issues? + - does everything need to be explicitly white/blacklisted? + - goal for constraint layout to maybe be default? + - GUIs need to be resized and so on the fly layout + - @paul h suggests doing some benchmarks to see if performance is an issue + - @Thomas C what else could we use this flag for? semantic content of “I want this artist included in the bbox” - tight layout, constrained layout + - sticky edge - when you change autoscaling to non-tight, but some artists need tight like imshow: + - draw circle on image, will recognize that image wants tight + - if circle>image, adds pad + - clip paths - draw a line from [-10, 10], set limits to [-5, 5] , only see data in -5, 5 range, if you turn off then will show [-10,10] line + - clip on - yes/no clip flag + - clib path - arbitrary path to clip to + - clib box -if path rectangle, has some optimized code to make box + - if child not clipped, will include as part of axes bbox + - could check if clip box==axes box + - axes bounding box = union of all clip objects, and objects outside that box get added in +- maintain get_tightbox signature by removing: +- get_tightbox should stay on artists and do intersection in print, thereby deprecating extra artist diff --git a/meeting_notes/2018/2018_05_07.md b/meeting_notes/2018/2018_05_07.md deleted file mode 100644 index c0cb67d..0000000 --- a/meeting_notes/2018/2018_05_07.md +++ /dev/null @@ -1,49 +0,0 @@ -# 07 May 2018 - -@Jody K @Eric F @hannah a @Thomas C - -## Agenda -- get legend entries for scatter: - - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) -- To review: [#](https://github.com/matplotlib/matplotlib/issues/11079)[~~11079~~](https://github.com/matplotlib/matplotlib/issues/11079) [#11060](https://github.com/matplotlib/matplotlib/issues/11060) -- ~~Needs squash and merge:~~ [~~https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754~~](https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754) -- unit property of axis: - - https://github.com/matplotlib/matplotlib/issues/11095 - - https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/testing/jpl_units/StrConverter.py -- mplot3d status and long term plans? GL and cairo? -- `__repr__` vs `__str__` ? - - https://github.com/matplotlib/matplotlib/pull/11173 -- image scaling: (attn @tacaswell) - - https://github.com/matplotlib/matplotlib/pull/11047 -- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? - - -## Notes - -### Repr vs. Str for Transforms - -- str same as repr is fine? Best practice? `__repr__` shorter…. - -### Unit property of Axis****:** attn ****@Ryan M **** - -- go back to using different attribute to store mapping -- create attribute on unit that stores ordering string - unit.unit = -- fix overwriting the unit object by passing in the unit **kwarg -- general sense - - units are offsets + scaling factors or (days, minutes, etc. ) - unify inches and feets - - data stylesheets - mapping data to floats (dates, times, strings) - - user sets -- two types of units: - - kwarg unit - was stored in ax.unit, now clobbered my datatype unit - - datatype - _unit -- should axis support floats even when locked? - - @Jody K let the convertor decide -- internal data abstraction @tacaswell - - data objects attached to artist… - - adaptive re-sampling - - units handling on fly… stores units. - -### OpenGL - -- graphics cards transform stack -- draw stack hard to plug that in w/o moving whole stack down diff --git a/meeting_notes/2018/2018_05_14.md b/meeting_notes/2018/2018_05_14.md deleted file mode 100644 index 07960df..0000000 --- a/meeting_notes/2018/2018_05_14.md +++ /dev/null @@ -1,49 +0,0 @@ -# 07 May 2018 - -@Jody K @Eric F @hannah a @Thomas C - -## Agenda -- get legend entries for scatter: - - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) -- To review: [#](https://github.com/matplotlib/matplotlib/issues/11079)[~~11079~~](https://github.com/matplotlib/matplotlib/issues/11079) [#11060](https://github.com/matplotlib/matplotlib/issues/11060) -- ~~Needs squash and merge:~~ [~~https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754~~](https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754) -- unit property of axis: - - https://github.com/matplotlib/matplotlib/issues/11095 - - https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/testing/jpl_units/StrConverter.py -- mplot3d status and long term plans? GL and cairo? -- `__repr__` vs `__str__` ? - - https://github.com/matplotlib/matplotlib/pull/11173 -- image scaling: (attn @tacaswell) - - https://github.com/matplotlib/matplotlib/pull/11047 -- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? - - -## Notes - -### Repr vs. Str for Transforms - -- str same as repr is fine? Best practice? `__repr__` shorter…. - -### Unit property of Axis:attn @Ryan M - -- go back to using different attribute to store mapping -- create attribute on unit that stores ordering string - unit.unit = -- fix overwriting the unit object by passing in the unit `**kwarg` -- general sense - - units are offsets + scaling factors or (days, minutes, etc. ) - unify inches and feets - - data stylesheets - mapping data to floats (dates, times, strings) - - user sets -- two types of units: - - kwarg unit - was stored in ax.unit, now clobbered my datatype unit - - datatype - `_unit` -- should axis support floats even when locked? - - @Jody K let the convertor decide -- internal data abstraction @tacaswell - - data objects attached to artist… - - adaptive re-sampling - - units handling on fly… stores units. - -### OpenGL - -- graphics cards transform stack -- draw stack hard to plug that in w/o moving whole stack down diff --git a/meeting_notes/2018/2018_05_may.md b/meeting_notes/2018/2018_05_may.md new file mode 100644 index 0000000..59f1903 --- /dev/null +++ b/meeting_notes/2018/2018_05_may.md @@ -0,0 +1,153 @@ +# Matplotlib Weekly Meeting: May 2018 + +###### tags: `2018 dev call` + +--- + +# May 7, 2018 + +@Jody K @Eric F @hannah a @Thomas C + +## Agenda + +- get legend entries for scatter: + - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) +- To review: [#](https://github.com/matplotlib/matplotlib/issues/11079)[~~11079~~](https://github.com/matplotlib/matplotlib/issues/11079) [#11060](https://github.com/matplotlib/matplotlib/issues/11060) +- ~~Needs squash and merge:~~ [~~https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754~~](https://github.com/matplotlib/matplotlib/pull/9078#issuecomment-385299754) +- unit property of axis: + - https://github.com/matplotlib/matplotlib/issues/11095 + - https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/testing/jpl_units/StrConverter.py +- mplot3d status and long term plans? GL and cairo? +- `__repr__` vs `__str__` ? + - https://github.com/matplotlib/matplotlib/pull/11173 +- image scaling: (attn @tacaswell) + - https://github.com/matplotlib/matplotlib/pull/11047 +- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? + + +## Notes + +### Repr vs. Str for Transforms + +- str same as repr is fine? Best practice? `__repr__` shorter…. + +### Unit property of Axis: ** attn @Ryan M ** + +- go back to using different attribute to store mapping +- create attribute on unit that stores ordering string - unit.unit = +- fix overwriting the unit object by passing in the unit **kwarg +- general sense + - units are offsets + scaling factors or (days, minutes, etc. ) - unify inches and feets + - data stylesheets - mapping data to floats (dates, times, strings) + - user sets +- two types of units: + - kwarg unit - was stored in ax.unit, now clobbered my datatype unit + - datatype - _unit +- should axis support floats even when locked? + - @Jody K let the convertor decide +- internal data abstraction @tacaswell + - data objects attached to artist… + - adaptive re-sampling + - units handling on fly… stores units. + +### OpenGL + +- graphics cards transform stack +- draw stack hard to plug that in w/o moving whole stack down + +--- + +# May 14, 2018 + +@Jody K @Eric F @Antony L @Thomas C @hannah a + +## Agenda +- 2.2.3? https://github.com/matplotlib/matplotlib/milestone/34 + - 3 outstanding PRs 1/2 approved. A few issues. +- image scaling: (attn @tacaswell) + - https://github.com/matplotlib/matplotlib/pull/11047 +- Should the docs pick up a `scipy` dependency for examples (to replace mlab) [[#11180](https://github.com/matplotlib/matplotlib/pull/11180)] ? +- get legend entries for scatter: + - [#11127](https://github.com/matplotlib/matplotlib/pull/11127#discussion_r185030970) is there any clever way to extend this (up or down? i.e. should each artist have a label/artist creator, or should axes have special legend creators for different artist types?) +- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… + - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), +- `ax.inset_axes` still needs review: https://github.com/matplotlib/matplotlib/pull/11026 + +## Notes + +### 2.2.3 outstanding PRs + +- 11062 - merged on rebase, all in new constrained layout +- 2.2.3 after jquery fix (11199) +- change in build strategy for 2.2.3 and long term to fix jquery + - in sdist, but not repo; download at download time? Download sdist, not tarball + - from pypi will be OK not GitHub for a single tar file + - follow jupyter’s methodology + - @Antony L in next month or so? + +### Scipy dependency + +- use for examples? + - Yes, but not in main codebase… Travis tests always w/o scipy +- scipy readily available; annotate examples to make it clear its needed… +- pandas? + - what about their plotting? seaborn + - add to examples to showoff pandas integration + +### Legend entry on PathCollection + + - good idea, parallels version on contours + - concern that PathCollection used for other things + - maybe add a ScatterAritist which is a subsclass of PathCollecion which adds this method (+ would help @Antony L with mpl cursor) + - https://github.com/networkx/grave/blob/master/grave/grave.py#L221 + +--- + +# May 20, 2018 + + + +--- + +# May 27, 2018 + +## Agenda +- ~~#6254 https://github.com/matplotlib/matplotlib/pull/6254 quick review~~ +- traitletts? What is the path forward here? + - previous attempts tried to do all in one PR - seems impossible w/o freezing the rest of development. Need a better strategy (or scrap idea?) +- switch meetings to a hangout hosted by matplotlib@numfocus.org? + +## Notes + +### Traitlets + + - `_traitlets/` submodule (?) + - monkey patch into new modules as they are built out. + - tried last summer, but didn’t get done… + - month of full-time effort senior developer… + - hard for nights and weekend… + - could have a grant proposal + - Sloan? Moore, NSF Infastructure (Thomas can’t be on NSF grant) + - Projects that look good - major change versus under the hood + - Numfocus? + - institutional partner? BIDS? + - talk to Fernando Perez + - Summer student? + - core library so maybe dangerous + - Difficult to make sure consistency across classes + - stakeholders + - lots of cleanup along the way + - Half-time buyout for senior developer? + - google stats, hits on documentation… +- ToDo: + - start iterating through drafts of whitepapers/proposal drafts + - https://vorpus.org/blog/the-unreasonable-effectiveness-of-investment-in-open-source-infrastructure/ + - https://vorpus.org/blog/a-farewell-to-the-berkeley-institute-for-data-science/ + - https://github.com/tacaswell/mpl_grant (currently invite only) + - Look at governance rules - assign owner to contentious PRs + +### 3.0 timing: + + - cut 3.0 in time for SciPy + - approx. June 23 RC1 tagged + - 3.0 July 8 final before SciPy diff --git a/meeting_notes/2018/2018_06_jun.md b/meeting_notes/2018/2018_06_jun.md new file mode 100644 index 0000000..30ac341 --- /dev/null +++ b/meeting_notes/2018/2018_06_jun.md @@ -0,0 +1,127 @@ +# Matplotlib Weekly Meeting: June 2018 + +###### tags: `2018 dev call` + +--- + +# June 4, 2018 + +- Scatter legend handler + - https://github.com/matplotlib/matplotlib/pull/11127 +- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… + - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), +- @Jody K Methods to organize plotting hierarchy: #11026, #11010, #11234 + - Note new project aimed at axes_grid1 harmonization: https://github.com/matplotlib/matplotlib/projects/9 + - do we want this? Not attracting reviews… +- @Tim H naming issues? In particular the set_*lim parameter names #11293 +- @Tim H naming conventions re methods: maybe inset_axes_rect #11026. + +## Notes + +**Naming issues re xmin/xmax/limits** + +- currently can use min/max or directional + - https://github.com/matplotlib/matplotlib/pull/11293#issuecomment-391438870 +- don’t have two parameters with different names doing the same thing, but may not be a good idea to discard existing + - min/max is consistent with r/theta + - directional may be more strictly correct/accurate + - replace name and use start/stop for everything +- @Eric F xlim/xmin/xmax are horrible: + - xmin/xmax subset of xlim + - min & max isn’t clear - positional or numerical - + - for cartesian axis left & right are correct and unambiguous +- @Eric F bbox methods confusing but use left, right, bottom, top + - rlim directional would be inner/outer + - theta lim - maybe use stop/start instead (would be consistent with normal range) + - radial has clockwise and counterclockwise - figure out default direction? +- ToDo: + - look at situation with polar plots + - look at transforms see if change needed for API consistency + - check with @Thomas C for thoughts + - formal deprecation or informal deprecation in documentation (new standards) + - do a long term change in docs and warn people heavily - slow dep roll out + +**Naming issues re methods** + +- https://github.com/matplotlib/matplotlib/pull/11026#issuecomment-392315969 +- use verbs that explain what the method is doing: + - `make_inset_axes_rec` +- Alternative: `inset_axes_from_rect` (makes it clear that it’s not only returning a value because it’s creating “from the rect”. + +--- + +# June 11, 2018 + +## Agenda +- https://github.com/matplotlib/matplotlib/issues/11416: datalim/sharex/y issue. +- Scatter legend handler + - https://github.com/matplotlib/matplotlib/pull/11127 +- DPI issues for hi-dpi and `fig.set_dpi` and `fig.dpi` inconsistencies… + - [#11227](https://github.com/matplotlib/matplotlib/issues/11227), [#11232](https://github.com/matplotlib/matplotlib/pull/11232), +- rename cm.py→colormaps.py https://github.com/matplotlib/matplotlib/pull/11413 + +## Notes + +@efiring, @jklymak + +- colormap/cm issue + - old issue… + - probably a good first step. larger scale organization maybe for later… +- #11412: https://github.com/matplotlib/matplotlib/pull/11412 + - consisntency `contour` and `contourf` + - keep same number of levels even if no data when user specifies a level. + - colors match up between fill and edge + - levels and layers: color-mapping to layers. levels and layers same for line contour… +- datalim/ apply aspect, sharex etc + - apply_aspect can have impossible solns + - works at draw time, and then tries to send info to shared axes…. + - has possible constrained_layout implications… + - race conditions possible. + - sharing across figures. + - resize figure, aspect ratio changes + - datalim option to aspect is very tricky, especially when sharing… + - add twinning: + - Limitations that are a problem… + - question whether to special case some? + - Todo write tutorial: @jklymak + - show simple API + - show ways to get basic things done. +- ENH add an inset_axes to the axes class #11026 + +--- + +# June 18, 2018 + +## Agenda +- PR https://github.com/matplotlib/matplotlib/pull/11127 still needs second review +- PR https://github.com/matplotlib/matplotlib/pull/10682 : + - `ax.get_tightbbox` includes *all* axes artists by default + - new `artist.set_in_layout` meallow artists to opt out of layout + - big PR, but mostly because piecemeal implementation has been refactored to one place. (ie. `savefig(``'``name.png``'``, bbox_inches=``'``tight``'``)` uses the same algorithm as `get_tightbbox` now, whereas before they did not +- PR: https://github.com/matplotlib/matplotlib/pull/11438 + - one-liner plus some docs; provides: `gs = ax.get_gridspec()` + +## Notes + +- https://github.com/matplotlib/matplotlib/pull/11293 + - naming xmin/xmax, left/right, upper/lower etc. + - merged +- https://github.com/matplotlib/matplotlib/pull/11026 + - “lbwh” versus ambiguous “rect” + - move in dir of more consistency naming + - better name for `zoom_inset_indicator` + - highlight_zoom_region + - outline_zoon_region + - add_inset_locator + - `add_zoom_inset_indicator`? + - +- TODO: review https://github.com/matplotlib/matplotlib/pull/11127 determine if it needs https://github.com/matplotlib/matplotlib/pull/11127 a subclass scatter artist. + - @Thomas C will review this week. +- https://github.com/matplotlib/matplotlib/pull/10682: + - TODO review before 3.0 + +--- + +# June 25, 2018 + +## Agenda diff --git a/meeting_notes/2018/2018_07_jul.md b/meeting_notes/2018/2018_07_jul.md new file mode 100644 index 0000000..4fb6b18 --- /dev/null +++ b/meeting_notes/2018/2018_07_jul.md @@ -0,0 +1,109 @@ +# Matplotlib Weekly Meeting: July 2018 + +###### tags: `2018 dev call` + +--- + +# July 2, 2018 + +## Agenda + +## Notes +- revive matplotlib dev mailing list +- naming conventions +- new major feature; how to make a namespace package + - easier for 3.0 +- relaxing object-orientation… + - make plotting functions that take an axes rather than axes methods + - current way barrier to other projects who want to add their own plot functionality + - how to pass `ax` argument to such functions + surface.pcolor(ax, x, y, z) + surface.pcolor(x, y, z, ax=ax) + - decorators to supply pyplot-like interface? context manager? i.e. + - `with ax as plt.gca():` + +--- + +# July 9, 2018 + +## Notes + +--- + +# July 16, 2018 + +## Agenda + +- Eight 3.0 PRs: https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.0 + - ~~https://github.com/matplotlib/matplotlib/pull/11672 : Trivial please merge~~ + - https://github.com/matplotlib/matplotlib/pull/11637 : API changes (release work) + - https://github.com/matplotlib/matplotlib/pull/11600 : backend switching: @Tim H has some concerns, but we should probably bite bullet and merge (2 approvals) + - https://github.com/matplotlib/matplotlib/pull/11234 : `fig.add_artist` Needs second review; ready to merge + - ~~https://github.com/matplotlib/matplotlib/pull/10886 : Not sure what this is, and why its needed~~ @Antony L remilestoned by AL + - https://github.com/matplotlib/matplotlib/pull/11026 : `ax.inset_axes` bringing functionality over from `axes_grid`. One approval + - https://github.com/matplotlib/matplotlib/pull/10691 : needs second review. Makes shared axes ticks follow each other. Requesting from @Eric F + - https://github.com/matplotlib/matplotlib/pull/10513#pullrequestreview-137499525 : file encoding changes @Antony L . Needs second approval + - https://github.com/matplotlib/matplotlib/pull/9084 : py3 @Antony L dealing with `_proxy`. + - https://github.com/matplotlib/matplotlib/pull/8951 : qt changes to mix blit and redraw @Antony L +- pandas datetime integration revisit + - See https://github.com/matplotlib/matplotlib/pull/11664 and associated issues + - #11664 proposes *not* registering the pandas date converters and running tests on our own date converters instead. Per discussion with pandas folks https://github.com/matplotlib/matplotlib/issues/10533 and https://github.com/matplotlib/matplotlib/pull/10638, they want to *not* automatically register their converters on `import pandas`, so we were moving towards making matplotlib converters work without needing their converters. Given that it makes sense to not register their converters, and leave testing of their converters to pandas. + +## Notes + +- SciPy debrief @Thomas C : + - Governance + - steering council Matplotlib + - different than technical leadership + - grants, 10000-foot view project + - Code of conduct issues + - commit bit decisions + - cap on numbers i.e. five people + - non-commit bit people on council (i.e. downstream consumers) + - Finance committee w/ numfocus + - new membership + - meet regularly + - Sprints + - documentation overlap + - canonical links in old docs. More direction to top levels. + - scrape archive for matplotlib + - sort out matplotlib in them: arAxiv 13% in last month ~2000 papers; grant draft. Grant numbers? + - Refactors + - maybe in affiliated packages + - structured data `xarray` and `dataframes` + - numpy `dtypes` discussion: co-ordinated w/ numpy + - `axes` and `pyplot` possibly legacy + - data “class” + - better return types for children + - more custom artists + - draw tree: high level and low level… + - export to java script, and save to JSON etc… + - traitlets + - notify listeners. + - Link to ipywidgets, + - tuned to ipython + - maybe we need to implement our selves? + - python-based configuration? + - ipython does it: + - No ui can go in front + - *Why? Something like https://github.com/matplotlib/matplotlib/pull/7696 could work. AL.* + - jupyter + - security? Probably not an issue and switches… + - can't programatically roundtrip + - do we want? + - *Is this true? Can’t we just ensure that everything that goes to the rcParams has a correct (roundtripping) repr? AL.* +- 2.2.3 this week + - qt release breaks shims + - no RC + +--- + +# July 23, 2018 + +Various PRs were discussed in preparation for 3.0. Progress was made closing a few. + +--- + +# July 30, 2018 + + diff --git a/meeting_notes/2018/2018_08_aug.md b/meeting_notes/2018/2018_08_aug.md new file mode 100644 index 0000000..8da3488 --- /dev/null +++ b/meeting_notes/2018/2018_08_aug.md @@ -0,0 +1,68 @@ +# Matplotlib Weekly Meeting: August 2018 + +###### tags: `2018 dev call` + +--- + +# August 19, 2018 + +@efiring, @tacaswell, @dopplershift, @anntzer, @jklymak + +## Agenda + +[x] How do we get 3.0 out the door? What to do about the backend mess? + - https://github.com/matplotlib/matplotlib/pull/11896 +[x] [NF] Add 'truncate' and 'join' methods to colormaps. https://github.com/matplotlib/matplotlib/pull/7716 +[x] PR Download jquery during build. https://github.com/matplotlib/matplotlib/pull/11246 +[x] [**BUG: correct the scaling in the floating-point slop test.**](https://github.com/matplotlib/matplotlib/pull/11591) ****https://github.com/matplotlib/matplotlib/pull/11591 + + +## Notes + +- RC3.0r1 + - Backend issue + - inter-operability, packaging etc issue. Patterns of usage. + - solve packaging issue with forcing packagers to choose a backend. +- jquery + - @tacaswell to finish up… +- 7716 + - make simpler interface and do some of work outside function + - indexing w/ slices and lists + - otherwise too complex. + - direct indexing and floating point referencing. + - difficult because cmaps take floats and integers now. + - Probably best to do as a documentation example of using `ListedColormap` to do what this PR does. @jklymak will write an example if something doesn’t exist. +- Scaling floating point + - 3.1 or 3.0: 3.0 Approved after @efiring fix deprecation messages. + +--- + +# August 27, 2018 + +## Agenda + +[x] PR https://github.com/matplotlib/matplotlib/pull/11934 Suprress “Non GUI Backend Warning” +[x] https://github.com/matplotlib/matplotlib/pull/11896 `rcParams.``**__getitem**``__('backend')` +[ ] +[x] https://github.com/matplotlib/matplotlib/issues/8289 broke hatching on OS/X .eps +[x] PR https://github.com/matplotlib/matplotlib/pull/10088 Deprecate Tick.{gridOn,tick1On,label1On,...} in favor of set_visible +[x] PR https://github.com/matplotlib/matplotlib/pull/11944 - wx:clientDC + +## Notes + +- mpl-altair summer work: https://github.com/matplotlib/mpl-altair + - convert altair chart to mpl fig/ax + - in pre-alpha form + - needs write up for numfocus +- 11934 - merged +- 11896 - waiting for CI to spin + - put initial config of backend capability back, but default to none +- 10948 - needs confirmation by someone with OS/X (@* Paul I?) +- 8289 - punted to 3.1? +- 10088 - + - all public API, would need to be shimmed out in refactor +- 11944 + - needs backport? + - needs verification with WX +- 11936 + - replacement except for thumbnail view (@Antony L just needs the CSS for that) diff --git a/meeting_notes/2018/2018_09_sep.md b/meeting_notes/2018/2018_09_sep.md new file mode 100644 index 0000000..f6962b4 --- /dev/null +++ b/meeting_notes/2018/2018_09_sep.md @@ -0,0 +1,119 @@ +# Matplotlib Weekly Meeting: September 2018 + +###### tags: `2018 dev call` + +--- + +# September 10, 2018 + +## Agenda + +[ ] Backend continues: https://github.com/matplotlib/matplotlib/pull/11962 +[ ] jquery: https://github.com/matplotlib/matplotlib/pull/11246 + [ ] needs caching in place? +[x] https://github.com/matplotlib/matplotlib/pull/12012 Fallback renderer for text (just like we did for legend) +[x] https://github.com/matplotlib/matplotlib/issues/11966 Cartopy was using private method. Fix already in master for cartopy. +[ ] color sequence management and colormaps: + - see https://github.com/matplotlib/matplotlib/pull/12009 New Tableau colormaps. + - what is level for adding new colormap + - how do we go from colormap to color cycles? + - better advertisement of packages that provide more colormaps or add such a repository to the matplotlib tree? i.e `cmocean` +[x] https://github.com/matplotlib/matplotlib/pull/12037 artist.get_aliases API change… +[ ] PR https://github.com/matplotlib/matplotlib/pull/11936 sphinx-exhibit +[x] https://github.com/matplotlib/matplotlib/issues/10948 OS/X backend deprecation warning for event_notify: + [x] https://github.com/matplotlib/matplotlib/pull/12053 merged + + +## Notes + + +- backend issue: needs another review +- jquery + - not actually all that urgent. + - might be moot when `ipympl` gets going and replaced `nbagg`… + - still relevant for webagg +- Renderer issues for get_window_extent + - mixed-mode renderer needs to specify renderer + - just always fallback to figure renderer? + - too much implicitness… + - but artists can’t move between figures. So each artist has a figure… + - force draw after saving… + - all caches onto figure and off individual figures… + - renderer=None → cahced renderer + - instantiate a renderer at figure creation? + - svg, pdf, only created when saving figure… + - they use agg etc + - but if initialized w/ pdf tight_layout etc don’t work?? + - get_window_extent screen space… +- Cartopy GeoAxes + - lost `._subplot_classes` but Cartopy pre-master still uses it. + - @Antony L and @Thomas C looking at it. +- Colormaps, color cycles, palettes, style sheets + - merging colormaps and palettes? Keep separate? + - palette: discrete set of colors + - discrete lines and areas + - flag is really a palette… + - colormap: quasi-continuous → floating point number. + - How often do we update colormaps? + - infinite colormaps? + - colormap packages? + - variations of colormaps… + - better document register_colormap + - in startup script or library init… + - palettable: @todo link: https://jiffyclub.github.io/palettable/ + - make colormaps have info about themselves. + - ie discrete, diverging, etcs + - @todo cookie cutter for data file creation a colormap… + - color cycles + - from discrete colormaps? + +--- + +# September 17, 2018 + +## Agenda + +[ ] tick locators. Why return bracketing values? Why worry about pixel size? https://github.com/matplotlib/matplotlib/pull/12105 https://github.com/matplotlib/matplotlib/pull/11004 +[ ] Date Formatter: https://github.com/matplotlib/matplotlib/pull/10841 Path to acceptance? Pros better. Cons, API change + + +## Notes + +- tick locators: + - old was based on ticks rather than margins + - half pixel to reduce fiddling + - https://github.com/matplotlib/matplotlib/issues/1310 + - https://github.com/matplotlib/matplotlib/pull/1686 + - seem to have conflicting requirements + - on one hand we want to make the locators more separable from axis + - on the other hand we want may need to have access to the scales to work in pixel space so we need + - @Jody K ‘s PR moves the ‘pixel’ level clipping to the Axis object rather than the the locator + - Maybe keep extra ticks but trim in `axis.py` + - Ticks kept and removed… ticks not drawn versus not created confusing + - TODO: look at log locators; check axis API. Check drawing / having extra ticks… +- Date locator: + - TODO: localization + - +- Proposal: + - https://github.com/matplotlib/matplotlib/pull/10928 + - https://github.com/matplotlib/matplotlib/pull/10411/files should maybe be merged / done as part of / after proprocess data (not before). + - @Thomas C is on board with this. + +--- + +# September 24, 2018 + +## Agenda + +[ ] 3.0.x bugs: https://github.com/matplotlib/matplotlib/milestone/37 + +## Notes: + +- because of https://github.com/matplotlib/matplotlib/pull/12213 we should release 3.0.1 pretty soon. And https://github.com/matplotlib/matplotlib/pull/12177 + - [#12173](https://github.com/matplotlib/matplotlib/issues/12173) might not just be windows. + - @efiring indicated that maybe on MacOSX as well + - https://github.com/matplotlib/matplotlib/issues/9485 perhaps also relevant. +- Sphinx issue + - search + - math directive - > mathmpl + - https://github.com/matplotlib/matplotlib/issues/12216 diff --git a/meeting_notes/2018/2018_10_oct.md b/meeting_notes/2018/2018_10_oct.md new file mode 100644 index 0000000..167ad35 --- /dev/null +++ b/meeting_notes/2018/2018_10_oct.md @@ -0,0 +1,127 @@ +# Matplotlib Weekly Meeting: October 2018 + +###### tags: `2018 dev call` + +--- + +# October 1, 2018 + +## Agenda + +[ ] Stale PR mechanism? https://github.com/apps/stale, astropy has hand-built version. Let more people tag? More people close issues? https://github.com/ipython/ipython/pull/11326 +[ ] More get_tightbbox including artists that are not meant to be included. https://github.com/matplotlib/matplotlib/issues/12256 +[ ] https://github.com/matplotlib/matplotlib/pull/9565: How to deprecate the return value from `stem` method? +[ ] https://github.com/matplotlib/matplotlib/issues/12312 + + +## Notes + + +- still need to resolve how to move #9565 forward…. +- https://github.com/matplotlib/matplotlib/issues/12312 + - arbitrary scale needed? + - colorbars need some clean up still +- powernorm issue +- For annotate and ax.legend consider adding `in_layout=` kwarg…. TODO: @jklymak +- PR Stale: + - concerns about politeness + - maybe adds noise + - need to encourage a culture of closing issues. + - Didn’t talk about letting more people close issues. + +--- + +# October 15, 2018 + +## Agenda: + +[ ] Py3.5 in 3.1? +[ ] https://github.com/matplotlib/matplotlib/pull/11711 lazy eval colors +[ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x +[ ] API changes level of detail. Mechanism for enforcing… i.e. numpy is more concise (?) +## Notes +- went through some v3.0.x PRs. Nov 3 weekend first w/e @tacaswell can get to it +- Py 3.5 + - schedule is for dropping for 3.1 + - need a good reason for dropping; + - Bug fix policy…. + - don’t have people to maintain too many bug fix branches + - can backport critical bugs + - Features in python that are worth doing + - kw-only arguments + - kw-argument order: API can be cleaned up (i.e. color, facecolor, do in order they came in). + - Default packages don’t include new versions of matplotlib… + - Solutions for upgrading python are much better than before… + - communication downstream: + - user and devel list (@tacaswell) + +--- + +# October 22, 2018 + +[ ] https://github.com/matplotlib/matplotlib/milestones/v3.0.x +[ ] Test coverage? How fussy do we want to be? +[ ] Admin backlog + [ ] Governance + [ ] Swag logo (numfocus email) + What version of the Matplotlib logo would you want featured on the shop? I was thinking it might be nice to use one that actually says "Matplotlib," but the only file I have like that is very long and narrow and the font is sort of odd. + Do you want us to come up with something on your behalf? Is just the circle logo okay? + [ ] Community outreach + + +## Notes + +- logo? numfocus starting a store for t-shirts stickers etc. + - logo only + - webpage header + - custom design + - forward to user mailing list (attn: @Thomas C ) +- community outreach: + - governance question for steering committee + - managing new contributors/summer students/ etc. +- PR review + - if you make minor change OK to approve… + - multiple reviewers: + - use the reject button to veto PR + - ping that reviewer if two others have approved + - explain why it’s rejected + - close if outright don’t want in + - no reject button: + - check if other comments have handled + - ping reviewers with deadline comments + - merge with two approvals (don’t ping) + - encourage devs/contributors to curate their own PRs + +--- + +# October 29, 2018 + +## Agenda + +[x] Mac Framework (or not): https://github.com/matplotlib/matplotlib/pull/12633 + [ ] pushed to 3.1 +[ ] Matplotlib.use() after `import matplotlib.pyplot`: https://github.com/matplotlib/matplotlib/pull/12608 +[ ] Test coverage? How fussy do we want to be? +[ ] Other 3.0.x https://github.com/matplotlib/matplotlib/milestone/39 +[ ] `_hold` issue… + + +## Notes +- builds: + - windows via volunteer + - mac/linux https://github.com/MacPython/matplotlib-wheels and https://matplotlib.org/devel/release_guide.html#building-binaries +- Mac Framework + - working for pypy is a future feature, so push to 3.1 +- `Matplotlib.use` + - merged. Monitor for possible failure modes? +- squash and merge backports + - why not squash and merge? Users get confused because there is no record that the branch has been merged…. + - squashing helps make sure malicious commits not snuck in. +- #12641 Drop asarray and c[0] (indexing on first element) because breaks units and doesn’t quite work on pandas data frames? +- #12651 +- #12655 - data has bad values/overflow error - + - throw exception on runtime_warning? +- #12620 +- https://github.com/matplotlib/matplotlib/issues/12669 _hold bug that breaks cartopy/basemap + - minimimum fix - make setter or remove property +- #12958 - waiting on @Benjamin R diff --git a/meeting_notes/2018/2018_11_nov.md b/meeting_notes/2018/2018_11_nov.md new file mode 100644 index 0000000..5ef0510 --- /dev/null +++ b/meeting_notes/2018/2018_11_nov.md @@ -0,0 +1,144 @@ +# Matplotlib Weekly Meeting: November 2018 + +###### tags: `2018 dev call` + +--- + +# November 5, 2018 + +## Agenda + +[x] Other 3.0.x https://github.com/matplotlib/matplotlib/milestone/39 +[ ] Github policies and best practices: + [ ] cleaning up old issues w/ no feedback + [ ] user help versus actual issue… +[ ] Doc builds + +## Notes + +### Azure: + +- need to find way of copying permissions over: no group privileges… +- may take over some of the testing from Travis. + +### github policy + +- bot - we think this has gone silent, after n weeks bot will close, reopen on interest +- at least one round of conversation + - invite them to close themselves, “think this is not a bug because X” + - use “needs confirmation” tag + - support: stack overflow, mailing list, gitter +- bug reports are self selecting/small chunk of things people fine + - can assign teasing out the question issues to @hannah a + +### docs deploy cycle + +- auto building of docs not set up +- circle CI config +- or @Elch R can do it manually more often +- docs organization: + - matplotlib.org/rendered docs: https://github.com/matplotlib/matplotlib.github.com + - pipeline: + - website gets published to top level + - matplotlib.org/version gets to version docs + - matplotlib.org/project yields project docs - manually c&p’ed by maintainers +- possibly use submodules to refactor: https://help.github.com/articles/using-submodules-with-pages/ + - top level is current + - submodules for old versions + - submodules for externel projects (their existing repos) + - can use git-filter tree to maintain history + +--- + +# November 12, 2018 + +## Agenda + +[ ] Admin backlog + [ ] Governance + [ ] Swag logo (numfocus email) + What version of the Matplotlib logo would you want featured on the shop? I was thinking it might be nice to use one that actually says "Matplotlib," but the only file I have like that is very long and narrow and the font is sort of odd. + Do you want us to come up with something on your behalf? Is just the circle logo okay? + [ ] Community outreach + +## Notes + +### gitter discussion: wheels error + +- don’t default backend + +### 12473/12458 - cursor formatting + +- hidden colorbar: https://github.com/matplotlib/matplotlib/pull/12473 + - dummy axis version needs mapping out +- improve formatting: https://github.com/matplotlib/matplotlib/pull/12459 + - + 1 on merge here + - check out how boundary norm cursor formatting +- formatter rewrite: https://github.com/matplotlib/matplotlib/pull/5804 + +### 12759: warn on Freetype missing glyphs + +- https://github.com/matplotlib/matplotlib/pull/12759 +- warns people if font doesn’t support glyphs + +### admin backlag + +- swaq logo: @hannah a reply to gina + - https://matplotlib.org/_static/logo2.png + - supposed to go on like hoodies and stuff: https://shop.spreadshirt.com/numfocus/ + - wordmark + circle +- core-dev shirts? + +### community outreach + +- user needs help/community support +- https://github.com/matplotlib/matplotlib/labels/Community%20support +- point person for community outreach? (hacktoberfest, summer students, classes w/ PR requirements, etc) + +### governance: + +- defined roles on the project + - roles + - release manager + - community manager + - point person on sub-systems (over laps with labels) + - liason to third-party packages + - documents responsibility, thing to put on CV +- discussion about moving call (use a doodle?) + - email dev-list about who wants to come to call +- @Thomas C @Eric F @Ryan M need to schedule call for governence meeting/draft +- committee: 5 -7 people + - put out call for who wants to be in on it + - ask for nominations (self nominations allowed) + - anyone w/ commit bit can endorse person + - thomas, eric, ryan make final choice + - not limited to core devs - + - administration, fundraising, how CoC issues handled + - CoC has seperate people + - user community representative + - European committee member + +--- + +# November 19, 2018 + +## Agenda + +[ ] https://github.com/matplotlib/matplotlib/pull/12158 (non-pixel dependent tick trimming) + +## Notes + +### funding proposals: + +- NSF cyber infrastructure +- Sloan, etc +- DOE cyber infrastructure… +- need steering council in place + - who should be there? Eye to thinking about funding sources… +- what is the pitch? + - need five-year changes discussion +- numfocus + - can help with ideas and structuring… + - sustainability workshop + - time consuming, + - proposals can be a bit boiler-platable. diff --git a/meeting_notes/2018/2018_12_dec.md b/meeting_notes/2018/2018_12_dec.md new file mode 100644 index 0000000..3244bd1 --- /dev/null +++ b/meeting_notes/2018/2018_12_dec.md @@ -0,0 +1,226 @@ +# Matplotlib Weekly Meeting: December 2018 + +###### tags: `2018 dev call` + +--- + +# December 3, 2018 + +## Agenda + +[ ] Testing: drop 3.5? https://github.com/matplotlib/matplotlib/pull/12538 + [ ] Do we need Azure and all the Travis runs? +[ ] Performance profiling: https://github.com/matplotlib/matplotlib/pull/12915 Can we have a proper profiling test? Seems maybe some import profiling is happening that tests pathological import cases. +[ ] https://github.com/matplotlib/matplotlib/pull/10841 ping @efiring (New date formatter) + [ ] https://github.com/matplotlib/matplotlib/pull/12909 Format all ticks at once. (Should go in before above?) +[ ] https://github.com/matplotlib/matplotlib/pull/12903 Units math… + + +## Notes + +### testing drop 3.5? + +- numpy 1.11 minimum +- still need mac and pc on Azure before switching + +### profiling - optimizing imports and the like + +- low hanging fruit +- straight python work - maybe good first issue? + +### 12909: formatters formatting all ticks at once + +- creates method for running list comprehension over list of ticks + +### isinstance in formatters? + +- checking for membership in class and not documenting @Eric F +- API change w/ no note change + +### 12903: time has datetime + time delta + +- categories has literals and float delta (for spacing ‘cause of cat→int mapping) +- tries to directly do math on values (like a time delta) because axis supports it + - default to overloaded class methods (like +, -) +- falls back on calling convert on values if [+- not overloaded](https://paper.dropbox.com/doc/not-overloaded-GwKLO91ub6MVrkm1BVKru) + +### WIP fall off dates, policy on closing old PRs + +- needs revision/needs adoption +- label clean ups + +### documentation sprint + +- sort out what to write for grant to hire full time technical writer for a year +- write a 2 page Work Plan for sprint -@hannah by end of January + - what we want to get out of it + - better scoping of matplotlib + - example: concrete data driven examples vs. random numbers + - who wants to come/interested in coming +- numpy small grants- apply +- Boulder as location @Ryan M +- work around academic schedules +- Overhaul and revise documentation +- need to include information about visualization basics (not mpl specific) +- more toy-datasets rather than random data + +**TODO: ALL THE GOVERNANCE THINGS - @Thomas C @Eric F @Ryan M ** + +--- + +# December 10, 2018 + +## Agenda + +[ ] https://github.com/matplotlib/matplotlib/pull/12459 +[ ] https://github.com/matplotlib/matplotlib/pull/12779 +[ ] **admin**: calendar meeting link flaky + +## Notes + +### 12459: imshow cursor + colorbar data + +[ ] https://github.com/matplotlib/matplotlib/pull/12459 + - [+☑️ Matplotlib meeting agenda: 12-Nov-2018](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12-Nov-2018-aAmENlkgepgsMeDZtlsYu#:uid=811503718402000321362157&h2=12-Nov-2018) + +### 12779: add scatterplots to Qt figure options + +- https://github.com/matplotlib/matplotlib/pull/12779 +- replace image with ScalerMappable +- QT options editor library generates menu based on second entry?? (@Antony L ?) + - string - + - int - + - list - combobox, first is first element selected by default other is appened by choices + +### google calendar link inconsistent + +- calendar link works for some people, not others +- end of lining hangouts in 2020, need functional replacement + roll out of new link (cc @Thomas C ) + +### 12538: removing Python 3.5 from tests + +- merged in https://github.com/matplotlib/matplotlib/pull/12538 +- [+☑️ Matplotlib meeting agenda: testing-drop-3.5?](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-testing-drop-3.5-aAmENlkgepgsMeDZtlsYu#:h2=testing-drop-3.5?) + +### 12432: datetime64 in list + +- https://github.com/matplotlib/matplotlib/pull/12432 +- reopened to redo tests + +### 12422: Scatter Color + +- https://github.com/matplotlib/matplotlib/pull/12422 +- support non 1D non masked arrays to support RGB triplets + +### 12945: Weight and style hints from Microsoft Fonts + +- https://github.com/matplotlib/matplotlib/pull/12945 +- mpl was using apple/osx font tables +- refrence: https://github.com/matplotlib/matplotlib/pull/12945#discussion_r240377476 +- checks for bold/italic look of font, parse English version of textual description of font +- needs test + +### 12929: skip gtkbackend if pygtk not installed + +- https://github.com/matplotlib/matplotlib/pull/12929 +- was held on checking that valueerror is raised + +### Milestone 3.03 open PRS + +- backport [+☑️ Matplotlib meeting agenda: 12929:-skip-gtkbackend-if-pygt](https://paper.dropbox.com/doc/Matplotlib-meeting-agenda-12929-skip-gtkbackend-if-pygt-aAmENlkgepgsMeDZtlsYu#:h2=12929:-skip-gtkbackend-if-pygt) +- travis default- sudo:true + - https://github.com/matplotlib/matplotlib/pull/12596 + - close or new PR or getting rid of sudo:true at top of config +- 12678: Properly set tz for YearLocator @Jody K + +--- + +# December 17, 2018 + +## Agenda + +[ ] 12678: Properly set tz for YearLocator @Jody K https://github.com/matplotlib/matplotlib/pull/12678 +[ ] Matplotlib 3.1 release schedule and release manager + - https://mail.python.org/pipermail/matplotlib-devel/2018-October/001125.html + - https://mail.python.org/pipermail/matplotlib-devel/2018-October/001134.html +[ ] Matplotlib 3.0.3 and 2.2.4 release schedule and release manager +## Notes + +### Scheduling Meeting + +- send out doodle poll to dev-list +- pretty pinned to this time due to HI + EU (and business hours EST) + +### 12678: set Tz for YearLocator + +- https://github.com/matplotlib/matplotlib/pull/12678 +- discussion punted + +### 12422 Scatter Color + +https://github.com/matplotlib/matplotlib/pull/12422 + +[matplotlib/matplotlib#12422](https://github.com/matplotlib/matplotlib/pull/12422) + +- masking + colorbars are a little worrying +- merged + +### 10928: preprocess data + +https://github.com/matplotlib/matplotlib/pull/10928 + +[matplotlib/matplotlib#10928](https://github.com/matplotlib/matplotlib/pull/10928) + +- @Thomas C will review ‘soon’ + +### 12980: thicker horizontal lines, thinner vertical line + +https://github.com/matplotlib/matplotlib/issues/12980 + +[matplotlib/matplotlib#12980](https://github.com/matplotlib/matplotlib/issues/12980) + +- apply transform before drawing path & then again after drawing +- needs bigger canvas and maybe secondary canvas +- needs to be backend independentish +- would need set_pen method + +### 3.1 release schedule + +- branch in late January, tag in March +- somebody other than Tom as release manager-email to dev list +- needs issue/pr trimming - 300+ open +- add 3.2 for punting? or use needs sorting milestone? +- bugfix releases? + - also March? + +### 12909: Format all the ticks + +https://github.com/matplotlib/matplotlib/pull/12909 + + +[matplotlib/matplotlib#12909](https://github.com/matplotlib/matplotlib/pull/12909) + +- @Eric F format ticks method takes only values, applies particular formatter + - format ticks for fixed formatter should check for ticks + - overwrite the format all methods for specific formatters + +### Azure Pipelines for testing + +- make 2.6 build using vscode/windows binaries + - ping @Antony L after New Years +- use custom images from Qulogic because all the pngs fail because of free type + - push test image into their own repo & use submodules for test management + - talk to free type about testing stability/summer students + - email freetype and ask about testing stability? + +--- + +# December 24, 2018 + +**No Meeting** + +--- + +# December 31, 2018 + +**No Meeting** diff --git a/meeting_notes/2019/01_07_28.md b/meeting_notes/2019/01_07_28.md deleted file mode 100644 index 76708e2..0000000 --- a/meeting_notes/2019/01_07_28.md +++ /dev/null @@ -1,281 +0,0 @@ -# 28 Jan 2019 -## Agenda -[x] follow up on summer studentsReviews - [x] https://github.com/matplotlib/matplotlib/pull/12678 (fix for timezone handling) - [x] https://github.com/matplotlib/matplotlib/pull/13128 (Parameter renaming) - [x] https://github.com/matplotlib/matplotlib/pull/13069 (default minor ticker change) - [ ] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 -## Notes - -**Timezone handling** - -- https://github.com/matplotlib/matplotlib/pull/12678 -- timezone information wasn’t being passed into YearLocator -- alternative is don’t support timezone/assume GMT -- without passing isdst, will raise exception if time being DST is ambiguous (no timezone passed in) - - user can pass localtime instead of datetime - - `dateutil` might correctly handle this - - this is in yearlocator - -**Parameter renaming decorator** - -- https://github.com/matplotlib/matplotlib/pull/13128 -- just waiting on @Thomas C -- decorator to make functions keyword only? - - later deprecate positional and make them kwarg only - - would require making pyplot wrappers aware of deprecators -- merged - -**Minor tick changer** - -- https://github.com/matplotlib/matplotlib/pull/13 069 -- insist on backcompat api? -- minor ticks not as commonly used, so should in theory have smaller ripple effects -- leave 1 and 10 at 5 ticks, because it yields a middle - -**Verbose logging** - -- requires multiple levels of hierarchies -- need way to turn off mpl level logging w/o turning off other logging - - can’t use global handler (basicconfig) -- handler needs to be publicly accessible -- this is designed for end (mostly novice) user, not library dev - - needs to not cause ripple effects in downstream libraries/apps - -**summer students** - -- @hannah a spoke with geopandas, worried their project is not a full 3 months (but we suspect it is more complicated than they think) -- @Thomas C will send follow up email and include user list. - -**Next release?** - -- release bugfix 3.0.x soon and 3.1 in a month or so - - must already be in master to be considered for 3.1 -- check in on https://github.com/matplotlib/matplotlib/pull/13281 -- @Thomas C will send email with announcement + asking for volunteers to help run release. -- get in https://github.com/matplotlib/matplotlib/pull/13030 (ping @Benjamin R) - -**Units** - -- @Antony L - datetime should be pitched to floats & stay there instead of mixed units -- places where you’d like to pitch stuff to numpy but as array destroys units (for example unwraps pint) -- xref: [+☑️ Matplotlib 2019 meeting agenda: unit-conversion:](https://paper.dropbox.com/doc/Matplotlib-2019-meeting-agenda-unit-conversion-aAmENlkgepgsMeDZtlsYu#:uid=393380968722540654338756&h2=unit-conversion:) - - - - -# 21 Jan 2019 -## Agenda -[x] updates for NF annual report - > Happy new year! We are hard at work producing the 2018 NumFOCUS Annual Report. Last year we invited all of our sponsored projects to include the main highlights of their year, and we'd like to do so again this year. - > - > To keep things manageable with over 2 dozen projects, please reply to me with 2 or 3 bullet points of your 2018 highlights. - > - > For example: - > Received ACM Best Project Of All Time Award - > Celebrated our 1.0 release - > Brought on two new core developers, Jane Doe and John Hancock - > Kindly send me your highlights by the end of this week if at all possible. - > - > Let me know if you have any questions. -[ ] gsoc or JDH student fellowship this summer? - [ ] if gsoc, then what should we do with JDH fellowship this year? -[ ] documentation summit -## Notes - -**Numfocus Annual Report** @Thomas C **wrote it** - -- I officially became lead developer, 3 new core developers (Tim Hoffman, Ernest, Dietmar Schwertberger) -- 200 unique code contributors for year (average ~26 unique contributors per month) -- One major release (3.0), one minor release (2.2), 8 total patch releases -- note about plotting contest & summer fellowship - -**GSOC & JDH** - -- pros: more control + good use of fellowship money -- cons: running ourselves, everyone stretched super thin -- Are there projects? - - keep working on matplotlib altair - - - cons: altair is kinda dead, any mpl developer interest? - - propose there own projects - - infrastructure: - - proper webpage/documentation deployment - - sphinx - - fix doc version selection - version toggle - - google pointing to outdated docs - - which HTMLs are associated to each other, or clean versioning - - python has instructions somewhere for building versioning? - - needs mentor - - put out call to devel mailing list for mentors/projects - - run it through gsoc if mentors are new - - models of good projects: - - astropy, sympy - - clear projects, milestones, fairly self contained - - outside matplotlib + mpl related - - fix viz in geopandas @hannah a would mentor, need run by geopandas - - cartopy - @Ryan M & Elliot have commit bits so stuff could go in - - factor out pandas plotting into its own package - kinda becomes matplotlib toolkit - - @Thomas C maybe, @hannah a maybe - - factor out xarray plotting into its own package/clean up their visualization - - @Thomas C maybe, @hannah a maybe - - seems to be an interest in geospatial / mapping extensions - - list of things basemap can do that cartopy: - - besides labeling lines - - migrating basemap to cartopy - - convert basemap examples to cartopy - - -**Depr****e****cated/closed MEPS** - -- MEP 25 (closed #3424) -- MEP 26 - -**Discussion about webpage** - -- looking into ways to get redirect of main page like python.org (https://docs.python.org/3/library/index.html = https://docs.python.org/library/index.html) -- bandwidth cloudflare - 2 Tb/month (780k unique users) -- each version 250 Mb - doc repo about 10 Gb. - -**documentation summit** - -- @Ryan M can host -- $13k budget + small grant ($3k from numfocus) - - 2 days, 5 - 7 travelers? - - Have to be there: @Ryan M @Eric F @Thomas C - - probably: @hannah a + Dora - - who else? post to mailing list - - budget for flights + hotel + food - - work product is proposal to ask funding agency for technical writer - - scope of work - - milestones - - what the document looks like in the end - (kinda like book proposal??) - - usability issues seem to be more due to docs than code base? - - sort out how to call people in -- possibly combine with steering council meeting (Ryan, Tom, Eric) -- last week of may/ first week of June - - -# 14 Jan 2019 -## Agenda -[ ] Merging policy clarification -[ ] how eager should units conversion be for x+dx (ie bar(x, width))? - - Eager makes our lives easier but doesn’t allow combining units that will add but may have different converters (timedelta, datetime). https://github.com/hgrecco/pint/issues/751 - - Exactly what types are allowed as input? `[], [unit-y objects (i.e. numbers, strings, datetimes)], np.ndarray, np.ma, unit-wrapper(np.ndarray)``, pandas.Series` - - documentation issue, we should specify what inputs are allowed for tuples, and what properties they must satisfy. -[ ] scipy 2019 talk + tutorial - [ ] @Benjamin R is not planning to go to SciPy this year, @hannah a has volunteered to teach intro-to-matplotlib tutorial - [ ] should we put in for the interactive one as well? - [ ] do we want to give a talk? - - -## Notes - -**Merging** - -- need to balance review strictness versus getting things merged… -- test suite not perfect and not complete -- cleanups can miss corner cases -- for core devs, make objections explicit -- more aggressive use of ‘request changes’ (red x) on review when you want: - - changes to the PR - - indicate that you want to close the PR, with timeline - - to have sign off on the PR getting merged -- use comment (no approve/reject) to not sign on as a full reviewer? -- @Antony L proposal for core devs: - - if PR has one positive review & it’s been two weeks, ping devs for review - - if month of no comment, can be merged - - each dev can sponsor one review at a time - - reviewers can say needs more review - - @Jody K needs 100% code coverage -- 2nd reviewer can just scan & merge -## unit - -conversion: - -- **containers**: arrays, lists, dictviews -- **datatype**: int, float, string, bool, datetime -- container specification of supported operators: - - must be singleton/iterable - - unit aware asarray w/o data duplication + dictview support - - something that we can call asarray on + dictviews - - but will do unit support first (numpy strips up units) -- datatype specification of support on operators: - - unit registry/unit specs out how datatype works - - convertible to/from float - - write timedelta convertor? -- data wrapper object vs fixing units in numpy - - FOH: unit work - - BOH: use arrays for things - - only duplicate memory if you’re using units? -- **TODO**: - - document expected unit containers - - test united data -## SciPy -- modified Anatomy of Matplotlib by @hannah a - - needs assistants -## Students -- maybe @Antony L answering questions -- what sorts of projects? stand alone/isolated/doable -- low stakes, standalone, halfway done - - discrete legend - - colorbar refactor - - VR backend - - fix geopandas viz/other 3rd party matplotlib viz projects? - - -# 7 Jan 2019 -## Agenda - - -[ ] Eager or lazy eval of line/patch/marker properties. -[ ] https://github.com/matplotlib/matplotlib/pull/13026 : warn all floats in strings -[ ] https://github.com/matplotlib/matplotlib/pull/13126 minor tick suppression (log scales). -[ ] https://github.com/matplotlib/matplotlib/pull/13117#discussion_r245755479 matplotlib.use cleanup -[ ] https://github.com/matplotlib/matplotlib/pull/13030 mplot 3d -## Notes - -**Matplotlib.use cleanup?** - -- param re-naming discussion -- param rename decorator? -- - -**Minor ticks** - -- Try to pass major ticks to minor tick locators @Jody K - -**Warn on all-float string arrays** - -- https://github.com/matplotlib/matplotlib/pull/13026 -- hard to google, -- but we shouldn’t emit warnings for proper usage -- put in offset? Will show up in final plot… - - in coord format? Category -- going in circles about how to support both the naive user which is getting things-that-work-but-are-not-what-they-want vs non-naive users who are get spurious errors for correct usage of the library (sorry for cynical summary). -- more general discussion about helping users with common pitfalls - - plt.helpful → set logging level to Info for matplotlib. -- maybe we can just use logging.info? -- Settled on using logging - - @Jody K will change #13026 to use logging - - someone will open a PR to add a helper function to pyplot (and/or top-level ?) to set up the logging at info level. - -**Discussion about #13030** - -- deprecation is ok modulo a more documentation -- Want to enable 25% performance speed up so we can - -[**matplotlib/matplotlib#12909**](https://github.com/matplotlib/matplotlib/pull/12909) - -- @Eric F format ticks method takes only values, applies particular formatter - - format ticks for fixed formatter should check for ticks - - overwrite the format all methods for specific formatters - -**Azure Pipelines for testing** - -- make 2.6 build using vscode/windows binaries - - ping @Antony L after New Years -- use custom images from Qulogic because all the pngs fail because of free type - - push test image into their own repo & use submodules for test management - - talk to free type about testing stability/summer students - - email freetype and ask about testing stability? - diff --git a/meeting_notes/2019/02_04_25.md b/meeting_notes/2019/02_04_25.md deleted file mode 100644 index 15d06de..0000000 --- a/meeting_notes/2019/02_04_25.md +++ /dev/null @@ -1,246 +0,0 @@ -# 25 Feb 2019 -## Agenda -- 3.1 wrap up - - https://github.com/matplotlib/matplotlib/pull/12839 (needs final review) - - do we really need to be parsimonious w/ the size of the repo and new baseline images? - - https://github.com/matplotlib/matplotlib/pull/12856/ (do we want to accept private API for now or take care of public API across several (all) formatters? - - https://github.com/matplotlib/matplotlib/pull/11964 (thoughts on bumping to 3.2?) - - https://github.com/matplotlib/matplotlib/issues/9913 - - qt4 window resize bug…. - - https://github.com/matplotlib/matplotlib/pull/11732 - - https://github.com/matplotlib/matplotlib/pull/8638 -- Constrained layout and annotation boxes etc in axes-coordinates -## Notes - -**releases** -@Thomas C and @P I are having minor scheduling issues, “soon” -**12839:** - -- accept the PR/override @Antony L concerns - -**12856:** - -- todo: add usetex to scalerformatter -- needs: whats new entry -- related to larger question of how/when rcparams do their thing - -**11964:** - -- trust @Antony L + won’t discover edgecases until try to build wheels - -**9913** - -- not reproducible on mac/linux -- @Antony L cannot repro on windows+mpl3.0.3+qt5 - -**12716** - -- can be merged? unclear what @David S intended - -**11732** - -- matplotlib wheel on pypi never has test data -- matplotib-tests package would get tests -- either build from wheel - no test data, or test data from source -- adding a rogue/hidden setup.py -- need to remove tests from default wheel - -**8638** - -- @Thomas C has homework to address comments - - - -# 18 Feb 2019 -## Notes -## v2.2.4 and v3.0.3 state -- just waiting for backports to finish CI - -**Compass Notation for Legend Placement** - -- Short & Long notion w/o spaces - - [north, northeast, northwest, south, southeast, southwest, west, east] - - [N, NE, NW, S, SE, SW, W, E] -- old notation still saying - -**histograms #6669** - -- https://github.com/matplotlib/matplotlib/issues/6669 -- people want to plot histograms without recomputing histogram - - can abuse current API to do it - - - pass in counts as weights & bins = bins, and bins-1 as data - - have to pass in bins & weights - - https://github.com/matplotlib/matplotlib/issues/6669#issuecomment-464676022 - - function that does this would be thin wrapper on hist - - add in count kwarg and blow up if counts+weights or better doc the trick - - pro: counts is clearer than weights ‘cause it doesn’t require understanding the trick - - can also make x(data) optional - - can accidentally do something weird - - Sample API: - - `ax.hist(bins=bins, weights=counts)` - - `ax.hist(x, bins=bins, weights=counts)` # won’t work - - `ax.hist(x, weight=counts)` # may work depending on sizes, uses current behavior - - con: might give users pause on ‘why are my counts weights’ - - con: documentation on weights gets a bit fussier - - pro: no new kwargs, simple - - `ax.hist(counts, bins=bins, as_counts=True)` - - `ax.hist(counts, bins=bins, as_count=some_state)` - - `ax.hist(bins=bins, counts=counts)` - - `ax.hist(x, bins=bins, counts=counts)` # wont work - - `ax.hist(bins=bins, counts=counts, weights=weights)` # will raise - - `ax.hist(x, counts=counts)` # won’t work, will raise - - con: does not make sense with non-int ‘counts’ - - pro: bit clearer what intent is - -**closed step: 5855** - -- https://github.com/matplotlib/matplotlib/issues/5855 -- step plot, but you want to close it -- use `where` kwarg add -auto/interlaced (in addition to pre/post) - -**tick params visibility 12839** - -- https://github.com/matplotlib/matplotlib/pull/12839 -- don’t use setp for ticks, change defaults -# 11 Feb 2019 - [x] Release details - [x] Scatter legend: https://github.com/matplotlib/matplotlib/pull/11127 - [x] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 - [x] figsize in non-inches: https://github.com/matplotlib/matplotlib/pull/12415 - [ ] python-based matplotlibrc (4.0?) https://github.com/matplotlib/matplotlib/pull/9528 - [x] xmin/xmax undeprecate: https://github.com/matplotlib/matplotlib/issues/11761 - [ ] legend locations “NE”, vs. “northeast” vs. just leaving “upper right”. https://github.com/matplotlib/matplotlib/pull/12679 - [ ] consensus in that PR seems to be “northeast”; retain “upper right” for backwards compat -## Notes - -**Outstanding PRs** **/ work** **for 3.0.3** - -- [OS/X backend + latex = event loop chokin](https://github.com/matplotlib/matplotlib/issues/13066)[g #](https://github.com/matplotlib/matplotlib/issues/13066)[13066](https://github.com/matplotlib/matplotlib/issues/13066) - punted to 3.1? -- needs release note - - -- close with no action, corrected on wheels sides ( https://github.com/MacPython/matplotlib-wheels/pull/5) -https://github.com/matplotlib/matplotlib/issues/12119 - - -[matplotlib/matplotlib#12119](https://github.com/matplotlib/matplotlib/issues/12119) [](https://github.com/matplotlib/matplotlib/issues/12119) - - -- https://github.com/matplotlib/matplotlib/pull/13405 (needs second review) -- https://github.com/matplotlib/matplotlib/pull/11246 (needs some comments addressed by @Thomas C ) -- https://github.com/matplotlib/matplotlib/issues/13258 last outstanding issue - -**Scatter Legend** - -- @Eric F in charge of merging it - -**Set Size Inches** - -- Decided to support set_size(value, value, unit=unit) / set_size(value, value, unit) / figsize=(value, value, unit) - -**min/max vs left/right named arguments** - -https://github.com/matplotlib/matplotlib/pull/11137 - - -[matplotlib/matplotlib#11137](https://github.com/matplotlib/matplotlib/pull/11137) - -- rectangular vs. polar -- left/right/top/bottom already there -- decided to back out of deprecating xmin/xmax - -**logging - 13275** - -- how to provide feedback to users → how to turn on logging→handler for the logging -- no handlers installed by default -- talk to ipython folks about adding it to %matplotlib? - - switch ownership over to matplotlib? - - deferred magic? - simplifies newer backend support - -**Compass versus left- center-right, upper-center-lower vs 0-9 orientation** - -- @Eric F - leave long names + short for alias -- polar only supports uppercase, so here upper case only - -**Voxels shading 13123** - -- https://github.com/matplotlib/matplotlib/pull/13123 -- skip deprecation period? - already have 2 other PRs where the images are broken due to the deprecation -- there’s a shade=False flag - - - default to None, require to say explicitly, set default to false + raise deprecated warning, switch to True on next release - Numpy model? - - decided against this, keep it simple. voxels is relatively new, few users, low impact. - - ping @David S to release objections - -**agenda cleanup** -Hannah graciously deleted 2018 notes from this doc and moved them to another document, so that this one stays tidy. [+☑️ Matplotlib 2018 meeting agenda](https://paper.dropbox.com/doc/Matplotlib-2018-meeting-agenda-BWqBlwtVjg9XY5ToQLvcG) - -# 4 Feb 2019 - [ ] verbose/logging method: https://github.com/matplotlib/matplotlib/pull/13275 - [x] colorbar norm: https://github.com/matplotlib/matplotlib/pull/13234 - [x] final decision on summer students - [x] https://gitter.im/geopandas/geopandas?at=5c584e4b9221b9382d12eeea - [ ] NE vs upper-right discussion… - [ ] Anchored artist legend: `upper right` - [ ] Axes_Divider NE/NW -## Notes -- @Thomas C sent out email about release schedule - -**Colorbar Norm #13234** - -- undoing @Eric F design choice: - - original inheritance from scalarmappable, when colorbar is really dependent on the AxesImage/Scatter - change the mappable rather than colorbar - - @Jody K made mock scalarmappable that can be deprecated - -**Units issue discussion #13236** - -- what does default width mean in context of units? - - bar is set to .8 width relative to ? (but what when data is united) - - datetime w/ timedelta - - xref:https://github.com/matplotlib/matplotlib/pull/12903 - - [+☑️ Matplotlib 2019 meeting agenda: unit-conversion:](https://paper.dropbox.com/doc/Matplotlib-2019-meeting-agenda-unit-conversion-aAmENlkgepgsMeDZtlsYu#:uid=393380968722540654338756&h2=unit-conversion:) - -**Summer Students** - -- summer joint project between geopandas + pysal (pysal will kick in mentors) - - emailed NF to ask if they are ok with mentors from non-NF projects -- students propose their own projects -- due to lack of available effort, lets run through GSoC this year -- @hannah a will take lead on admin side - -**Wh****at do do with** **John Hunter Fellowship money?** - -- https://software-carpentry.org/blog/2014/03/john-hunter-fellowship-2014.html -- look into doing it this way again this year - -**Legend location** - -- geographic coordinates - [N, S, etc] -- https://github.com/matplotlib/matplotlib/pull/13072 -- upper right is ambiguous ‘cause besides or on top of bunch of axis -- need centralized documentation of how it *should* be done, then can move towards doing it uniformly. -- conflicts with change from min/max to {top, bottom}, {left, right} - - this older change also conflicts badly with polar -- think of these as layered APIs? -- - -**OS/X Backend** - -https://github.com/matplotlib/matplotlib/issues/12918 - -- [matplotlib/matplotlib#12918](https://github.com/matplotlib/matplotlib/issues/12918) -- [matplotlib/matplotlib#1](https://github.com/matplotlib/matplotlib/issues/12918)3096 -- OS/X backend used to be verified using cocoa app - @Jody K -- on master, milestoned as bugfix though - -**Backport/to do/bugfix/critical** - -- sphinx related fixes to 2.2?? -- vendored old version of jequery - pull request that downloads it as part of install process 11246 - - https://github.com/matplotlib/matplotlib/pull/11246 - - can build on boat (except first time, that time needs internet) - - put in .cache, check there on reinstall (survive git clean -xfd) -- closed: (retina dpi bug) https://github.com/matplotlib/matplotlib/issues/10160 -- need to prioritize next two weeks worth of bugfixes - - start moving things to new milestones - - things that should go in - release critical - - things that can be punted - label w/ next milestone diff --git a/meeting_notes/2019/2019.md b/meeting_notes/2019/2019.md index dfa573d..4857a8e 100644 --- a/meeting_notes/2019/2019.md +++ b/meeting_notes/2019/2019.md @@ -1,33 +1,11 @@ -# In☑️ Matplotlib 2019 meeting agenda -**Call co-ordinates: 15:00 Eastern US time (UTC -05:00)** +# 31 Dec -https://zoom.us/j/384435716 +**no meeting/on vacation** +# 24 Dec -2020 Notes: [+Matplotlib 2020 Meeting Agenda](https://paper.dropbox.com/doc/Matplotlib-2020-Meeting-Agenda-ShL3ViKjxrcG75ZL0X23D) -2018 Notes: [+☑️ Matplotlib 2018 meeting agenda](https://paper.dropbox.com/doc/Matplotlib-2018-meeting-agenda-BWqBlwtVjg9XY5ToQLvcG) +**no meeting/on vacation** -Template: (use headings `#-###` so that TOC/linking has searchable topic headings, and issue/PR # for same reason ) - - # Date - ## Agenda - [ ] - ## Notes - ### Topic 1 - * subpoints - ### Topic 2 - - -# Needs Discussion At Some Point -- ~~feature merge guidelines~~ Dec 17 -- named roles -- blog PR/merge guidelines -- mission statement/vision -- ~~security vulnerability disclosure protocol~~ -- ~~JOSS reviewing~~ -- ~~Job posts on social media + mailing lists~~ -# 24 Dec, 31 Dec -- no meeting/on vacation # 17 Dec ## Agenda - New gallery example policy ← is goal to decrease these? @@ -2114,6 +2092,9 @@ return canonical form? - each type of thing (artists, annotations, etc) has its own way of interacting with artists that creates problems - @Antony L - reserve the right to change how legends interact with artists, etc. - 13544 shows examples of extra artists with constrained layout + +--- + # 25 Feb 2019 ## Agenda - 3.1 wrap up diff --git a/meeting_notes/2019/needs_discussion.md b/meeting_notes/2019/needs_discussion.md new file mode 100644 index 0000000..139155a --- /dev/null +++ b/meeting_notes/2019/needs_discussion.md @@ -0,0 +1,11 @@ + + +# Needs Discussion At Some Point + +- ~~feature merge guidelines~~ Dec 17 +- named roles +- blog PR/merge guidelines +- mission statement/vision +- ~~security vulnerability disclosure protocol~~ +- ~~JOSS reviewing~~ +- ~~Job posts on social media + mailing lists~~ diff --git a/meeting_notes/2020/01_2020.md b/meeting_notes/2020/01_2020.md index b0209ce..22e5d1b 100644 --- a/meeting_notes/2020/01_2020.md +++ b/meeting_notes/2020/01_2020.md @@ -1,16 +1,3 @@ -# January 2020 -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -# Needs Discussion At Some Point -- GSOC -- named roles -- roll-off procedure -- blog PR/merge guidelines -- mission statement/vision - -# Feb: [February 2020](/4zWKhuLXQ16Y_oUfi9hnKA?both) # 27 Jan diff --git a/meeting_notes/2020/02_2020.md b/meeting_notes/2020/02_2020.md index d2184a4..8ce6e71 100644 --- a/meeting_notes/2020/02_2020.md +++ b/meeting_notes/2020/02_2020.md @@ -1,21 +1,3 @@ -# February 2020 -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -# Needs Discussion At Some Point -- parallel coordinates plot (PCP) -- https://matplotlib.org/devel/MEP/index.html -- GSOC - - https://github.com/matplotlib/matplotlib/projects/12 -- Consolidating gitter channels - - delete gsoc, mpl-altair, community since they're dormant -- named roles -- roll-off procedure -- blog PR/merge guidelines -- mission statement/vision -- ownership of notebook backends? -- Small dev grant: who to hire/how to spend the money - # Feb 24 - Tom & Hannah at CZI EOSS Meeting diff --git a/meeting_notes/2020/03_2020.md b/meeting_notes/2020/03_2020.md index a1f3168..746dbac 100644 --- a/meeting_notes/2020/03_2020.md +++ b/meeting_notes/2020/03_2020.md @@ -1,19 +1,3 @@ -# March 2020 -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -# Needs Discussion At Some Point -- parallel coordinates plot (PCP) -- https://matplotlib.org/devel/MEP/index.html -- GSOC: https://github.com/matplotlib/matplotlib/projects/12 -- named roles -- roll-off procedure -- blog PR/merge guidelines -- mission statement/vision -- ownership of notebook backends? -- provisional API -- semantics of when the cycler gets consulted # March 30 ## Agenda diff --git a/meeting_notes/2020/04_2020.md b/meeting_notes/2020/04_2020.md index 4a8dd2c..08827a6 100644 --- a/meeting_notes/2020/04_2020.md +++ b/meeting_notes/2020/04_2020.md @@ -1,19 +1,3 @@ -# April 2020 -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -# Needs Discussion At Some Point -- parallel coordinates plot (PCP) -- https://matplotlib.org/devel/MEP/index.html -- GSOC: https://github.com/matplotlib/matplotlib/projects/12 -- named roles -- roll-off procedure -- blog PR/merge guidelines -- mission statement/vision -- ownership of notebook backends? -- provisional API -- semantics of when the cycler gets consulted # April 6 ## Agenda diff --git a/meeting_notes/2020/05_2020.md b/meeting_notes/2020/05_2020.md index 679ab0e..60696f1 100644 --- a/meeting_notes/2020/05_2020.md +++ b/meeting_notes/2020/05_2020.md @@ -1,9 +1,3 @@ -# May 2020 -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) # May 4 ## Agenda diff --git a/meeting_notes/2020/06_2020.md b/meeting_notes/2020/06_2020.md index 6d01d82..7764ef4 100644 --- a/meeting_notes/2020/06_2020.md +++ b/meeting_notes/2020/06_2020.md @@ -1,11 +1,3 @@ -# *June* 2020 -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # 29 June 2020 - [x] GH sponsors page https://discourse.matplotlib.org/t/github-sponsors/21320 / https://github.com/sponsors/matplotlib diff --git a/meeting_notes/2020/07_2020.md b/meeting_notes/2020/07_2020.md index eb64bae..ef0df8b 100644 --- a/meeting_notes/2020/07_2020.md +++ b/meeting_notes/2020/07_2020.md @@ -1,18 +1,3 @@ -# *July* 2020 - -[![hackmd-github-sync-badge](https://hackmd.io/MNcskNfZSIOoLb50GqVIGg/badge)](https://hackmd.io/MNcskNfZSIOoLb50GqVIGg) - -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern daylight time (UTC -04:00) https://zoom.us/j/384435716 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) - -# 04 August 2020 - -Moved to [August](https://hackmd.io/P3Hrfoy9RSKRA4-mXMKW2A) notes... # 27 July 2020 diff --git a/meeting_notes/2020/08_2020.md b/meeting_notes/2020/08_2020.md index 8d031b6..22cf4f7 100644 --- a/meeting_notes/2020/08_2020.md +++ b/meeting_notes/2020/08_2020.md @@ -1,14 +1,3 @@ -# *August* 2020 - -[![hackmd-github-sync-badge](https://hackmd.io/MNcskNfZSIOoLb50GqVIGg/badge)](https://hackmd.io/MNcskNfZSIOoLb50GqVIGg) - -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern daylight time (UTC -04:00) https://zoom.us/j/384435716 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # 31 August 2020 diff --git a/meeting_notes/2020/09_2020.md b/meeting_notes/2020/09_2020.md index a4302e6..32b74a8 100644 --- a/meeting_notes/2020/09_2020.md +++ b/meeting_notes/2020/09_2020.md @@ -1,11 +1,3 @@ -# September 2020 -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # 28 September 2020 diff --git a/meeting_notes/2020/10_2020.md b/meeting_notes/2020/10_2020.md index 5d6f61b..66e9c2f 100644 --- a/meeting_notes/2020/10_2020.md +++ b/meeting_notes/2020/10_2020.md @@ -1,13 +1,5 @@ -# *October* 2020 -###### tags: `dev call 2020` -Call co-ordinates: Tuesdays @ 15:00 Eastern US time (UTC = 19:00) https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) - -# 27 Oct (Tuesday) +# 27 Oct ## Agenda diff --git a/meeting_notes/2020/11_2020.md b/meeting_notes/2020/11_2020.md index 8dbacd2..922596a 100644 --- a/meeting_notes/2020/11_2020.md +++ b/meeting_notes/2020/11_2020.md @@ -1,12 +1,3 @@ -# November 2020 -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC = 20:00) https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 - - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # 24 Nov diff --git a/meeting_notes/2020/12_2020.md b/meeting_notes/2020/12_2020.md index 343266b..211b3c1 100644 --- a/meeting_notes/2020/12_2020.md +++ b/meeting_notes/2020/12_2020.md @@ -1,11 +1,3 @@ -# *December* 2020 -###### tags: `dev call 2020` -Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC = 20:00) https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 - -Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) # 29 Dec ## Notes diff --git a/meeting_notes/2020/2020.md b/meeting_notes/2020/2020.md index e397f47..f76b108 100644 --- a/meeting_notes/2020/2020.md +++ b/meeting_notes/2020/2020.md @@ -41,4 +41,3 @@ Template: (use headings #-### so that TOC/linking has searchable topic headings, ### Topic 1 * subpoints ### Topic 2 - diff --git a/meeting_notes/2020/needs_discussion.md b/meeting_notes/2020/needs_discussion.md new file mode 100644 index 0000000..44c07d6 --- /dev/null +++ b/meeting_notes/2020/needs_discussion.md @@ -0,0 +1,50 @@ + +# Needs Discussion At Some Point + +## From 01_2020.md + +- GSOC +- named roles +- roll-off procedure +- blog PR/merge guidelines +- mission statement/vision + +## From 02_2020.md + +- parallel coordinates plot (PCP) +- https://matplotlib.org/devel/MEP/index.html +- GSOC + - https://github.com/matplotlib/matplotlib/projects/12 +- Consolidating gitter channels + - delete gsoc, mpl-altair, community since they're dormant +- named roles +- roll-off procedure +- blog PR/merge guidelines +- mission statement/vision +- ownership of notebook backends? + +## From 03_2020.md + +- parallel coordinates plot (PCP) +- https://matplotlib.org/devel/MEP/index.html +- GSOC: https://github.com/matplotlib/matplotlib/projects/12 +- named roles +- roll-off procedure +- blog PR/merge guidelines +- mission statement/vision +- ownership of notebook backends? +- provisional API +- semantics of when the cycler gets consulted + +## From 04_2020.md + +- parallel coordinates plot (PCP) +- https://matplotlib.org/devel/MEP/index.html +- GSOC: https://github.com/matplotlib/matplotlib/projects/12 +- named roles +- roll-off procedure +- blog PR/merge guidelines +- mission statement/vision +- ownership of notebook backends? +- provisional API +- semantics of when the cycler gets consulted diff --git a/meeting_notes/2021/2021_01_jan.md b/meeting_notes/2021/2021_01_jan.md new file mode 100644 index 0000000..8c21e53 --- /dev/null +++ b/meeting_notes/2021/2021_01_jan.md @@ -0,0 +1,284 @@ +# Matplotlib Weekly Meeting: January 2021 + +###### tags: `2021 dev call` + +--- + +# January 5, 2021 + +## Agenda +### Old Business + +### New Business + - mpl35 release manager + - mpl34 schedule + +### PRs and Issues + +- [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) Allow copying Norms... + - Release critical (regression) + - https://github.com/matplotlib/matplotlib/issues/18119 +- [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) + - status of setuptools_scm adoption? What needs to be done/decided? +- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review +- [ ] pyupgrade prs: #19237 #19241 + - anything useful in here? +- [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... +- [ ] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) +- [ ] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling +- [x] [#19201](https://github.com/matplotlib/matplotlib/pull/19201) About baseline images? + - Alignment issues with mathtext +- [ ] [#19215](https://github.com/matplotlib/matplotlib/pull/19215) [DOC] Collect information for setting up a development environment + +## Notes + +### Copyable Norms +- make a mixin for each of the transforms in `scale.py` rather than a new base class. + +### Baseline images mathtext in SVG +- SVG with embeded paths versus text? +- paths embeded in end-user code +- but smaller if we don't embed... +- Thomas planning to prioritize the separate repo for test images + +#### Conclusion: +- Take font spec improvement (it's independent anyway) +- Limit baseline images to SVG +- Don't use fonts in the SVG but keep the fonts being converted to paths. + Concern is on the added complexity; and the production code uses converted paths, so testing these is closer to the production case. We live with the larger SVG size due to paths in test images for now. Tom is planning to prioritize the separate repo for test images, so image size is a little less critical. + +--- + +# January 14, 2021 + +## Agenda +### Old Business + +### New Business + - numfocus annual report - need min 2 sentences by Jan 15th + - GSOC - anybody interested in mentoring? + - Google deadline is Jan 29th, Numfocus ASAP + - 175 hours over a 10 week period + - https://opensource.googleblog.com/2020/10/google-summer-of-code-2021-is-bringing.html + - email NumFocus coordinators: Mridul Seth , Henry Kironde + - ideas list: https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ + - mpl35 release manager + - mpl34 schedule + +### PRs and Issues + +- [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) / [#19281](https://github.com/matplotlib/matplotlib/pull/19281) Transforms copying. +- [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) + - status of setuptools_scm adoption? What needs to be done/decided? +- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review +- [ ] pyupgrade prs: #19237 #19241 + - anything useful in here? +- [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... +- [x] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) +- [x] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling +- [ ] [#19029](https://github.com/matplotlib/matplotlib/issues/19029) Refactor to _api._update_label_position? +- [x] [#18216](https://github.com/matplotlib/matplotlib/pull/18216) +- [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) + *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` + *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. + ``` + if isinstance(artist, Patch): + return add_patch(artist) + ``` + + +## Notes + +### Numfocus annual report + +- crib from CZI report. - + +https://github.com/matplotlib/CZI_2020-07_mpl/blob/main/CZI.md + +``` +The current grant is supporting one developer at 40% (Thomas Caswell), one graduate +student (Hannah Aizenman) with partial summer support for her advisor (Michael Grossberg), and a full time +Research Software Engineer. For the latter we ran a search and hired +Elliott Sales de Andrade who started in mid-March. + +Elliott has focused on the maintenance and support aspect of the +grant. We hit our target of a net reduction of open PRs by 50/quarter +and are making progress on reducing the number of open issues. Our +initial estimates of the effort per issue closed were too optimistic; +however, we merged several mid-sized and high-impact projects +(documentation, JavaScript modernization, and a complex axes layout helper). +Additionally we drafted new governance and contributor onboarding +guidelines and had 2 feature and 4 bug-fix releases. + + +We presented our new architecture ideas to the scientific library development community at the SciPy 2020 maintainers track. We designed the prototype API to have a clean separation between the `DataSource`, `Artist`, and rendering layers. We started implementing sample DataSources and Artists to formalize and validate the interface between them. Because the prototype is still developing rapidly, we are postponing working with a downstream partner until the API has stabilized. +``` +- sent +### GSOC + +- put call out to mailing list - sent + +### transform copying + +- should deepcopy really freeze? + +### [#18216](https://github.com/matplotlib/matplotlib/pull/18216) +- get rid of individual lists of artists +- do for 3.5 + +### [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling +- @pXw4hSgTQF2--OciPYwa1w will look at it. + + +### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) + +### [#10008](https://github.com/matplotlib/matplotlib/pull/10008) and [#17850](https://github.com/matplotlib/matplotlib/pull/17850) +- color, facecolor, edgecolor overlapping arguments +- issue is some markers are "fillable" or not. +- Tim will look carefully at #17850 + +### [19272](https://github.com/matplotlib/matplotlib/pull/19272) + +--- + +# January 21, 2021 + +* GSOC: + * due to numfocus by Jan 29 + * no mentor volunteers - anyone to ask personally? +* Scipy: + * tutorial: February 9, 2021 + * talk: February 16, 2021 +* CZI update Hannah + * end of meeting so folks can drop off +* webinar to Partnership for the Integration of Computation into Undergraduate Physics (PICUP)? + * https://www.compadre.org/PICUP/ + * sometime in March or April + +### PRs and issues + +- [x] [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius +- [x] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) + - status of setuptools_scm adoption? What needs to be done/decided? +- [x] [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers + - TH: I believe I know what we should do. +- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review +- [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) + *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` + *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. + ``` + if isinstance(artist, Patch): + return add_patch(artist) + ``` +- [ ] Webpage: + - i.e. do a search on google for "matplotlib colorbar" yields multiple versions + - https://github.com/matplotlib/matplotlib.github.com/pull/49 + - https://github.com/matplotlib/matplotlib.github.com/pull/48 +- [ ] [#19255](https://github.com/matplotlib/matplotlib/issues/19255) Add "experimental" support for PyQt6/PySide6. + +## Notes + +### Pickradius: +- [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius +- pickradius can be modified. Could also set by passing to picker (`set_picker(5)`). Issue is `True==1`, `False==0`. +- decouple, make `set_picker` on and take a radius... +- deprecate `set_pick_radius`? + +### SCM tools for setup +- for making dev versions. +- [#18971](https://github.com/matplotlib/matplotlib/pull/18971) +Decision: Make setuptools_scm an install_requires but only for dev installs (by dynamically manipulating install_requires in `setup.py` depending e.g. on checking the filesystem). In `__init__.py`, do generate the up-to-date version from setuptools_scm, but gate that behind a module-level `__getattr__` to avoid the import penalty. + + +### No fill markers +- [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers +- filled and unfilled markers (versus unfillable) + - `color` behaves differently for each type. + - `markerstyle(fill_style='none')` but internally still has a facecolor. + - PR is right behaviour, but could merge because it does "right thing", but architecture is messy + - deprecate mutating `MarkerStyle` if it ever worked... +- should be sure this still works w/ seaborn... + +### relimits on some artists + +- `add_artist` could inspect and dispatch to the specialized functions. +- but @QuLogic has PR to flatten list anyway.. + - https://github.com/matplotlib/matplotlib/pull/18216 +- 3.5 issue + +### Webpage +- possible SEO improvements +### GSOC: +- 29 Jan deadline +- Aitik Gupta interested +- @tacaswell, @bruno +### Scipy 2019 +- tutorial - email dev list + DM some folk + - Peter McKeever said yes +- talk - wait & hear, by invite +### Qt6/gtk4 +- same as qt5: https://github.com/matplotlib/matplotlib/pull/19255 + - single qtagg or different backends for each + - similar enough? - yes + + +### Hannah CZI + +--- + +# January 28, 2021 + +## Agenda + +### Old business + +### New business +- [ ] 3.3.4 tagged! +- [ ] status of 3.4 +- [ ] NumFocus Annual Report Survey (maybe is steering council responsibility?) + * We would like to include three (3) applications to show how your project is being used currently. If you know of a specific user e.g. company, research institution or university please include. + * Please provide a short description of three (3) future or planned features/upgrades for your project. These would be things that you have outlined in your project roadmap and/or next steps for your project. + * One of the intentions of these one-pagers is to be shown to potential funders. Funders want to have a quick understanding of the needs of a project so they can see where there may be alignment with their mission and identify places where they may be able to provide support. Please describe three (3) project needs PLUS a high-level cost and/or "hours-to-complete" estimate. + +### Isues and PRs +- [ ] Website SEO + - now have a `/stable/` level + - upgrades of `robots.txt` and `sitemap.xml` + - need to fix canonical urls (pointing to `/3.3.3/` or root; nothing points to `/stable/` +- [ ] [3.4.0 outstanding PRs](https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.4.0) + +### Notes + +### Roadmap (annual report) + +- Matplotlib 4.0 +- opengl renderer + - @IanThomas interested in partial funding to do that. + - GUIs/windowing syste, + - webgl version + - some implimentations exist as proof of concept +- would likely need a new API for the renderers + - true 3d +- optimizations that break backcompatibility + - transformations pipeline especially @anntzer will add. +- matplotlib 3D (w/ current renderers) + - https://github.com/rougier/matplotlib-3d +- current CZI work + - functional overhaul of artist that breaks out data, visual converters like norm/scale, creating glyphs +- docs overhaul + - information architect please +- important uses of matplotlib + - https://matplotlib.org/matplotblog/posts/ipcc-sr15/ + - https://twitter.com/matplotlib/status/1354902116716978178 + +### 3.3.4 & 3.4 + +- now out +- if new feature move 3.5 (or 3.4 now) +- release critical: + - a couple of @tacaswell issues (edgecolors) + - non interactive backends... Qt stuff maybe 3.5? +- #19341: + +### gsoc +- https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ diff --git a/meeting_notes/2021/2021_02_feb.md b/meeting_notes/2021/2021_02_feb.md new file mode 100644 index 0000000..e9e8951 --- /dev/null +++ b/meeting_notes/2021/2021_02_feb.md @@ -0,0 +1,351 @@ +# Matplotlib Weekly Meeting: February 2021 + +###### tags: `2021 dev call` + +--- + +# February 4, 2021 + +## Agenda + +### Old Business + +### New Business +- [x] psf scientific working group grant, $4000 for education/outreach + - https://pyfound.blogspot.com/2020/12/psf-scientific-working-group-announces.html + - feb 15 +- [x] geopandas has an mpl tie in GSOC project, is asking if mentoring help at least on a consult basis is available + - https://github.com/geopandas/geopandas/wiki/Google-Summer-of-Code-2021 + - https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ + +### Issues and PRs + +- [x] Info/announcement: [#19449](https://github.com/matplotlib/matplotlib/issues/19449) Adaptation of type documentation: + - Previous convention: `array-like (M, N)` + - New convention: `(M, N) array-like` and `(M, N) array-like of int` +- [x] Website redirects: + - scripts to fix canonicals, add banners, redirect toplevel + - `https://matplotlib.org/stable/` new top level. Discourage using version + - will try to use `reredirects` for new moves in docs +- [x] 3.4: https://github.com/matplotlib/matplotlib/issues/18939 + - how to handle `Axes3D(fig)` no longer automatically adding itself to a figure. + - https://github.com/matplotlib/matplotlib/pull/19413 +- [ ] 3.4.0: 34 outstanding PRs and issues: + - https://github.com/matplotlib/matplotlib/milestone/53 + - https://github.com/matplotlib/matplotlib/pull/18480 Needs a second look +## Notes + +### PSF outreach: +- no strong ideas, @bruno may have connections + +### GSOC: + - geopandas maye want some help on the GSOC; + - Elliott volunteered as tribute + - font-based GSOC @anntzer w @Aitik + - https://hackmd.io/@matplotlib +https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 + - caswell will be primary mentor, Antony will be around + - reach out to Jouni @tacaswell + +### Numfocus needs diversity in scientific computing committee members +- https://numfocus.org/programs/diversity-inclusion +- contact @story645 +- looking for non US board members in particular + + +### Info doc: +- `(M, N) array-like of int` +- typing discussion, but we will not be leading with types (numpy) +- + +### website update +- add /stable to URL +- on-going work to add re-directs and banner to old docs +- looking into adopting sphinx-reredirect https://pypi.org/project/sphinx-reredirects/ tomake moving docs less painful + +### AxesAdd3d +- process_projection needs to be fixed +- Thomas's changes mix in as well (same code) + +### #18480 +- @BrunoBeltran will review + + +### 19438: +- plt.subplot kwarg reuse issue +- + +### Explicit versus implicit + +- better than Object Oriented + +--- + +# February 11, 2021 + +## Agenda + +### Old Business + +- [ ] GSOC contact Jouni - font handling? @tacaswell (still waiting) + +### New business +- [ ] standing weekly/bi-weekly/monthly doc meetings? +- [x] Microsoft grant? + + +### PRs + +- [ ] Website (fix our search issues): + - Needs merge if OK: https://github.com/matplotlib/matplotlib/pull/19456 + - Needs to be run and merged: https://github.com/matplotlib/matplotlib.github.com/pull/49 +- [ ] Axes3d (3.4.0): + - New PR: https://github.com/matplotlib/matplotlib/pull/19496 + - Does it need deprecation warning? +- [ ] Axes re-use for `plt.subplot` (3.4.0): + - https://github.com/matplotlib/matplotlib/pull/19438 + +## Notes + +### Microsoft grant + - $1k per month. Think about what to do with it. + - $9k total after overhead. + - should be spendable immediately though + - For discussion next week. + +### GSOD + - Discuss next week. March 26 + +### Doc meeting +- standing meeting? Monthly. After GSOD +- Django org structure +- sphinx theme from scientific python... + - https://pydata-sphinx-theme.readthedocs.io/en/latest/ +- Reorganizing the site + - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV + - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing + +### Website: + + - #19456 warn if try to overwrite before merge + - will run the html changes PR on github @QuLogic + +### axes reuse :tada: + +#### Case 1 + +Also see #10700 + +This should produce 2 polar plots with sin^2 in the top one and cos^2 in the bottom one. + +Correct in 2.1.2, 3.3.4, my PR, wrong on default branch + +```python +import matplotlib +matplotlib.use('tkagg') +import matplotlib.pyplot as plt +import numpy as np +th = np.linspace(0, 2*np.pi, 1024) + + +plt.figure() +plt.suptitle(matplotlib.__version__) + +plt.subplot(211) +plt.plot(th, np.sin(th)**2) +plt.subplot(211, polar=True) +plt.plot(th, np.sin(th)**2) + +plt.subplot(212, polar=True) +plt.plot(th, np.cos(th)**2) +plt.subplot(212) +plt.plot(th, np.cos(th)**2) + +plt.show() +``` + +#### case 2 + +This should produce two polar plots each showing sin^2 and cos^2 in blue and orange (C0, C1) + +Correct in 2.1.2, 3.3.4, my PR, wrong on default branch +```python +import matplotlib +matplotlib.use('tkagg') +import matplotlib.pyplot as plt +import numpy as np +th = np.linspace(0, 2*np.pi, 1024) + +plt.suptitle(matplotlib.__version__) +plt.subplot(121, projection='polar') +plt.plot(th, np.sin(th)**2) +plt.subplot(122, polar=True) +plt.plot(th, np.sin(th)**2) + +plt.subplot(121, polar=True) +plt.plot(th, np.cos(th)**2) +plt.subplot(122) +plt.plot(th, np.cos(th)**2) + +plt.show() + +``` + +#### case 3 + +In 2.1.2 and 3.3.4 this produces a 3D plot on top and 2D plot on the bottom + +on the current default branch this produces a 2D plot on top and a 3D plot on the bottom + +on the PR branch produces 2 3D plots + +```python +import matplotlib +matplotlib.use('tkagg') +import matplotlib.pyplot as plt +import mpl_toolkits.mplot3d + +plt.figure() +plt.suptitle(matplotlib.__version__) + +plt.subplot(211) +plt.subplot(211, projection='3d') + +plt.subplot(212, projection='3d') +plt.subplot(212) + +plt.show() + +``` +#### to do +* soft deprecate polar=true? +- proposed behavior + * if new_proj & new_kwarg is None, return old + ```python + plt.subplot(211, polar=True) + plt.subplot(211) + ``` + * if old_kwarg = new_kwarg & old_proj=new_proj, return old + ```python + plt.subplot(211, polar=True) + plt.subplot(211, polar=True) + ``` + ```python + plt.subplot(211, polar=True) + plt.subplot(211, projection='polar') + ``` + * if keyword or projection don't match, return new + * change 3D to match new behavior + ```python + plt.subplot(211, polar=True) + plt.subplot(211, projection='3d') + ``` +- 3D break - currently this behavior makes a new plot +```python +plt.subplots(111, projection='3D') +plt.subplots(111) +``` +* deprecate Axes3D adding itself + +--- + +# February 18, 2021 + +## Agenda + +### New Business +- [ ] canonical website: https://matplotlib.org/stable + + +### PRs +- [ ] 3.4 final PRs + - [ ] restore creating new axes via plt.subplot with different kwargs [#19438](https://github.com/matplotlib/matplotlib/pull/19438) + - [x] Restore auto-adding Axes3D to their parent figure on init [#19496](https://github.com/matplotlib/matplotlib/pull/19496) + - [x] Sync 3D errorbar with 2D [#18436](https://github.com/matplotlib/matplotlib/pull/18436) + +## Notes + +### 3.4 PRs + +#### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) + - TODO: open an issue for missing test coverage... + - errorbar in 3D is a new feature for 3.4 + - discussion about how to handle case of both lolims and hilims set + - not clear that how we handle this in either 2D or 3D works correctly + - but this makes 2D and 3D consistent + - also concerns about how we do error bars in general + - TODO: issue with caps with rotation. (would need to not be a marker) + - TODO: remove caps from one test + +#### [#19438](https://github.com/matplotlib/matplotlib/pull/19438) +- @anntzer will do final review +- general heuristic OK + +#### + +--- + +# February 25, 2021 + +## Agenda + +### New Business + - [ ] GSOD 2021 - March 26th org applications (deferred) + - [ ] Proposals for spending Microsoft (deferred) + - [x] bump min numpy to 1.17 for mpl 3.4 + - https://numpy.org/neps/nep-0029-deprecation_policy.html#drop-schedule + - we planned to release before drop date, but ended up delaying past the date (Jan 13, 2021) + +### PRs +- [ ] https://github.com/matplotlib/matplotlib/pull/14508 force_zorder +- [ ] https://github.com/matplotlib/matplotlib/issues/19544 Listed colormap and sets? + - https://github.com/matplotlib/matplotlib/issues/19574 similar in that changes broke some objects that used to work + +Not urgent, but needs discussion: +- [x] formatting style for classes/concepts in the docs: `` `.Figure` `` vs. Figure vs. figure + https://53849-1385122-gh.circle-artifacts.com/0/doc/build/html/devel/style_guide.html#terminology + https://github.com/matplotlib/matplotlib/pull/19183 +- [ ] https://github.com/matplotlib/matplotlib/pull/19482 backend registration +- [ ] https://github.com/matplotlib/matplotlib/pull/14913 python NonUniformImage +- [ ] https://github.com/matplotlib/matplotlib/pull/16931 better UI metadata + +## Notes + +### Webpage + +- front page make just html @tacaswell + - make a different landing page + - keep style? + - sphinx as well? or bare html/css +- flash page should be styled? + - add css styling to redirect pages... + +### Numpy 1.17 +- 3.4? +- hard runtime check versus building wheels +- are we testing 1.16? for 3.4 +- Don't bump runtime check and do bump wheels. Make sure we are testing 1.16 if we don't block. + - @QuLogic + +### 3d zorder +- https://github.com/matplotlib/matplotlib/pull/14508 +-`computed_zorder` = True for normal compute, False for user-specified. + +### ducktyping arrays +- https://github.com/matplotlib/matplotlib/issues/19574 +- what ducktyping will we do? +- issue with hist and boxplot are issues... + - list or arrays + - tensorflow? scalars are itterable... +- sorting out ducktype + - iterables are special: `atleast_1d` +- lists, numpy, pandas, astropy, pint + - need mock object +- need a common base like + - https://data-apis.org/blog/array_api_standard_release/ + +### color issue + - @jklymak will work w/ seaborn to fix + +### Figure/figure/`Figure` +- "Figure" for "Matplotlib" figures. "figure" for general figures, and "``Figure``" when discussing the class. diff --git a/meeting_notes/2021/2021_03_mar.md b/meeting_notes/2021/2021_03_mar.md new file mode 100644 index 0000000..7d3259d --- /dev/null +++ b/meeting_notes/2021/2021_03_mar.md @@ -0,0 +1,214 @@ +# Matplotlib Weekly Meeting: March 2021 + +###### tags: `2021 dev call` + +--- + +# March 4, 2021 + +## Agenda + +### New Business + + - [x] CZI 4 Letter of intent due March 30 (2 yr cycle, 50K-200K/year) + - [x] CZI supplimental DEI LOI due March 30 + - [x] Caswell March Meeting talk practice talk next week (need date + time) + - [x] NumFOCUS “Contributor Diversification and Retention” Research Project kicked offx + - [x] CZI update: diss proposal https://github.com/story645/proposal/blob/main/draft/main.pdf + +### Issues +- [ ] https://github.com/matplotlib/matplotlib/issues/19609 - colormap modification deprecations +- [ ] Style files (or not) https://discourse.matplotlib.org/t/where-to-put-site-style-file/21895 + + +### PRs +#### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 +- [ ] callbacks stored on canvas/figure: https://github.com/matplotlib/matplotlib/pull/19611 +- [ ] Axes stack: https://github.com/matplotlib/matplotlib/pull/19625 +- [ ] Font threading: https://github.com/matplotlib/matplotlib/pull/19618 + + +## Notes: + +### CZI +- two-year grants vs one. Max per year smaller +- apply (round 4) + - on NCE to end of Mar + - slightly smaller + - second grant to Mar next year. + - actual start negotiable. Start 1 Mar 2022 + - 15% Thomas (BNL caps Thomas at 40%), Elliott +- Diversity proposal: + - same-scale $ + - jupyter dev in residence + - experience, career development versus deliverables + - combine with other projects + - interfaces between projects? + - March 30th letter of intent + - https://drive.google.com/file/d/1JlqZqGfM2-Jt-r8eTGg9W-Ad-15KEMhS/view?usp=sharing + - Thomas will chat with numfocus folks about possible interfaces + +### colormap mutability +- will look at it soon. +- 3.4.1 +- Plan: https://github.com/matplotlib/matplotlib/issues/16991 + + +### march meeting +abstract https://meetings.aps.org/Meeting/MAR21/Session/L61.5 + +> Data visualization is critical to understanding data in physics. Visualization is important in the early stages of understanding a measurement or a model and, later, in communicating it clearly. Physicists need to produce visualizations that fit their specific problem, often including multiple axes or novel plot types. They need tools that make common tasks like scatter and line plots easy and complex tasks like compound figures possible. + +> Matplotlib is the foundational data visualization library for the Scientific Python Ecosystem. It is used by working physicists, from high-profile projects like LIGO and the Event Horizon Telescope. to the day-to-day work of students, for interactive exploratory visualization and publication-ready figures. + +> This talk will highlight some of the key features of the library, focusing on examples of interactive multi-scale visualizations and tuning figures in preparation for publication. I will also briefly discuss our future plans to evolve the library to meet the future needs of our users. + +--- + +# March 13, 2021 + +## Agenda + +### New Business + + - [x] "brochure site" / landing page (with guest Dora Caswell) + - [x] GSOD 2021 - March 26th org applications + - operate as a grant program. + - between US$5,000 and US$15,000 + - can hire multiple writers but need to budget for it + - https://developers.google.com/season-of-docs/docs + - [ ] Proposals for spending Microsoft + +### PRs + +#### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 +- colormap deprecation https://github.com/matplotlib/matplotlib/issues/19609 + +## Notes + +### Brochure site / landing page +- manage `index.html` separately from rest of docs. +- standalone webpage +- https://github.com/matplotlib/mpl-brochure-site +- banner management? +- maybe Dora work on front page... +- should top level have more pages + - Code of Conduct, governance +- current docs: new theme? + - https://github.com/pydata/pydata-sphinx-theme +- pull out contributing guide as wel?l + - not tied to releases so can change immediately +- wireframe @Dora and @tacaswell +- change theme @tacaswell + +### GSOD +- grant proposal +- not clear who is going to write / mentor this year +- we will not particpate this year +- Ben or Nicholas @tacaswell will write... + +### CZI +- yes apply +- EDI stream: "contributor in residence" maybe shared numfocus... + - transition PDF-type position + - overlapping projects; interface with other projects + +--- + +# March 18, 2021 + +## Agenda + +### Old Business + +- [ ] Microsoft proposals (next week) +- [x] Landing page wireframe @tacaswell +- [x] Theme work @tacaswell +- [x] GSOD: write Nicolas and/or Ben @tacaswell +- [ ] CZI update/plan + +### New Business +- [ ] public/community calendar? +- [ ] doc calls? + +### PRs + +- [ ] License + - [ ] https://github.com/matplotlib/matplotlib/pull/19704 is merged for 3.5. + Do we agree that this is correct, so that we can backport to 3.4? + - [ ] Do we still need to explicitly write down Copyright and License information + for Matplotlib < 1.3 in current docs? I'd like to strip that out and just reference + https://matplotlib.org/1.3.0/users/license.html from https://matplotlib.org/devdocs/users/license.html +- [ ] (not) change to new numpy random number generator API in docs for 3.5 + https://github.com/matplotlib/matplotlib/pull/19706#pullrequestreview-612661785 +- [ ] https://github.com/matplotlib/matplotlib/pull/13358 - apply this on perspective transform? + +## Notes + +### GSOD: +- thomas contacted Nicolas and Ben + +### Landing Page: + +* https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom +* old doc notes + - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV + - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing + + +### 3.4.0 +- Whats news written +- regressions? +- subplots_mosaic + - return axes in c-order + +### 19706 RNG +- push off until 3.6 + +--- + +# March 25, 2021 + +## Agenda + +### Old business +- [ ] Microsoft proposals (next week) +- [x] CZI update/plan +- [x] webpage updates + +### PRs +- [x] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 +- [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 + + +### Notes + +#### Webpage + +https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom + +- would build with html+css + - rely on plain css, not bootstrap + - expect to be primaliry editing news and anoucements + - aim to make the html clear enough to have big "EDIT HERE" flag + - Content Mangement System may be useful, but probaly overkill + - also make it easy to edit highlighted plot + +#### CZI updates +- Draft: https://github.com/matplotlib/CZI_2021-03_mpl + - 15% of Caswell, 100% of Elliot, travel +- Melissa Mendonça is leading the DEI call + - mpl + scipy + numpy + pandas + + +#### 3.4 status + - merged last PR, need to do manual backport + - tag tonight! + +#### Image interpolation +- https://github.com/matplotlib/matplotlib/pull/18487 (docs of current state) +- https://github.com/matplotlib/matplotlib/pull/18782 (add flag to do interplotion after RGBA mapping) +- Doing resampling before color mapping or after is mixing data manipulations and visual operations +- There are applications for both +- Could we get away with an example? +- @tacaswell and @QWhXj01mSwmTjk5kN1H_qQ (aka Eric) agree too much, defer this discussion until all positions are fully represented :) diff --git a/meeting_notes/2021/2021_04_apr.md b/meeting_notes/2021/2021_04_apr.md new file mode 100644 index 0000000..5828718 --- /dev/null +++ b/meeting_notes/2021/2021_04_apr.md @@ -0,0 +1,375 @@ +# Matplotlib Weekly Meeting: April 2021 + +###### tags: `2021 dev call` + +--- + +# April 1, 2021 + +## Agenda + +### Old Business +- [ ] Microsoft proposals +- [x] CZI Letter of Intent in +- [x] 3.4.1 released: Thanks! + +### New Business + +### Issues + +- [ ] listing registered cmaps https://github.com/matplotlib/matplotlib/issues/19842 + +### PRs + +- [ ] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 +- [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 + +## Notes + +### CZI: +- LOI in. Will hear late April +- DEI being led by numpy + +### 3.4.1 released +- thanks Elliott and Thomas +- needs tests, and maybe re-review/refactor + +### Microsoft +- $10k +- contract? genuine 3D capability proof of concept +- ipympl interaction? +- native javascript/htmlcanvas backend? +- widget protocol for ipympl? +- @tacaswell will reach out to Sylvain + +### Interactive editing + +While talking about the common user-ask for click-and-drag functionality to tweak plots. (Doing this opens up several cans of worms, and it was agreed is a bad idea overall). Instead: + +#### Tooltip for identifying objects post-plotting + +After ruling out interactive editing, we talked about instead giving the +user a hover-over tooltip that tells them the + +1. Type of the object (e.g. Tick, Line2D, etc), to allow them to look up docs +2. How the object was created (e.g. plt.boxplot, plt.errorbar, etc) to help them see what other options they have for creating the data, and what function's output they need to save to modify this object (so they can go back and change e.g. `plt.plot()` to `ln, = plt.plot()`). + a. Talked about co-opting objects' `label` field to save what function created it. + +--- + +# April 8, 2021 + +## Agenda + +### Old business +- [ ] GSOC: https://discourse.matplotlib.org/t/gsoc-21-extensions-to-pytest-mpl/21989/4 +- [ ] Scipy maintainers track, proposal due April 15th (https://samdbrice.medium.com/76acc8b5d534) +- [ ] Landing page update + +### New Business + +### PRs + +- [ ] Hi dpi images on website (@jklymak) https://github.com/matplotlib/matplotlib/pull/19899 +- [ ] (optional) changing the vertical axis in 3D plots https://github.com/matplotlib/matplotlib/pull/19873 + as proposed by @timhoffm in https://github.com/matplotlib/matplotlib/issues/19791#issuecomment-812714992 +- [ ] (if @timhoffm is there) API for specifying layout https://github.com/matplotlib/matplotlib/pull/19892 +- [ ] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 + + +## Notes + +### GSOC +- folks should submit proposal + +### Scipy Maintaners Track +- @story645 and @tacaswell will co-ordinate + + +### Microsoft +- Thomas working with Sylvain to work on ipympl. + +### Notes +* 2018-03/2020 synced at https://github.com/matplotlib/ProjectManagement + +### Hi-dpi + +- OK to work with sphinx-gallery on this... +- have a way to do this by using srcset which lets the browser pick high or low dpi images +- we are in favor of doing this (we should have nice looking plots in our docs as the plotting libary!) +- SVG has too many edge cases and concerns about performance to switch to it by deault. We tried this several years ago and it went badly (was reverted) + - @h1IxLDvDQ6alkgMzaANm6Q has a proof of principle that works, will work with sphinx-gallery folks to move the logic there. + + +### 3d Axes + +- change axes for which azimuth and elevation defined on. +- could reassign. User wants y to be "vertical". +- Need to assign azimuth zero on new axis (and sense of rotation) + +### Documentation of classes +- (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 +- inherited references get wrong: + - probably sphinx: https://github.com/sphinx-doc/sphinx/issues/6211 + - lot of work to fix? - source of docstring gets dropped... + - maybe hard-coded mapping in conf.py? +- can use fully qualified references... +- anchor link instead of type? + +--- + +# April 15, 2021 + +## Agenda + +### Old business +- [ ] Landing page +- [ ] Microsoft +- [x] GSOC (april 30th to NumFocus) + +### New Business + +- [x] matplotlib-contrib organization? + - i.e. https://github.com/sphinx-doc/sphinx versus https://github.com/sphinx-contrib/ + +### PRs and issues +- [ ] API-Decision: Setting ticks and ticklabels simultaneously + - `set_ticks(ticks, *, labels=None, ...) ` https://github.com/matplotlib/matplotlib/issues/18848#issuecomment-720154479 + - or accept dict / list of tuples as `ticks`. +- [x] Design-/Architecture decision: adding motion to help understand 3D information https://github.com/matplotlib/matplotlib/pull/19937 + - The general idea is good + - How do we want to implement that + - Prosed solution seems a bit ad-hoc (own "event loop" started from activation event) + - Alternative: Use existing animation framework (t.b.d.: Interaction with user actions?) + - Alternatives ...? +- [ ] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 +- [ ] https://github.com/matplotlib/matplotlib/issues/19956: user add fig to pyplot. + +## Notes: + +### Codecov had security issue +- @tacaswell working on fixing/checking +- contact him directly if you have concerns or would like to help +- @tacaswell has contacted potentially affected individuals +- some keys are obsolete: @tacaswell and @QuLogic are going to remove +- should rotate deploy keys as good practice (@tacaswell) + +### GSOC +- applicants by two weeks: + - @QuLogic: geopandas proposal + - he needs to get registered with NumFocus (@story645) + - Jounni interested in helping w/ review for @tacaswell @pXw4hSgTQF2--OciPYwa1w (Antony): text/latex + - pytest project? + - no applicant + +### 3-D Motion +- function to pass axes to... +- mplot3d top level function. +- 3rd party package... + +### mpl-contrib @jklymak +- sphinx has a sphinx-contrib github org +- do we want to make matplotlib-contrib + - list of user developed extensions (rather than mixing in with our) + - not promise to do any code work, but just manage the org +- external page + - matplotlib.org/3pp.html hosted in external repo + - external contrib page, configured via yml/markdown + - needs instructions on how to add + - something like https://djangopackages.org/ + - https://pyviz.org/tools.html + - https://docs.pytest.org/en/latest/reference/plugin_list.html + - pr template + - link, badges, short description + - like pyviz? + - need template + - need a new repo for this. + - @jklymak will look into this + - gallery view? +- new third part package page: + - not two! + + +### pyplot/mplgui separation + +- good idea +- can be back compatible +- maybe even a standalone package to start + +--- + +# April 22, 2021 + +## Agenda + +### Old business +- [ ] Microsoft @tacaswell + +### New business +- [ ] website: + - [x] Landing page + - [x] third-party page: https://github.com/matplotlib/mpl-third-party + - [x] cookie cutter project: https://github.com/matplotlib/matplotlib-extension-cookiecutter + - [x] responsive images: https://github.com/sphinx-gallery/sphinx-gallery/pull/808 + - are we Ok using sphinx-galler dev for our dev docs? That will help test the new directive. + - [x] pydata theme? https://github.com/matplotlib/matplotlib/pull/19731 + + +### PRs + +- [x] API-Decision: Setting ticks and ticklabels simultaneously + - `set_ticks(ticks, *, labels=None, ...) ` https://github.com/matplotlib/matplotlib/issues/18848#issuecomment-720154479 + - or accept dict / list of tuples as `ticks`. +- [x] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 +- [ ] mpl-gui: https://github.com/tacaswell/mpl-gui + - what is scope of a "gui" versus a `plt.figure` replacement? +- [ ] `layout='constrained/tight'` for figure https://github.com/matplotlib/matplotlib/pull/19892 + - instead of `figure(constrained_layout=True)` + - `layout` base class as possible argument as well as string (for passing options). +- [ ] third party categories: https://github.com/matplotlib/mpl-third-party/pull/31 + +## Notes + +### Microsoft + +- Sylvain and Tom still talking + +### CZI: +- full round 4 +- May 19th +- approx 1000 words + +### Webpage +- landing page this w/e +- pydata theme: + - working on it + - css issues : i.e. property tables. + - put in separate file, + - push up to pydata? +- cookie cutter, and mpl-third-party... + +### CapJoin etc +- https://github.com/matplotlib/matplotlib/issues/19839 +- change from code reference to private link +- https://github.com/matplotlib/matplotlib/issues/19850 +- python core changed how deprecation warnings are emitted +- doc build always grabs the property: + - doc builds should ignore? +- our deprecation warning is not a deprecation warning + - sphinx doesn't recognize as a deprecation warning +- either we fix be deriving from deprecation warning + - or we ask sphinx to filter on other warnings +- MatplotlibDeprecation should subclass Deprecation since it has stabilized +- user scripts +- `python -Wa script.py` +- `FutureWarning` always seen... + +### Ticks: set_ticks and set_ticklabels +- can be undefined if we don't pair lables with ticks +- positions first so add option to set label +- `pyplot` already accepts as pair +- not on axis: + - dict? +- step 1: make consistent with `pyplot` + - maybe not second kwonly +- step 2: maybe add a dict +- step 3: discourage set_ticklabel + - need a fomal method to "discourage" + - remove from examples / gallary +- document `set_ticks(axis.get_ticks(), newlabels)` + +--- + +# April 29, 2021 + +## Agenda + +### New business + +- [x] time for 3.4.2? +- [x] do we want to bump minimum version of pillow? +- [ ] CZI writing +- [ ] MSFT contract +- [ ] GSOC slot requests due to numfocus April 31 + +### PRs + +- [x] https://github.com/matplotlib/matplotlib/pull/14463 Are secondary axises full axes? +- [x] Changing styling of widgets [#19265](https://github.com/matplotlib/matplotlib/pull/19265) + +## Notes + +### pillow +- There are a lot of CVEs against pillow, we pin pretty old version as a floor +- do we want to raise our floor to be newer? +- No + - its is not our job to force good sceurity on users + - third-party packagers can bump the minimum they have + - users should be responsible for their own security! + + +### 3.4.2 + - planning to do next week, been about a month from last bug-fix + - tag anything you want to have in as release-critical + +### CZI proposal +- no progress, @tacaswell will work on this after call + +### MSFT / quantstack + - no progress, on @tacaswell + +### secondary_axis + +- currently implemented with a "real" Axes that we draw with no size in one dimension +- if we expand it, then we can plot to it! + - this means you can plot data in either units +- could provide confusion between the twinx/twiny + - twinx / twiny are for shared on one axis, completely unconnected between the two axes in the other axes + - this would be shared in one axes and locked with a different scale in the other direction +- not clear what the non-secondary axis does + - but can definitily make them share +- concern about how scales are shared + - if you make the primary axis to log, what happens to the other? + - both should have same scale! +- concern about draw-order + - discussion about how to merge the children from the guest-Axes + +Things we think we want: + + - to have secondary / twin for coupled / uncoupled non-shared axis + - "twin" is free + - "secondary" is locked together with functional transforms + - want to seamlessly share color cycle etc + - want unified legend between both + - want to handle N-parasite versions of both + - want to be able to "plot to any of them" + - need to think through how mouse hits work + - need to think about how to fold in ParasiteAxes as well + +### mid-scale project ideas + +- replacement of numpy array by subplots with custom class that is indexable + - remove the need for squeeze + - allow bulk-application + - handle (1, N), (N, 1) as both 1D + - need careful thought about where to match/diverge from numpy arary + - add label based indexing! + - maybe join version with subplot_mosaic + +- add ways inject per-axes projections to subplot_mosaic + - make a variation of subplot_mosaic that returns specs + - pass in map of kwargs to subplot_mosaic + - add helpers to destroy / re-create with new projection + - add "add your self" method to subplotspec + - free function? + - method on Figure + +### slider UI changes +- on one hand, these is a visual change and thus an API change +- but UIs are inherently variable and should be excluded from the policy we have for data conveying elements. + +### tight layout bug +- deprecate miss-matched layout grids and point users to contrained layout + +### polar PRs +- @pXw4hSgTQF2--OciPYwa1w adding some of the recent polar PRs to 3.4.2 diff --git a/meeting_notes/2021/2021_05_may.md b/meeting_notes/2021/2021_05_may.md new file mode 100644 index 0000000..d5c0201 --- /dev/null +++ b/meeting_notes/2021/2021_05_may.md @@ -0,0 +1,307 @@ +# Matplotlib Weekly Meeting: May 2021 + +###### tags: `2021 dev call` + +--- + +# May 6, 2021 + +## Agenda + +### Old Business + +- [ ] front page +- [ ] MSFT contract +- [ ] GSOC follow up? + +### New Business + +- [ ] Attract developer leads for niche corners? + - How to get word out? + - pandas, tables, toolbar2... + +### PRs/Issues + +- [ ] Move 3rd party package page: + - https://github.com/matplotlib/matplotlib/pull/20026 +- [ ] Fix colorbar axes: + - https://github.com/matplotlib/matplotlib/pull/20054 + +## Notes + +### GSOC +- slotlist submitted; request for students put in. We only asked for one slot. + +### Getting niche leads +- Table: blume exists as alternate + - table is probably broken fundamentally + - not remove but state in docs that weakly supported and point to blume + - ideally would need some refactor. +- pandas: + - pandas and units (dates) + - NASA grant should come in about July? +- general + - not just scope to users on call + - put at top of API that it needs a developer... +- toolbarmanager + - @anntzer thinks has fundamental issues + - design may not allow easy third-party implimentation + - SoC idea... + - needs to be in backends, so can't be third-party + - should people just write a real GUI? + +### 3rd party package page + +- new design +- redirect issues: change old page to a redirect.. + +### colorbar axes +- inner is inset of outer, inner is the colorbar +- outer position is set by parent + - user passes in cax -> coarce it to type colorbaraxes + - makes cax the outer axes + - replace user cax object w/ colorbaraxes object + - delete all contents in cax, redirect to other axes + - put note "this is destroyed", use cb.ax.outer + - some attrs get dispatched to inner, others to outer + - no reference left +- problem: otherwise cax reference is destroyed + +--- + +# May 13, 2021 + +## Agenda + +### Old Business +- [ ] Attract developer leads for niche corners? + * revist: what if they want to change the API? + * https://github.com/matplotlib/matplotlib/pull/20220 +- [ ] Front page? +- [x] MSFT contract + +### New business +- [ ] CFP for NumFocus small dev grant + * Deadline: June 4, 2021 +- [x] State of PRs: + - 303 total + - 64 `draft:false` PRs, + - 29 `author:anntzer`, 35 `-author:anntzer` + - 11 with one positive review + +### PRs/issues +- [x] backport mosaic parameter rename https://github.com/matplotlib/matplotlib/pull/20150 + - it was done + + +## Notes: + +### MSFT money +- ipympl needs work (nbagg) + - close figure in backend like nbagg + - ipympl figure can pop up a bunch of times + - sylvain C... pay his consulting company to do some of this work... +- @tacaswell going to write statement of work and start contract process + +### CZI and CZI DEI due 19th. + +### Mission statement and niche developers +- @tacaswell is working on a mission statement. + - https://github.com/matplotlib/matplotlib/pull/20220 + - backwards compatibility part of mission statement + - domain specific? + +### PR status + +### CircleCi +- Numfocus small grant? Probably too small! +- @QULogic write and ask what to get higher concurrency... + +--- + +# May 20, 2021 + +## Agenda + +### Old Business +- [ ] Front page? +- [ ] CFP for NumFOCUS small dev grant + +### New Business + +- [ ] CZI submitted +- [ ] State of PRs (20 May) + - 296 open + - 33 Merges, 11 new PRs + - 51 `draft:false` + - 30 `author:anntzer`, 21 `-author:anntzer` + - 20 with one approved review + - `is:pr is:open draft:false review:approved` + - 12 anntzer + +### PRs/issues + +- [x] [#19419](https://github.com/matplotlib/matplotlib/issues/19419) Switch setuptools-scm version scheme to `release-branch-semver`? +- [x] https://github.com/matplotlib/matplotlib/pull/20237 QuadMesh: Does this need a deprecation to make kwarg only? + +## Notes + +### New org members +- Greg Lucas +- Richard Sheridan +- @tacaswell will develop a procedure for new org members + +### CZI +- submitted, ours and EDI; +- Matthias B: enfold docs into ipython terminal is a related proposal + - @anntzer has related project + - make crosslinks work in repl to correct version of libraries + - https://pypi.org/project/papyri/ +- End of July (also NASA) + +### state of the PRs + - Numbers are better than last week + - discussion about how to prioritize PRs from proflic contributors + - have core contributors limit them selves to 5 non-draft PRs at once + - concern that we are losing PRs from new contributors who fall off the top of the GH queue + - improved labeling has helpd a bit to whittle down on "tasks lists" + - skimage has a rotating weeking community manager + nice weekly summary script + - https://github.com/scikit-image/scikit-image/issues/5169 + - also filter based on what if it has a linked issue + - filtering by draft is really helpful, but we should also keep "needs XYZ" labels + - `linked:issue` a useful key as well. + - do we want to seperate open-ended vs PR review meetings? + - no, mixed meetings work better for us + - schedule ad-hoc meetings to dig into technically complex PRs? + - no, make our standing meeting longer as needed, and have a cut off on non-technical review wokr + - first PR from new cont is a problem because some GA cannot run... + - maybe flag those issues with a label (via bot on new PR) + +### version tag + +- [#19419](https://github.com/matplotlib/matplotlib/issues/19419) +- astropy would like a better tag mechanism +- master tree version include `dev`? +- want to be able to compare `dev` > `stable` +- is it a "dev" release? +- https://www.python.org/dev/peps/pep-0440/ + - 0.9 + - 1.0.dev1 + - 1.0.dev2 + - 1.0.dev3 + - 1.0.dev4 + - 1.0c1 + - 1.0c2 + - 1.0 + - 1.0.post1 + - 1.1.dev1 + - current state: + - master : 3.4.2.post825+g303873fc65 + - v3.4.x : 3.4.2+16.gdcfc7a17a2 + - possible: + - master: 3.5.0.dev820+g6768ef8c4c.d20210520 + - v3.4.x: 3.4.3.dev4+g97f47ba6d8.d20210520 (if we remove 'v' prefix in branch name) +- simplify merging up the maintenance branches? +- don't prefix "v" in branch names + +### QuadMesh +- https://github.com/matplotlib/matplotlib/pull/20237 +- Does this need a deprecation to make kwarg only? +- @anntzer has a way to make one-cycle deprecation (maybe just make kwarg only if too complicated) + +--- + +# May 27, 2021 + +## Agenda + +### Old Business +- [x] Front page @tacaswell +- [x] CFP MSFT money @tacaswell +- [x] Small dev grant: + - @QuLogic CircleCI increased concurrency? + +### New Business +- [x] Make a cycler release? +- [x] Joining Scientific Python Ecosystem Coordination (SPEC) as a Core Project - https://scientific-python.org/specs/core-projects/ +- [ ] PRs: + - 266 PRs + - `is:pr is:open draft:false` 19 + - 6 with one review (maybe 4 actionable) +- [x] introductions + +### PRs: +- [ ] Quick Survey: What do you consider as the primary quantity in QuadMesh (and thus should get the (M, N) shape)? The vertices or the quadrilaterals? (The other quantity will have shape (M-1, N-1) or (M+1, N+1), respectively) +- [ ] Quick Survey: Should we canonically enumerate `ax` from 0 or from 1? i.e. + `fig, (ax1, ax2) = plt.subplots()` + or + `fig, (ax0, ax1) = plt.subplots()` +- [ ] https://github.com/matplotlib/matplotlib/pull/19556 + - Allow the func argument in legend + - a bit complicated, but already in a complicated part of code. +- [ ] @greglucas + - [ ] https://github.com/matplotlib/matplotlib/pull/19553 Norm callbacks + - [ ] https://github.com/matplotlib/matplotlib/pull/19515 pan/zoom colorbars change norms? + +## Notes + +### Introductions +- Richard Sheridan: Duke University... +- Greg Lucas: U. Colorado Sattelite + +### QT6 support: +- should go in because of rebase issues + +### MSFT: +- QuantStack to work on lab integration (issue #16 ipympl) +- there is a strategy to fix. + +### Small dev grant/ CircleCI concurrency +- form filled out, and will follow up... + +### Cycler release? +- pytest not working (soon) with cycler... +- some API roughness for 1.0? +- sharable cycler? +- needs license file? One is added when sdist is made. +- @QuLogic release or CI? May need Pypi keys +- is defacto tested in Matplotlib so CI issues not critical + +### Front page +- need to propagate commit rights + - added to main developer group + +### SPEC: scientific python +- matplotlib is a core project? +- agree to follow most of their guidelines +- python maintenance windows etc. +- perhaps umbrella for larger grants +- formalize cohesion +- Numfocus not interested in governance or technical issues + - Numfocus a bigger umbrella +- formal signoff + +### QuadMesh MxN means? +- MxN is `C`, x and Y: M x N for gouraud and nearets. For flat X, Y: M+1 x N+1 + +### (ax1, ax2) vs (ax0, ax1) + +`(ax0, ax1)` + +### pan/zoom colorbars change norms? +* useful but zoom is a confusing choice +* using mousewheel/alternative UI elements +* zooming color is like zooming x/y? +* make it clear that you're moving the ticks, dynamic range/recolor +* use zoom/pan button? +* long discussion about how to interpert the color bar + * on one hand we can think of the color bar as a image that is in an axes + * we can then think about zooming in on it like we do with any other image + * allows you to "clip" the color range shown in the color bar without clipping the range of colors actually mapped + * this is an unreleased feature that @tacaswell has concerns about + * on the other hand, think of the color bar as more akin to the ticks + * the range of norm <-> the [0, 1] of axis normalized units + * colors <-> ticks + * the color bar should _always_ show the full range of colors and zooming / panning on the colorbar should be tied to changing vmin/vmax (just like panning/zooming on the "normal" axis changes xmin/xmax and ymin/ymax) +* @anntzer points to https://github.com/anntzer/mplinorm +* consensus that the UI needs to be tweaked diff --git a/meeting_notes/2021/2021_06_jun.md b/meeting_notes/2021/2021_06_jun.md new file mode 100644 index 0000000..3de7142 --- /dev/null +++ b/meeting_notes/2021/2021_06_jun.md @@ -0,0 +1,295 @@ +# Matplotlib Weekly Meeting: June 2021 + +###### tags: `2021 dev call` + +--- + +# June 3, 2021 + +## Agenda + +### Old Business + +### New Business + +- [ ] PRs: + - `is:pr is:open`: 275 + - `is:pr is:open draft:false`: ~~26~~ 30 (~~8~~ 12 @anntzer) +- [x] SDG + - circleCI vs pydata sphinx theme with Joris ([proposal text](https://docs.google.com/document/d/1dKegGkOIAnJvh_c6a7DoYgTzHiSMYc-PXnYR02lur8E/edit)) + - https://gitter.im/matplotlib/matplotlib?at=60b9227345c2185a5e0769f1 + +### PRs +- [ ] change log: https://github.com/matplotlib/matplotlib/pull/20132 + https://59749-1385122-gh.circle-artifacts.com/0/doc/build/html/users/release_notes.html +- [ ] font-related docs (https://github.com/matplotlib/matplotlib/pull/20293, https://github.com/matplotlib/matplotlib/pull/20346) +- [ ] unit default limits (https://github.com/matplotlib/matplotlib/pull/20340) + - overlapping concepts: + - `scale`: based on `transform`, sets tick `locator` and formatter; + - `units`: sets `locator` and formatter, but not usually scale! + - `locator` has "nonsingular"; `units` have "default_limits" +- [ ] Norm, mappable, colorbar callbacks + - mappable has a callback to colorbar, but only one + - https://github.com/matplotlib/matplotlib/pull/19553 wants to add a callback on the norm back to mappable +- [ ] TextBox should render mathtext? https://github.com/matplotlib/matplotlib/issues/20266 + +## Notes + +### ipympl deliverables +- drafted and about to be submitted as a contract proposal + +1. Close ipypml#16 by ensuring that saved notebooks include a static version of + the rendered figure. (critical) +2. Make the close button embed a static version of the figure in the notebook. + This will have to be reconciled with multiple views of the same Figure + existing. (critical) +3. Reconcile if possible and document the user experience between inline, ipympl, + and desktop GUI backends. (nice to have) +4. Finish the refactor of the %matplotlib magic to be pluggable. (nice to have) +5. Improve the toolbar / UI of the figure in the browser. (stretch) +6. Migrate typescript and modernize the front end code. (stretch) + +### J. Gill (@swfiua) + +- blume maintainer and original `table` implimentor +- suggests leaving table out until it settles down +- link to `blume` from table docs? There is one... at top of module... + +### Small development grant (Numfocus) +- sphinx pydata theme +- circle? +- **throw in with pydata sphinx grant** + +### Changelog page: +- should be easier on release... +- @QuLogic has on todo list. + +### Font-related docs +- a bit obscure. +- modelled after css + - font: font-family, generic name which cascades... + - font-families are css + - @aitik will be doing per-glyph fallback, so having him document this would be helpful. + - drop the non-reccomended section +- usetex has a Latex-compatible systme + - just classic fonts currently because using `latex` + - \textsf, \textrm etc. handle family + - needs a \usepackage + - maybe thats all we should provide? + +### TextBox and mathtext: +- should be a literal string... + +--- + +# June 10, 2021 + +## Agenda + +### Old business +- [ ] ipympl contract? + +### New business +- PRs: + - `is:pr is:open`: 278 + - `is:pr is:open draft:false`: 27 + - `is:pr is:open draft:false -author:anntzer`: 18 + +### PRs +- [x] plot type docs https://github.com/matplotlib/matplotlib/pull/20292 include signatures in titles? (quick) +- [x] https://github.com/matplotlib/matplotlib/pull/18966 (Remove modality of figure options). Anyone volunteer to shepherd this? +- [x] colorbar fix https://github.com/matplotlib/matplotlib/pull/20327 (master critical) +- [x] https://github.com/matplotlib/matplotlib/pull/19466 + - do we want aritfact upload? If not, close? +- [ ] Status of `layout` kwarg to `subplots` etc? https://github.com/matplotlib/matplotlib/pull/19892 + - https://github.com/matplotlib/matplotlib/pull/19892#issuecomment-824432381 for layoutengine baseclass discussion + +## Notes + +### Ipympl +- plt.show() cell return (need to docuemnt semantics) +- discussions w/ Matthias + +### Plot Types +- https://github.com/matplotlib/matplotlib/pull/20292 +- simplify signatures, but keep them.. remove brackets, and keep args that are most common. + +### Modality of figure options +- https://github.com/matplotlib/matplotlib/pull/18966 +- document change of behaviour, but remove API change doc +- break back compat... make non-modal + +### Artefact upload after testing +- https://github.com/matplotlib/matplotlib/pull/19466 +- artefacts are probably too large +- we are already uploading images of failure +- @QuLogic PR... + +### Qt6 PR +- https://github.com/matplotlib/matplotlib/pull/19255 +- need to make sure names are re-exported +- @QuLogic will double check, @tacaswell will push + +### layout engine +- layout is fine +- constrained layout: rename? Adaptive? +- ping @lukebd... + +### get rid of colorbarbase +- https://github.com/matplotlib/matplotlib/pull/20354 + +### GSOC +- glyph fallback... +- font subsetting: #18991 +- documenting fonts first + - Type3 easy to subset + - Type42 ttf, very hard to subset, binary + - need third party libs +- font fallback + - go through family list until glyph found. + - need to move to harfbuzz + - pango does fallbacks but hard on windows +- unification different backends for ustex + - psfrag in ps + - pdf/svg extract glyphs from dvi: Want to use this for everything + - pdftopng and embed + +--- + +# June 17, 2021 + +## Agenda + +### Old business +- [ ] website? +- [ ] ipympl contract? + +### New Business +- PRs: + - `is:pr is:open `: 267 + - `is:pr is:open draft:false` : 22 + - `is:pr is:open draft:false -author:anntzer` : 11 + - (It'd be cool to track these graphically; I don't think that google search API lets you go back in time?) + +### PRs +- [ ] https://github.com/matplotlib/matplotlib/pull/20113 Span selector? +- [ ] https://github.com/matplotlib/matplotlib/pull/20358 functools partial in animation: why? +- [ ] https://github.com/matplotlib/matplotlib/pull/19515 colorbar zoom and pan: + - maybe impliment in plot tool? (i.e. https://github.com/matplotlib/matplotlib/issues/20433) + - How much of a GUI do we want the main plot window to be? + - How many tools do we want hanging off the main plot window? +- [ ] https://github.com/matplotlib/matplotlib/pull/20229 Constrained layout self-contained + - no more state on each figure and gridspec + - drawtime calculations (but colorbars need to know that CL will be used :frowning: ) +- [ ] Default limits: units, scales, Locators + - https://github.com/matplotlib/matplotlib/pull/20340 + + +## Notes + +- website in progres, ipympl in progress + +### https://github.com/matplotlib/matplotlib/pull/20113 + +- uses substantial number of properties. OK for widgets? +- @tacaswell will look and comment. + +### https://github.com/matplotlib/matplotlib/pull/20358 + +- layer on top of animation function use partial instead. +- useful if reusing an already-created function that needs kwargs + +### https://github.com/matplotlib/matplotlib/pull/19515 colorbar zoom and pan: + +- can make colorbar a picker - with existing API +- make a kwarg? or option? +- better interface is plan + +### https://github.com/matplotlib/matplotlib/pull/20229 Constrained layout self-contained +- need to add timings + +### https://github.com/matplotlib/matplotlib/pull/20340 +- default limits +- AxisInfo probably needs to go away... +- set scale: sets locators and formatters (and transform) +- dispatch by type for unit handling... + - add a do-nothing converter to float... + - lock units... +- make easier to do units explicitly.. +- maybe part of the transform stack. Units first thing? + +--- + +# June 24, 2021 + +## Agenda + +### Old Business +- [ ] website + - new theme merged + - brochure + +### New Business +- tidelift + - we are now at $146/mo + - @ey3AIr8wSl2d1PPfOb9K1w (Elliot) agreed to sign the paper work +- CDR surve results + - https://docs.google.com/presentation/d/1MwQ3XeFfrrL6G805QaI92Yl0a_FHCH4cgI1yTH0jXHk/edit#slide=id.g6534896c11d6780b_92 +- issues beta: + - https://github.blog/2021-06-23-introducing-new-github-issues/ + - needs admin to enroll +- PRs: + - `is:pr is:open `: 268 + - `is:pr is:open draft:false` : 24 + - `is:pr is:open draft:false -author:anntzer` : 17 + +### PRs +- [ ] + +## Notes + +### numpy 1.20 issues + +- Fixed failing test by correcting vmin clipping +- mutating masks still a problem (change in 1.20) + +### webpage + +- new theme merged +- tim adding some things already +- `/stable/index.html` should be some sort of guide to the docs; `/index.html` should be brochure page. + - solves tension in home page between sales and reference + - numpy.org/doc/stable versus numpy.org/ +- divio docs org: https://documentation.divio.com/ +- ![](https://i.imgur.com/wxAo0ik.png) +- Make proper index site. + - https://github.com/matplotlib/matplotlib/issues/19388 + +### tidelift +- $146/mo; +- covers discourse hosting ($10/mo) +- other subscriptions? + - CI, storage +- relies on depedency tree? proprietary algorithm; pandas numpy getting signficiant funds from this +- has a maintenance burden + +### docbuild +- moving to GHA? to get around concurrency +- @QuLogic needs to follow up with Circle about pricing + +### Contributor survey +- initial survey processed. + +### type hints +- stubs as seprate files? +- long run if it becomes universal +- numpy just started 1.21.0 +- separate package of stubs? + - needs synchronizing + - if impatient we may run it into matplotlib... +- may pull into mainline. + +## PRs + +### colorbr again (sorry) +- https://github.com/matplotlib/matplotlib/pull/20501 diff --git a/meeting_notes/2021/2021_07_jul.md b/meeting_notes/2021/2021_07_jul.md new file mode 100644 index 0000000..e6b31d9 --- /dev/null +++ b/meeting_notes/2021/2021_07_jul.md @@ -0,0 +1,357 @@ +# Matplotlib Weekly Meeting: July 2021 + +###### tags: `2021 dev call` + +--- + +# July 1, 2021 + +## Agenda + +### Old Business +- [ ] website + - brochure +- issues beta + +### New Business +- new social media/community person - Peter + +- Content width of pydata-sphinx-theme is only 749.167px. Previously, we had 919px. Reducing that in the new theme will cause many figures to be rescaled and thus look blurry. We have + - `figsize=(8`: 43 + - `figsize=(9`: 16 + - `figsize=(1x`: 22 + + Options: + - Make pydata-sphinx-theme wider + - Resize the affected figures + - Do nothing + + +- PRs: + - `is:pr is:open `: 277 + - `is:pr is:open draft:false` : 35 + - `is:pr is:open draft:false -author:anntzer` : 25 + +### PRs +- [ ] [#20557:](https://github.com/matplotlib/matplotlib/issues/20557) Have [Source] in api docs link to github +- [ ] [3pp:#71](https://github.com/matplotlib/mpl-third-party/issues/71) make an external resources page in the same style as the third party page/repo + - motivated by request to add python graph gallery to mpl homepage + - https://matplotlib.org/stable/resources/index.html +- [ ] Renaming `span_stays` to `interactive` in #20113 is not a reasonable API change (see https://github.com/matplotlib/matplotlib/pull/20113#discussion_r661819516). Do we want to roll back or move forward to a better name? + +## Notes + +### github: +- $1000/month from AmEx (some sort of amalgamated software bundles corporately sponsored) +- threshold for mention on website(~ 1.0 FTE?) + +### New social member: P. Smith +- social media: https://hackmd.io/@matplotlib/HkkVGQTtU + +### isues beta +- forms beta? also new API for organizing issues +- registered for organizing +- need to register for forms beta + - put in a PR with the new form? + +### sphinx data theme narrower +- examples need to be resized somehow; some examples being downsampled. +- ask them to make it at least 7.5" (its just a touch below right now) +- https://github.com/pydata/pydata-sphinx-theme/issues/427 + +### source in API docs link to github +- doesnt' work for offline use +- how prevalent? +- build option to build locally as well? +- docs packages? +- switch to links to github by default with a switch... + +### resources page +- separate page on PP3 repo +- need to weed out old resources on resource page +- old page: https://matplotlib.org/stable/resources/index.html +- will need some curration for trivial tutorials +- aggregate +- maybe need a yml to have structured data (time, subject) + +### renaming span_selector + +--- + +# July 8, 2021 + +## Agenda + +### Old Business +- [ ] website + - brochure +- [ ] CI concurrency + +### New business + +- PR status: + - `is:pr is:open` 272 + - `is:pr is:open draft:false` 22 + - `is:pr is:open draft:false -author:anntzer` 14 + +## PRs and Issues +- [x] *very* slow doc builds pydata-sphinx-theme + - https://github.com/pydata/pydata-sphinx-theme/issues/381 + - low Circle concurrency @QuLogic? + - attempt to fix: https://github.com/matplotlib/matplotlib/pull/20596 +- [x] figbox deprecation - [#19938](https://github.com/matplotlib/matplotlib/issues/19938) + - https://github.com/matplotlib/matplotlib/issues/19982 + + +## Notes + +### slow Circle CI +- detect circle don't build hi dpi. +- CIRCLE_CI? +- setup time. +- @QuLogic trying to set up meeting w/ Circle folks and @tacaswell +- reduce # of circle jobs... @QuLogic + +### figbox deprecation +- @jklymak will investigate + +### 3.4.3 +- close to tag for SciPy. +- 3.5 not particularly close +- 3.5: Fedora tag mid August + +### 3.5 try a "Project" to rank PRs +- track major-ish changes not small fixes +- not Release critical + +--- + +# July 15, 2021 + +## Agenda +- CI update +- https://github.com/matplotlib/matplotlib/pull/20649 +- [ ] end of meeting: hannah scipy practice talk (12? minutes) + - https://hackmd.io/@story645/scipy2021mpl + +## Notes + +### colour filter conversions +- discussion of colour conversion + + +### do we want to soup-up and advertise `obj.set()` more? + +- pro: less typing +- con: some set_XYZ take more than one arg and can not fit that into kwargs + +Some discussion of the fuction `pyplot.setp` that is a hold-over of MATLAB heritage. +Probably should just leave it alone. + +Probably need to keep both interfaces, one-shot `set` aimed at use cases who are +using us as an application and the `set_XYZ` for when we are being used internal +to a third-party library. + +We have deep mixing of high and low level APIs through the libary and through out +the examples. + +Need to write a tutorial on `obj.set` explaining when to use one or the other + +### CI update + +- had a "who are you" meeting with CircleCI this week +- scheduled a meeting with billing to sort out actual needs +- other things in "performance plan" that might help, but not clear if they would actually help su +- consider looking at using DO for hosting these artifacts, have 7minute upload of docs! + +### + +--- + +# July 22, 2021 + +## Agenda + +### Old busines +- [ ] CI concurrency +- [ ] front page for website (this is 3.5 critical) + +### New Business +- PR Status + - `is:pr is:open `: 276 + - `is:pr is:open draft:false` : 20 + - `is:pr is:open draft:false -author:anntzer` : 13 + +### PRs and issues + +- [3.4.3 release](https://github.com/matplotlib/matplotlib/milestone/64) +- 3.5 goals: https://github.com/matplotlib/matplotlib/projects/14 +- https://github.com/matplotlib/matplotlib/pull/18782 Image intepolation + - name of kwarg? + - Doc PR? +- https://github.com/matplotlib/matplotlib/pull/20518 PGF sketch_params? +- https://github.com/matplotlib/matplotlib/pull/20706 latex underscores? +- https://github.com/matplotlib/matplotlib/pull/20549 API name? + +## Notes + +### Front page +- needs to be set up for 3.5 +- @tacaswell will work on brochure this weekend after next (this is top level index.html) +- need to simplify the /3.5.0/index.html + - strip out front matter ? + ![](https://i.imgur.com/b4tdsLv.png) +- direct to document types + - reference + - explanation + - tutorials + - how tos +- https://hackmd.io/HYCHlmH7SdarZWkvVucF-g?both#webpage +- @jklymak will open an issue + +### Circle CI +- extra concurrency +- parallel builds +- 400-500k credits a month. + - slightly over their open-source limit + - 2 virtual CPUs + - 15$/25k credits +- order $350/month + - 80 concurrent + - faster VMs? 8 cores +- revert new style PR and see how quick Circle is? + +### streamplot issue +https://github.com/matplotlib/matplotlib/pull/19619 + +- issue in computing error in integration logic +- bug from 2012 + +### interp data or RGBA +- https://github.com/matplotlib/matplotlib/pull/18782 +- `interp_stage`, `interp_space` +- `interpolation_stage` + +### underscores in math mode +- https://github.com/matplotlib/matplotlib/pull/20706 +- why are underscores not allowed? Because it interferes with references in LaTeX +- maybe just include lines instead of whole underscore.sty +- needs a check that `underscore.sty` hasn't been called by user in custom header. +- just include underscore.sty and assume users have it. Don't vendor. Check if it has already been imported. +- document require underscore.sty +- debian packaging: + - https://packages.debian.org/buster/texlive-latex-base (not in) + - https://packages.debian.org/buster/texlive-latex-recommended (in) + +--- + +# July 29, 2021 + +## Agenda + +### Old Business +- new front page (done, but bare) +- CI: faster (collapse navigation and dont optimize pngs) +- underscore PR almosyt in + +### New Business + +- PR Status: + - `is:pr created:>2021-07-21 draft:false`: 30 Opened, 19 merged + - `is:pr merged:>2021-07-21`: 27 + - `is:pr is:open `: 281 + - `is:pr is:open draft:false` : 26 + - `is:pr is:open draft:false -author:anntzer` : 18 + +### PRs and issues +- https://github.com/matplotlib/matplotlib/projects/14 + - PyQt6, GTK4: Need to be finished + - RGBA interp: needs review +- Add Figure parameter layout https://github.com/matplotlib/matplotlib/pull/19892 + - needs a name: https://github.com/matplotlib/matplotlib/pull/19892#issuecomment-877851463 +- CL: set up at draw time only https://github.com/matplotlib/matplotlib/pull/20229 + - merge with one review? +- Fonts PRs: + - do these have a critical mass of reviewers? +- widget PRs + - critical mass of reviewers? +- mpl_toolkit PRs + - merge with one review? + +## Notes + +-------------------------------- +- new docs index + -in but folks should iterate +- circle + - is now faster by a [insert here] amount +- Elliot's doing a great job keeping the PRs moving +- Font things + - Jouni, Frank, Anthony & Aetik managing it + - lots of turnaround, most issues are fixed + - discussion happening in https://gitter.im/matplotlib/GSOC + +- New organization member + - Frank, german physics PhD student + +### 3.5 stuff +- pyqt6: Tom & Anthony working on that + - skipping on tests not working properly + - backend should be working/testable +- gtk4: Elliot is finishing it up +- RGBA interpolation: needs review, last open PR off draft queue +- `layout` kwarg: + - lets third parties name/create their own layouts + - specific or more open to extensions? + - specific: `spacing` in name, implies shifting some space around + - broader: implies layout manager handles more than whitespace + - default layout optimizer? if no, people will want a short default + - middle ground of `packing`? + - comes from TK + - runs at draw time, w/ draw time event hook? + - tight_layout all happens at draw time + - constrained_layout - mixed b/c of colorbars (won't use gridspec colorbars) + - currently needs to build a tree, amended to 20229 + - don't want this to be a general draw time hook, but should be an action on the figure + - other libraries: + - tk: packing + - matlab: tile spacing and tiledlayout + - qt: layout, relative_sizing + - bokeh: layout, sizing_mode + - plotly: layout + - ggplot/patchwork: https://patchwork.data-imaginist.com/articles/guides/layout.html + - boxes (layout) + packing (spacing) + - `layout` is the closest to current names + - pandas uses it for (row, col) + - maybe suggest to pandas to collapse layout=(row, col), subplots=bool to subplots=(row,col)? + - discourage tight/constrained_layout in docs, not getting rid of it + - __decision__: use `layout` as kwarg +- new website template + - needs search bar on docs landing page (blocker) + - https://matplotlib.org/devdocs/ + - no navigation on landing page (maybe seperate template) + - all the left hand side (like cheat sheets) can go on brochure site + - needs version # + - gallery needs some help + - drop too narrow & images are decentered + - maybe a custom sphinx gallery thing? + - docs are running a dev version of sg + - maybe too much white space + - edit titles to be shorter + - wider thumbnails + - tweak gallery CSS for 3.5 + - Jody will open an issue +- #20229: constrained layout at draw: merge w/ just Anthony review + +- 3.5 timeline: beta by mid august + +### discuss for 3.6 +- colormap registry: + - Tim needs to finish/cleanup + - making cmaps available via import matplotlib (slows down) + - when loading pyplot, you've loaded CM +- change top level import away from plt + - seperates gui management from plotting/artists/etc + - pyplot: spins up gui, pyplot interface, convenience functions + - convieniance (.subplots, cmaps, etc) should move to different top level + - facilitates cleaner distinction between pyplot and OO interface diff --git a/meeting_notes/2021/2021_08_aug.md b/meeting_notes/2021/2021_08_aug.md new file mode 100644 index 0000000..57d3bed --- /dev/null +++ b/meeting_notes/2021/2021_08_aug.md @@ -0,0 +1,257 @@ +# Matplotlib Weekly Meeting: August 2021 + +###### tags: `2021 dev call` + +--- + +# August 5, 2021 + +## Agenda + +### Old Business + + +### New Business +- cross Numfocus projects user forum +- donation from Junolabs? +- PR Status: + - `is:pr created:>2021-07-21 draft:false`: 17 Opened, 13 closed + - `is:pr merged:>2021-07-21`: 20 + - `is:pr is:open `: 280 + - `is:pr is:open draft:false` : 32 + - `is:pr is:open draft:false -author:anntzer` : 23 + +### PRs and issues + + +## Notes + +### forum for numfocus projects +- cross-project forum for discussion of intersecting problems. +- one monolithic place for users to ask for help. +- move our discourse there? +- Hannah let them know we are in favour, theoretically. + +### subfigures and dpi + +- dpi could be because not being passed down correctly. + +### constrained_layout at draw + +- @QuLogic will consider. + + +### colorbar work +- https://github.com/matplotlib/matplotlib/pull/19553 +- callback or weakrefs to the a list of colorbars... +- current behavior: + - ScalerMabble.set_clim() + - sets values on norms, + - change callback: notifies listeners that it's changed (draw, caches, etc) + - doesn't happen when you change norm, but passing in data does trigger SM.set_clim chain + - forward propagating happens in .set_clim, can also update the vmin/vmax norm passed into SM directly +- change in PR: + - adds change callback to norm so it doesn't need to be in set_clim + - benefit is listner gets moved to Norm +- suggestions: + - add tests to ensure that callback chain is correct + +https://github.com/matplotlib/matplotlib/pull/19515 +- should changing the min/max on the colorbar induce a change on the norms vmin/vmax + - if zoom on region, grab the x,y as your x/y lower limits, would autorelim the scale + - removed the ability to do that on contour sets + - in cbar init, set interactive on the axes depending on the mappable & the norm + - discrete norms don't have zoom +- still same zoom controls/behavior on axes +- colorbar ticks/labels (data) stay same but colors can be moved around + + +### add set_XYZ kwargs to FigureBase, SubFigure, Figure +- https://github.com/matplotlib/matplotlib/pull/20115 +- important change is adds **kwargs to `def __init__(self, **kwargs):` +- what is the scope of set? + - goes through every set_* in whatever artists it is being applied to + - set documentation rewrite looks for all .set_* methods too +- sidenote: is set rather than properties b/c many attributes have multiple properties + - ex: title has string, fontproperties, location, etc + +--- + +# August 12, 2021 + +## Agenda + +### Old Business + +### New Business +* Small Dev Grant, $5000, due September 3, 2021 + +### PRs and issues + +- https://github.com/matplotlib/matplotlib/pull/20518 +- https://github.com/matplotlib/matplotlib/pull/20603 +- https://github.com/matplotlib/matplotlib/pull/20611 +- Semantics of `ax.cla` + +## Notes + +### Ipympl +- draft statment of work to Sylvain Corlay + +### Small dev grant +- $5k numfocus... +- previous: macmini access +- 1000 words total (750 what, 400 why) + +### 20518: pgf sketch params +- pgf and non pgf scaling of wiggles should ballpark look the same + +### 20611: spanselector +- rectangleselector used to give the click and release points + - now tells the extents of rectangle - (upper right, lower left?) + - encapsulated as mouse event + - fixed to go back to start/end, but for interactive breaks if you want location + - rectangleselector shouldn't care about order of creation, just size + position +- options: + - change docs: always get how rectangle looks but not where user clicked + - two events: one is location, second is how rectangle was effected +- close w/o merging +- #9608: + - needs to either be closed or a comment on what's the actionable next step + - actual fix might be new feature: vectorselector widget? + - grabbers on ends of vector + - order cares about start/stop + - zoom provides keyboard short cuts to only go in x or y + - fix docs & treat as feature request + + +### ax.cla +- init: axes cleared when created +- not defined what it does when clearing an axes + - what is a pristine axes? + - does clearing go back to creation (including projections/kwargs) (clear all) + - projection is part of classes + - maybe recreate w/ it's kwargs? + - w/o kwarg about clearing to remove recursiveness + - how do changes to rcparam factor in? + - clear w/ rcparams as they are at call time/context + - is it just remove artists/data? (clear children) + - does that propagate down to ticks/how? + - everything is stored on the axes object (in axis children) + - end up forgetting shared axes + - label contents or also styling? +- Tom: go back down to what was passed into init + - what does this mean when styling like facecolor is passed in? +- change names/add + - reset/reinit: go back to new object w/params + - kill children/relim/clear data: remove child artists + +--- + +# August 19, 2021 + +* Meeting canceled due to low attendance +* informal PR review session for 3.5 PRs + +--- + +# August 26, 2021 + +## Agenda + +### Old Business + - ipympl contract is moving, target start of Sept 1! + +### New Business +- "inner" index page re-organization https://github.com/matplotlib/matplotlib/pull/20867 +- "outer" index content https://github.com/matplotlib/mpl-brochure-site/pull/2 + - what to put in the big gray box? + - What to put on the otherside of the binder link? + - Should we check-in with the highlighted projects and get their feedback on their description? + - where to point the row of big links to (only user guide currently seems off to me)? + - + +### PRs and issues + +#### 3.5 relevant + +- Should the new colormap registry be experimental? https://github.com/matplotlib/matplotlib/pull/18503#issuecomment-898873054 +- Naming of the new method `fig.draw_no_output()` https://github.com/matplotlib/matplotlib/issues/20001#issuecomment-825445132 +- Change in contour return type https://github.com/matplotlib/matplotlib/issues/20906 +- Instability in where boxplot artists are https://github.com/matplotlib/matplotlib/issues/20895 + + +## Notes +### 3.5 relevant +- colormap registry as experimental? + - pro: gives us a chance to tweak the API as we see its use + - con: would have to back out a bunch of docs + - conclusion: will add note that this might be changed +- consider adopting a sklearn style "turn the experimental stuff on" helper functions (more general) + - https://scikit-learn.org/stable/modules/classes.html#module-sklearn.experimental +- do we want to add `plt.colormaps` which provides access to the registry + - can probably never deprecate `plt.get_cmap` + - is it worth providing 2 ways `plt.get_cmap(name)` vs `plt.colormaps[name]` + - already have a version of this duality in `plt.rcParams[]` and `plt.rc()` + - do we want to delay to 3.6? + - pro delay: delay exposing new stuff out + - con delay: there is no API freedom here, might as well do it now +- `draw_no_output` vs `compose` + - `draw` -> walks tree + renders + - suggestions: `draw_no_render` or `draw_without_render` + - alt is `fig.canvas.draw()` + - consensus: `draw_without_rendering` +- change return type contour + - needs API note + - backcompat shims? LineCollection->PathCollection + - add a get_segments function that raises warning/error + - add a LineCollection keyword argument to change the return type? + - allows a longer deprecation cycle for downstream libraries + + - consensus: API note, revisit backshim if needed + +- box plot return instability + - previously + - box plot always went to artists (as Line2D) + - now can show up in patches list if using `patch_artist` keyword + - transition path + - remember the `patch_artist` keyword to direct traffic + - keep it in both? + - on artists can warn if adding a special artist, but plan is to consolidate to `add_artist` + - consensus: + - check that there is an API note that things added to artists may appear in special artist type list + +### website +- inner index + - https://63094-1385122-gh.circle-artifacts.com/0/doc/build/html/index.html + +- We have 4 types, 3 of them are 'top level', explanation is burried a layer deep +- FAQ should be scattered to the ~winds~ other sections +- top level in contents + - usage + - plot types + - tutorials + - gallery + - explanation + - how-to + - API + - external learning resources + - back matter + - ~contributing~ (change to Development maybe?) + - release notes +- top bar + - plot types + - ~gallery~ examples + - tutorials + - reference + - usage guide + - develop/contributing + - release notes (maybe) +- inner index and inner pages should have same top bar +- rename "back matter" to "project info" + +- Reference section + - dedent, drop extra tool_ktis, rename API Reference -> "complete docs" + - re-work underestanding to point to "advnaced and intermediate tutorials" + +- home page diff --git a/meeting_notes/2021/2021_09_sep.md b/meeting_notes/2021/2021_09_sep.md new file mode 100644 index 0000000..4cfb70d --- /dev/null +++ b/meeting_notes/2021/2021_09_sep.md @@ -0,0 +1,241 @@ +# Matplotlib Weekly Meeting: September 2021 + +###### tags: `2021 dev call` + +--- + +# September 2, 2021 + +### New business +* 3.5.0b1 aftermath + + + +* ipympl contract signed + +## Notes +### update on docs +* Caswell did not make suffient progress, but should be possible, will continue to work on + +### 3.5.0b1 fallout + - starting to do dependent builds on koschei (fedora) + - most issues posted to gitter, big things are seaborn issues + - cartopy issues + - more fallout from changing the order of the artists + - used to be stable zorder sort based on what sub-list they were in + - now stable sort based on order added + - unfortunately contour and coastlines are same z-order and if you add coastlines first, then the render order is switched in 3.5 + - maybe fixable on the cartopy side by changing default z-order to depend on line vs filled + - 3 or 4 packages that fail, but their upstreams have fixed themselves! + - discussed proposal to add small (multiples of 1e-7) to zorder passed + - can adjust the z-order on the way in + - could add z-bias to the classe + - could just make clear in the docs + - could just warn if order has changed + - core of the problem is we used to to z-sorting on (z-order, type, added-order), now it is only (z-order, added-order) + - this change fixes (very old) bug in errorbar when caps/lines had different relative z-order + - seems hard to both warn / give back compat in cases when this breaks a user and not when it fixes the user (like errorbar) + +Approximatly old order: +``` + def get_children(self): + # docstring inherited. + return [ + *self.collections, + *self.patches, + *self.lines, + *self.texts, + *self.artists, + *self.spines.values(), + *self._get_axis_list(), + self.title, self._left_title, self._right_title, + *self.tables, + *self.images, + *self.child_axes, + *([self.legend_] if self.legend_ is not None else []), + self.patch, + ] + +``` +https://github.com/matplotlib/matplotlib/issues/1622 + +- + +**consensus** : + - get cartopy release out + - Accept the breakage which is really a fix, but make sure it is well documented + +--- + +# September 9, 2021 + +### New business + +* Student contributors: + * https://github.com/matplotlib/matplotlib/issues/20923 + +* docoverhaul (documentation: overhaul) tag + * for documentation issues/prs that are major revisions of existing docs + * pro: differentitates from small documentation issues + * https://github.com/Pylons/pyramid/issues?q=is%3Aissue+is%3Aopen+label%3Adocoverhaul + +* blog author/community participant guidelines + * does spamming github get your contributions revoked? no new contributions/any consequences + +* specified cursive font family isn't available on CI + * https://github.com/matplotlib/matplotlib/pull/20945#issuecomment-909731013 + +## PRs and issues + +* Raise warning and downsample if data given to _image.resample is too large + Do we want to downsample or simply refuse data that is too large? + https://github.com/matplotlib/matplotlib/pull/19368#issuecomment-915011674 ff. + + +## Notes +### Student contributors + - no one has time and is jumping at taking this on + - the requested work overlaps greatly with the CZI DEI CEL job description + - respond to them with + - would like to defer answering to after CEL starts + - ask about their timelines + - suggest that familiarity with using Matplotlib as a user very very helpful to contributing + +### docoverhaul tag +- sure +- also use this tag to say "needs 2 reviews" + +### CoC violations by blog/third party + +- case by case + - spammy PRs -> just block + - serious behaviour issues -> remove their blog posts +- as always handle with compassion / empathy and response that fits the infraction + +### Issues with pgf fonts +- the docs suggest in multiple places that setting `rcParams['font.serif'] = []` will cause pgf to fallback to the default latex serif font, but the code is currently falling back to dejavu sans in this case +- @anntzer is running an auto bisect + + +### image resample +- downsample - agg accepts 2**15, if someone passes higher **warn** and downsample + +### 21015: https://github.com/matplotlib/matplotlib/pull/21015 +- rcparams.copy returns plain dict including deprecated ones, +- when they restore, mpl emits working +- instead copy will return a new rcparams instance +- don't need to emit new warnings on update +- concern: rely on validators w/ sideeffects + - date.formatter which globally sets default formatter + - validators need to know if they're working on installed or other rcparams + - when an rcparam is set, the validitor can/does set global state + - validators should only be validators + - shouldn't have side effects, + - should be allowed to convert values + - changing state should be a different function + - dictionary of sideeffects/call backs +- conclusion: + - remove side effects from validators + - change .copy behavior to return instance, skip warning and revalidate + +--- + +# September 16, 2021 + +### Old Business +- 3.5 release (waiting on docs?) + + +### New Business +- PRs: + - 283 open + - `is:pr is:open draft:false`: 38 +- Were selected for NASA roses + +### PRs and issues +- https://github.com/matplotlib/matplotlib/pull/20990 was accidentally merged with a single review; consider whether a second reviewer wants to request post-merge changes + + +## Notes + +### 3.5 + - waiting on cartopy (@greglucas will release tomorrow!) + - @qulogic has a few more fixes coming + - waiting on docs on mpl side + - did PR reviews + +--- + +# September 23, 2021 + +### New Business + +- 3.5 open PRs + - https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+draft%3Afalse+milestone%3Av3.5.0 + +## Notes +### 3.5 +- 3.5 open issues -> move to 3.6 +- RC tagged maybe by end of week +- 21126: Deprecation of stem fmt parameters + - left note asking Tim how he wants this resolved + - 19343: left to Elliott +- 20945: needs one line removed by PR author +- 20740: GSOC: failing ubuntu test-> pitched to 3.6 + - font distribution error: missing/broken noto + +--- + +# September 30, 2021 + +### Old Business +- Hacktoberfest participation + +### New Business +- v3.5 status? +- pydata global sprint + - The conference will take place (online) during the weekend of 28 to 30 October 2021 + +### PRs and Issues + +- [Layout Engine](https://github.com/matplotlib/matplotlib/pull/20426) (3.6) +- use Pillow for image resampling instead of Agg (3.6)? [#21231](https://github.com/matplotlib/matplotlib/issues/21231) + - how to deal with missing filters? + + +## Notes + +### Hacktoberfest +- https://hacktoberfest.digitalocean.com +- yes contribute: +- we need to label issues (after acceptance) as "hacktoberfest" +- https://hacktoberfest.digitalocean.com/resources/maintainers +- merged or close... +- label on repository (done) + +### Pydata global +- @tacaswell going +- sprints....on weekend, at least caswell will cover +- let @tacaswell know if you can help + +### 3.5: +- RC close +- few doc PRs +- [#20907](https://github.com/matplotlib/matplotlib/issues/20907), [#21212](https://github.com/matplotlib/matplotlib/issues/21212) +- + +### Layout engine + +- makes the layout engine pluggable +- refactors our layouts to be plugins + +### switch to pillow for resampling +- [#21231](https://github.com/matplotlib/matplotlib/issues/21231) +- pillow already has resampling logic for 32bit floats with no limits! +- set_resampler (per AxesImage) + +### Nasa grant +- 6-8 weeks, can pay someone at that point. +- need job ad up.. +- person would (likely) need to be based in US... (citizen or green card) + - please get edits to job description by Monday to send in for comment diff --git a/meeting_notes/2021/2021_10_oct.md b/meeting_notes/2021/2021_10_oct.md new file mode 100644 index 0000000..4f78793 --- /dev/null +++ b/meeting_notes/2021/2021_10_oct.md @@ -0,0 +1,197 @@ +# Matplotlib Weekly Meeting: October 2021 + +###### tags: `2021 dev call` + +--- + +# October 7, 2021 + +### Old Business +- Hacktoberfest: Note guidelines for overlapping PRs +- 3.5rc01 released + +### New Business +- PRs: + - 279 open + - `is:pr is:open draft:false`: 34 + - 54 closed in last week + +### PRs and Issues + +#### Website +- Front page work? +- [Proposed further re-org](https://github.com/matplotlib/matplotlib/pull/21251) + - All (almost) rst under `user/` + +#### Other +- [scatter etc accept None in list](https://github.com/matplotlib/matplotlib/pull/21270) + - probably not? +- [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) +- [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) + - locator is idisyncratic (though author points out one could easily use symloglocator) + - do we need another scale? +- [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) + - Maybe inset was not general enough a name? + + +## Notes + +### Front page + +- need new pictures + - uses the 4 we have as baseline +- need binder link +- some duplication? +- + +### Webpage reorg + +### None in list +- hard API to support; we dont' want to have to figure out everywhere. +- folks want None as default in iterables, but we want to evaluate early +- `None` on its own is troublesome enough +- User can supply a list and its not that hard to include the defaults +- Issues with `NaN` vs `None`. +- @tacaswell will write + +--- + +# October 14, 2021 + +## Agenda + +### New business + - let into GH issues beta: https://github.com/features/issues + - PRs + - 282 open + - `is:pr is:open draft:false`: 36 + - 19 merged + - Purge bad commits: (suggest at end) + - transition to `main` from `master` + - https://discourse.matplotlib.org/t/minor-re-writing-of-history-and-moving-from-master-to-main-for-default-branch/22354 + - cover pydata sprint + - Oct 28-30, @tacaswell may have un-avoidable personal conflicts + +### PRs and other + +- [Doc] Common style across sub-project docs: + - https://github.com/matplotlib/mpl-brochure-site/pull/7#issuecomment-938761713 + - could add `matplotlib/matplotlib-theme` for our projects to add as a doc dependency (as well as pydata theme). +- [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) + - locator is idisyncratic (though author points out one could easily use symloglocator) + - do we need another scale? +- [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) + - Maybe inset was not general enough a name? +- [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) + + + +## Notes + +- 3.5 ? + - line join bug... + - GTK4 dpi ratio https://github.com/matplotlib/matplotlib/pull/21212 + - docs issues +- Common style: + - @tacaswell will make a subproject +- inset_axes + - inset axes is fine, might have been better as something else (child_axes, dependent_axes) + - axes grid example should stay where it is. +- asinh + - good as remedy to existing symlog + - shoudl cross-link symlog to point to new scale if goes in. + - should have a decade-locator, probably just symlog locator + - Greg Lucas will comment +- cut bad commits: + - probably simple, but all existing PRs will need to trim the bad commits + - @Greg and @anntzer are going to investigate tech to flag bad commits... + - doc PRs, and do tomorrow. + +--- + +# October 21, 2021 + +## Agenda + +### New business +- master is now main and history rewrite +- PRs: + - non-draft: 48! + +### PRs + +- is mpl_data really something packages should be stripping? https://github.com/matplotlib/matplotlib/issues/21375 +- doc re-org: + - https://github.com/matplotlib/matplotlib/pull/21251 + - https://github.com/matplotlib/mpl-sphinx-theme + - https://github.com/matplotlib/mpl-third-party/pull/87 + - https://github.com/matplotlib/mpl-brochure-site/pull/11 + +## Notes + +- History rewrite + - seemed to work relatively well + - @tacaswell and @QuLogic manually informed PRs that were affected. + - `main` is now the important branch +- mpl-data status + - debian pulls this out into its own package + - + - already pull the fonts out + - do not put the files where we think they are, and patch our functions to look at their new location + - propose they use symlinks to put things back + - because they build the docs, have 2 versions of Matplotlib which is odd + - **consenus**: tell debian that mpl-data is now a required subdir + - @ey3AIr8wSl2d1PPfOb9K1w will write API note for down-stream packagers highlighting that matplotlibrc is now a read/parsed at run-time file (not just docs) +- docs re-org + - merged, may have more follow-ups for minor re-arrangements +- 3.5 + - waiting on numpy wheels (went up yesterday) + - one outstanding bug +- brochure site + - switched to bulding with sphinx + - use mpl-sphinx-theme +- landing site need binder + - maybe contract Nicolas Rougier? + - maybe history of average temperature + - sealevel record at a point + - hourly temperature data from airport? (https://docs.opendata.aws/noaa-ghcn-pds/readme.html https://www.ncei.noaa.gov/products/land-based-station/global-historical-climatology-network-daily) + - https://github.com/matplotlib/mpl-brochure-binder <- target repo + - Jody will do something quick-ish + +--- + +# October 28, 2021 + +## Agenda + +### Old business + +### New business +- 3.5.0: + - https://github.com/matplotlib/matplotlib/milestone/59 + - landing page: https://github.com/matplotlib/mpl-brochure-site + - https://matplotlib.org/stable/tutorials/provisional/mosaic.html still provisional? + - image rotator? + - "news" feed? +- PRs: + - 282 + - `is:pr is:open draft:false` : 43 + +### PRs +- https://github.com/matplotlib/matplotlib/pull/21426 + + +## Notes + +- mathtext parser: + - somehow broke on 3.5 backport, probably in pyparsing 3.0.0 -> 3.0.3 transition + - Tim Hoffman will look at the 3.5 backport. #21454 and revise to unbreak C. + - Action: we should test on pyparsing RCs as part of our bleeding edge build. + +- https://github.com/matplotlib/mpl-brochure-site/pull/21 + - binder: + - interactivity is laggy... + - startup slow. + - ACTION: talk to binder folks. @hannah + - Action: ask @dopplershift + - credits from microsoft or Amazon? diff --git a/meeting_notes/2021/2021_11_nov.md b/meeting_notes/2021/2021_11_nov.md new file mode 100644 index 0000000..23c0582 --- /dev/null +++ b/meeting_notes/2021/2021_11_nov.md @@ -0,0 +1,140 @@ +# Matplotlib Weekly Meeting: November 2021 + +###### tags: `2021 dev call` + +--- + +# November 4, 2021 + +## Agenda + +### Old business + +- 3.5.0 + +### New business + +### PRs + +- https://github.com/matplotlib/matplotlib/pull/21381 + +--- + +# November 11, 2021 + +## Agenda + +### Old business + +- 3.5.0 + - docs? + - brochure site: https://matplotlib.org/mpl-brochure-site/ + - https://github.com/matplotlib/mpl-brochure-site/pull/21 + - needs news or https://github.com/matplotlib/mpl-brochure-site/pull/17 + - needs to be linked to https://matplotlib.org + - PRs? + - https://github.com/matplotlib/matplotlib/pull/21317 + - https://github.com/matplotlib/matplotlib/pull/21501 + +### New business + +- Prs; 54 non-draft + +### PRs + +- https://github.com/matplotlib/matplotlib/pull/21381 + +## Notes + +### 3.5: +- largely docs; release notes +- astropy problem #21569 + - needs some thought about the architecture of how gridlines get put onto non-linear projections.. + - Issue: cartopy axis artists on new projections + - ticks as well could benefit from global approach to ticks and grids. + - possibly in scope for NASA grant. +- https://github.com/matplotlib/matplotlib/pull/21317 + - can keep it pinned to old pyparsing until they settle down. Probably 3.5.1? + - probably works... +- https://github.com/matplotlib/matplotlib/issues/21509 + - shortcuts have names that can clash with valid eps commands... + +--- + +# November 18, 2021 + +## Agenda + +### Old business + +- 3.5.0: Released! Thanks @tacaswell and @Qulogic! + +### New business + +- PRs: + - 60 non-draft +- NASA update? + - Organizing ideas for grants + +### PRs and Issues for discussion +- ENH: Layout engine https://github.com/matplotlib/matplotlib/pull/20426 +- Pre-commit: https://github.com/matplotlib/matplotlib/pull/21583 + +## Notes + +### time +- agree we should move with DST + - need to pick if we follow US or Europe (1 week off) + +### webpage +#### landing page + - @dorafc will take a look at typography, may need to push stuff up to mpl-sphinx-theme + +#### built docs + - left-hand navigation bar does not always do the right things + - maybe https://github.com/sphinx-gallery/sphinx-gallery/issues/855 + - https://github.com/matplotlib/matplotlib/pull/21667 simplifies side bars + - on some pages (like https://matplotlib.org/stable/devel/min_dep_policy.html#python-dependencies) the left/right side bars look good + - on some like https://matplotlib.org/stable/tutorials/index.html look bad +------------------------------------------------------------ + +#### NASA +- money not figured out yet +- draft job proposal to NASA + - authorized research to work in US + - foreign contracts OK for engineering +- RSE : mostly units, and data pipelinig +- https://hackmd.io/@matplotlib/HJIj1bjvY +- will also do bug triage etc +- 3 years + + +#### Pre-commit +- apply to code base to pass +- enable in CI? + - can do in github actions +- https://github.com/matplotlib/matplotlib/pull/21630 +- @GregLucas will follow up on PR. + +--- + +# November 25, 2021 + +## Agenda + +### New business +- NF maintainers summit next week + +### Issues and PRs +- pcolormesh remove grid deprecation: [#21723](https://github.com/matplotlib/matplotlib/issues/21723) +- Colorbar inherit from Axes? +- hexbin mincnt [#21381](https://github.com/matplotlib/matplotlib/pull/21381) + +## Notes +### pcolormesh +* grid goes beyond pcolormesh <- can't fix +* problem triggered by style +* consensus: change deprecationwarning to only occur if grid is explicitly + +### hexbin +* decide #21381, then discuss @anntzer's refactor diff --git a/meeting_notes/2021/2021_12_dec.md b/meeting_notes/2021/2021_12_dec.md new file mode 100644 index 0000000..fbd2916 --- /dev/null +++ b/meeting_notes/2021/2021_12_dec.md @@ -0,0 +1,223 @@ +# Matplotlib Weekly Meeting: December 2021 + +###### tags: `2021 dev call` + +--- + +# December 2, 2021 + +## Agenda + +### New Business + +- releases + - 3.5.1? + - 3.6 roadmap? + - release cadence? + +### Issues and PRs + +- Colorbar inherit from Axes? +- OO versus pyplot terminology: + - mpl_gui work: https://github.com/tacaswell/mpl-gui + - `mpl.figure`, `mpl.subplots` + - reasonable for 3.6? + +## Notes + +### mpl_gui + +- Need to keep hard references +- `show` triggers rendering to GUI +- but if done in function, the figure would go away. +- can we spin up more than one manager? + - be hard to make multiple ones interactive though because they each need to get passes + - can't just move the renderered image because they are sized +- https://tacaswell.github.io/mpl-gui/ +- ideally keep ability to "draw" so we can do get_tightlayout, particularly on text +- need to keep track of figures so figures in notebooks don't get garbage collected and lose their interactivity (if the user has named them all `fig` for instance.) + +--- + +# December 9, 2021 + +## Agenda + +### New Business + +- release: + - 3.5.1? + - release cadence + - 3.6 roadmap + - PDF docs? +- Can @anntzer redirect mplcairo general support to the main matplotlib forums? + +### Issues and PRs + + + +## Notes + +- https://github.com/tacaswell/mpl-gui + - folks should give it a try + - @tacaswell has goal of getting on pypi this month +- Discussion of what Napari is +- Introductions (new attendee!) + +### 3.5.1 + +- Good, need to fix units + +### release cadence +- currently about monthly for minor releases. +- maybe cutoff earlier +- downstream testing easier +- a little bit quicker? +- need to do nightly builds... + - not automated yet + - @tacaswell was working on that (PR from @ianhi + - https://github.com/matplotlib/matplotlib/pull/21637 +- commit to actually hit 6mo cadence +- start process earlier. + +### pdf docs +- we know people use it +- issues with too big images, mostly fixed now +- can not get numbers from either GA or cloudflare for usage +- PDF may be best size-wise for full off-line access +- downloading the full PDF + +### 3.6 roadmap +- 1st week may, so beginning of march feature freeze + branch +- mplcairo into main? + - qustion about support for OSX < 10.15 (gcc related issues) + - can we push up the minimum OSX up? + - need gcc 7 + - solve manylinux1 via static linking (and we are going to drop manylinux1 soon anyway) + - collisions with existing XYCairo backends? + - could de-conflict or just replace + - @QWhXj01mSwmTjk5kN1H_qQ wants plan to remove old cairo backends + - @qulogic will look into wheel constraints +- layout manager +- finish Aitik's font fallback work +- fraction viculum alignment + - concerns about both changing many images and the concerns about quality of images +- categorical mappables (@dstansby) + +### mplcairo into discourse +- yes + +--- + +# December 16, 2021 + +## Agenda + +### New Business + +### Issues and PRs +- 63 or so non-draft PRs! Please help review! +- [layout engine](https://github.com/matplotlib/matplotlib/pull/20426): + - dealing with conflicting colorbar layouts when changing layout engines midstream. + +## Notes +### dpi issues +- currently our cannonical coordinate system (what the Identity transform takes you to) is "pixels" +- "pixels" depends on DPI which in the world of high-DPI screens and variable save DPI +- proposal is to move to "pts" (or some sort of logical DPI) as the "cannonical" +- do final scaling at last possible time +- move 72 -> actual DPI scaling to canvas + - concerns about when we do rounding / snapping +- question is what to do about users are are now _intentionally_ using `Identity` transform +- scatter markers are currently scaled in square points +- virtual pixel / pt -> real pixels will be on canvas +- intial mpl work was targetting GUI tool kits that were very pixel foward + - pixels work well with hardware and xwindows +- post script / PDF / svg + - physical units + - all vector +- possible to have the internal units be :shrug: + - could have a knob +- but want to document as fixed for documentation purposes + - pts + - inches / 100 + - inches + - cm +- need to preserve + - strong support for physical units + - strong support for targetting explict pixel size +- possible fall out + - tests that check bounding boxes + - users that actually did want to set pixels + - may need to document to use the knob to fix it + - would likely fix a bunch of weird pdf bugs + - would have to sort out when image resampling happens + - would have to check when path simplification happens + - mixed mode may be fun? + - blitting will require some thought +- we puth the dpi ratio factor (for high-dpi) in the wrong place + - we put it as early as possible + - should have been done as late as possible (what is proposed here) +- discussion about labeling transforms with what their dest/target is + - type annotitons? + + +#### Actions +- change names +- move pixel ratio dpi change as late as possbile (in draw?) +- investigate how hard the internal virtual physical units would be +- investigate add source/test attributes to instances + +--- + +# December 23, 2021 + +## Agenda + +### New Business + +- Sponsor page? + +### Issues and PRs + +- `LogLocator` respecting `numticks` [#21177](https://github.com/matplotlib/matplotlib/pull/21177) +- LayoutEngine: + - API options for conflicting layouts (because of colorbars): https://github.com/matplotlib/matplotlib/pull/20426#issuecomment-998670237 + +## Notes + +### Sponsor Page +- logos +- https://numpy.org/neps/nep-0046-sponsorship-guidelines.html maybe as a guide. +- pretty high value for main page +- discussion about how to get more "donations" + - B-corp? (e.g. Athleta) + - linux weekly news: subscriptions ahead of time... +- TODO: read NEP and implement similar + +### Layout engine PR +- trying to put in an API for setting the engine rather than being baked in to Figure +- the way colorbars are handled is not consistent between tight layout and constrained layout + - figure needs to know what layout engine is being used so that color bars are made "Right" for that layout +- what if user wants to change engine? + - one extreme: set at init time, can not changed + - pro: simple + - con: bit less flexible than we tend to be + - allow to change if color bar is compatible (with levels of tracking ) + - pro: flexible + - con: complex + - just walking at set time not hard + - adapt existing colorbars on the fly if engine changed + - con: very complex! + - just let the user shoot them selves in the foot + - pro: simplest! + + +Other colorbar things: + - make everything `LocatableAxes` + - move colorbar logic to the Axes rather than the Figure + - maybe start fresh with this? + - axes can have more than 1 colorbar + - maybe attach to the mappable rather than the axes? + +- Make static properties instead of method. diff --git a/meeting_notes/2021/q1.md b/meeting_notes/2021/q1.md deleted file mode 100644 index a3a2d31..0000000 --- a/meeting_notes/2021/q1.md +++ /dev/null @@ -1,919 +0,0 @@ -# 2021 -###### tags: `dev call 2021` -Call co-ordinates: Thursdays @ 19:00 UTC 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) - -# Apr 8, 2021 - -## Agenda - -### Old business -- [ ] GSOC: https://discourse.matplotlib.org/t/gsoc-21-extensions-to-pytest-mpl/21989/4 -- [ ] Scipy maintainers track, proposal due April 15th (https://samdbrice.medium.com/76acc8b5d534) -- [ ] Landing page update - -### New Business - -### PRs - -- [ ] Hi dpi images on website (@jklymak) https://github.com/matplotlib/matplotlib/pull/19899 -- [ ] (optional) changing the vertical axis in 3D plots https://github.com/matplotlib/matplotlib/pull/19873 - as proposed by @timhoffm in https://github.com/matplotlib/matplotlib/issues/19791#issuecomment-812714992 -- [ ] (if @timhoffm is there) API for specifying layout https://github.com/matplotlib/matplotlib/pull/19892 -- [ ] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 - - -## Notes - - - ---------------------------------------------------------------------------------------- -# Apr 1, 2021 - -## Agenda - -### Old Business -- [ ] Microsoft proposals -- [x] CZI Letter of Intent in -- [x] 3.4.1 released: Thanks! - -### New Business - -### Issues - -- [ ] listing registered cmaps https://github.com/matplotlib/matplotlib/issues/19842 - -### PRs - -- [ ] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 -- [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 - -## Notes - -### CZI: -- LOI in. Will hear late April -- DEI being led by numpy - -### 3.4.1 released -- thanks Elliott and Thomas -- needs tests, and maybe re-review/refactor - -### Microsoft -- $10k -- contract? genuine 3D capability proof of concept -- ipympl interaction? -- native javascript/htmlcanvas backend? -- widget protocol for ipympl? -- @tacaswell will reach out to Sylvain - -### Interactive editing - -While talking about the common user-ask for click-and-drag functionality to tweak plots. (Doing this opens up several cans of worms, and it was agreed is a bad idea overall). Instead: - -#### Tooltip for identifying objects post-plotting - -After ruling out interactive editing, we talked about instead giving the -user a hover-over tooltip that tells them the - -1. Type of the object (e.g. Tick, Line2D, etc), to allow them to look up docs -2. How the object was created (e.g. plt.boxplot, plt.errorbar, etc) to help them see what other options they have for creating the data, and what function's output they need to save to modify this object (so they can go back and change e.g. `plt.plot()` to `ln, = plt.plot()`). - a. Talked about co-opting objects' `label` field to save what function created it. - - - ---------------------------------------------- - -# Mar 25 2021 - -## Agenda - -### Old business -- [ ] Microsoft proposals (next week) -- [x] CZI update/plan -- [x] webpage updates - -### PRs -- [x] Image interpolation: https://github.com/matplotlib/matplotlib/pull/18782 -- [ ] outside figure legends: https://github.com/matplotlib/matplotlib/pull/19743 - - -### Notes - -#### Webpage - -https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom - -- would build with html+css - - rely on plain css, not bootstrap - - expect to be primaliry editing news and anoucements - - aim to make the html clear enough to have big "EDIT HERE" flag - - Content Mangement System may be useful, but probaly overkill - - also make it easy to edit highlighted plot - -#### CZI updates -- Draft: https://github.com/matplotlib/CZI_2021-03_mpl - - 15% of Caswell, 100% of Elliot, travel -- Melissa Mendonça is leading the DEI call - - mpl + scipy + numpy + pandas - - -#### 3.4 status - - merged last PR, need to do manual backport - - tag tonight! - -#### Image interpolation -- https://github.com/matplotlib/matplotlib/pull/18487 (docs of current state) -- https://github.com/matplotlib/matplotlib/pull/18782 (add flag to do interplotion after RGBA mapping) -- Doing resampling before color mapping or after is mixing data manipulations and visual operations -- There are applications for both -- Could we get away with an example? -- @tacaswell and @QWhXj01mSwmTjk5kN1H_qQ (aka Eric) agree too much, defer this discussion until all positions are fully represented :) - ---------------------------------------------------------------------- - -# Mar 18 2021 - -## Agenda - -### Old Business - -- [ ] Microsoft proposals (next week) -- [x] Landing page wireframe @tacaswell -- [x] Theme work @tacaswell -- [x] GSOD: write Nicolas and/or Ben @tacaswell -- [ ] CZI update/plan - -### New Business -- [ ] public/community calendar? -- [ ] doc calls? - -### PRs - -- [ ] License - - [ ] https://github.com/matplotlib/matplotlib/pull/19704 is merged for 3.5. - Do we agree that this is correct, so that we can backport to 3.4? - - [ ] Do we still need to explicitly write down Copyright and License information - for Matplotlib < 1.3 in current docs? I'd like to strip that out and just reference - https://matplotlib.org/1.3.0/users/license.html from https://matplotlib.org/devdocs/users/license.html -- [ ] (not) change to new numpy random number generator API in docs for 3.5 - https://github.com/matplotlib/matplotlib/pull/19706#pullrequestreview-612661785 -- [ ] https://github.com/matplotlib/matplotlib/pull/13358 - apply this on perspective transform? - -## Notes - -### GSOD: -- thomas contacted Nicolas and Ben - -### Landing Page: - -* https://www.figma.com/proto/r72pulK4ADLXFGT0eDLHQI/Matplotlib-Brochure-Site?node-id=2:127&viewport=843,-1694,1&scaling=min-zoom -* old doc notes - - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV - - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing - - -### 3.4.0 -- Whats news written -- regressions? -- subplots_mosaic - - return axes in c-order - -### 19706 RNG -- push off until 3.6 - - ------------------------------------------------------------------------ -# Mar 13 2021 - -## Agenda - -### New Business - - - [x] "brochure site" / landing page (with guest Dora Caswell) - - [x] GSOD 2021 - March 26th org applications - - operate as a grant program. - - between US$5,000 and US$15,000 - - can hire multiple writers but need to budget for it - - https://developers.google.com/season-of-docs/docs - - [ ] Proposals for spending Microsoft - -### PRs - -#### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 -- colormap deprecation https://github.com/matplotlib/matplotlib/issues/19609 - -## Notes - -### Brochure site / landing page -- manage `index.html` separately from rest of docs. -- standalone webpage -- https://github.com/matplotlib/mpl-brochure-site -- banner management? -- maybe Dora work on front page... -- should top level have more pages - - Code of Conduct, governance -- current docs: new theme? - - https://github.com/pydata/pydata-sphinx-theme -- pull out contributing guide as wel?l - - not tied to releases so can change immediately -- wireframe @Dora and @tacaswell -- change theme @tacaswell - -### GSOD -- grant proposal -- not clear who is going to write / mentor this year -- we will not particpate this year -- Ben or Nicholas @tacaswell will write... - -### CZI -- yes apply -- EDI stream: "contributor in residence" maybe shared numfocus... - - transition PDF-type position - - overlapping projects; interface with other projects -- - -# Mar 4 2021 - -## Agenda - -### New Business - - - [x] CZI 4 Letter of intent due March 30 (2 yr cycle, 50K-200K/year) - - [x] CZI supplimental DEI LOI due March 30 - - [x] Caswell March Meeting talk practice talk next week (need date + time) - - [x] NumFOCUS “Contributor Diversification and Retention” Research Project kicked offx - - [x] CZI update: diss proposal https://github.com/story645/proposal/blob/main/draft/main.pdf - -### Issues -- [ ] https://github.com/matplotlib/matplotlib/issues/19609 - colormap modification deprecations -- [ ] Style files (or not) https://discourse.matplotlib.org/t/where-to-put-site-style-file/21895 - - -### PRs -#### 3.4.0 Issues: https://github.com/matplotlib/matplotlib/milestones/v3.4.0 -- [ ] callbacks stored on canvas/figure: https://github.com/matplotlib/matplotlib/pull/19611 -- [ ] Axes stack: https://github.com/matplotlib/matplotlib/pull/19625 -- [ ] Font threading: https://github.com/matplotlib/matplotlib/pull/19618 - - -## Notes: - -### CZI -- two-year grants vs one. Max per year smaller -- apply (round 4) - - on NCE to end of Mar - - slightly smaller - - second grant to Mar next year. - - actual start negotiable. Start 1 Mar 2022 - - 15% Thomas (BNL caps Thomas at 40%), Elliott -- Diversity proposal: - - same-scale $ - - jupyter dev in residence - - experience, career development versus deliverables - - combine with other projects - - interfaces between projects? - - March 30th letter of intent - - https://drive.google.com/file/d/1JlqZqGfM2-Jt-r8eTGg9W-Ad-15KEMhS/view?usp=sharing - - Thomas will chat with numfocus folks about possible interfaces - -### colormap mutability -- will look at it soon. -- 3.4.1 -- Plan: https://github.com/matplotlib/matplotlib/issues/16991 - - -### march meeting -abstract https://meetings.aps.org/Meeting/MAR21/Session/L61.5 - -> Data visualization is critical to understanding data in physics. Visualization is important in the early stages of understanding a measurement or a model and, later, in communicating it clearly. Physicists need to produce visualizations that fit their specific problem, often including multiple axes or novel plot types. They need tools that make common tasks like scatter and line plots easy and complex tasks like compound figures possible. - -> Matplotlib is the foundational data visualization library for the Scientific Python Ecosystem. It is used by working physicists, from high-profile projects like LIGO and the Event Horizon Telescope. to the day-to-day work of students, for interactive exploratory visualization and publication-ready figures. - -> This talk will highlight some of the key features of the library, focusing on examples of interactive multi-scale visualizations and tuning figures in preparation for publication. I will also briefly discuss our future plans to evolve the library to meet the future needs of our users. ------------------------------------------------------------------------ -# Feb 25 2021 - -## Agenda - -### New Business - - [ ] GSOD 2021 - March 26th org applications (deferred) - - [ ] Proposals for spending Microsoft (deferred) - - [x] bump min numpy to 1.17 for mpl 3.4 - - https://numpy.org/neps/nep-0029-deprecation_policy.html#drop-schedule - - we planned to release before drop date, but ended up delaying past the date (Jan 13, 2021) - -### PRs -- [ ] https://github.com/matplotlib/matplotlib/pull/14508 force_zorder -- [ ] https://github.com/matplotlib/matplotlib/issues/19544 Listed colormap and sets? - - https://github.com/matplotlib/matplotlib/issues/19574 similar in that changes broke some objects that used to work - -Not urgent, but needs discussion: -- [x] formatting style for classes/concepts in the docs: `` `.Figure` `` vs. Figure vs. figure - https://53849-1385122-gh.circle-artifacts.com/0/doc/build/html/devel/style_guide.html#terminology - https://github.com/matplotlib/matplotlib/pull/19183 -- [ ] https://github.com/matplotlib/matplotlib/pull/19482 backend registration -- [ ] https://github.com/matplotlib/matplotlib/pull/14913 python NonUniformImage -- [ ] https://github.com/matplotlib/matplotlib/pull/16931 better UI metadata - -## Notes - -### Webpage - -- front page make just html @tacaswell - - make a different landing page - - keep style? - - sphinx as well? or bare html/css -- flash page should be styled? - - add css styling to redirect pages... - -### Numpy 1.17 -- 3.4? -- hard runtime check versus building wheels -- are we testing 1.16? for 3.4 -- Don't bump runtime check and do bump wheels. Make sure we are testing 1.16 if we don't block. - - @QuLogic - -### 3d zorder -- https://github.com/matplotlib/matplotlib/pull/14508 --`computed_zorder` = True for normal compute, False for user-specified. - -### ducktyping arrays -- https://github.com/matplotlib/matplotlib/issues/19574 -- what ducktyping will we do? -- issue with hist and boxplot are issues... - - list or arrays - - tensorflow? scalars are itterable... -- sorting out ducktype - - iterables are special: `atleast_1d` -- lists, numpy, pandas, astropy, pint - - need mock object -- need a common base like - - https://data-apis.org/blog/array_api_standard_release/ - -### color issue - - @jklymak will work w/ seaborn to fix - -### Figure/figure/`Figure` -- "Figure" for "Matplotlib" figures. "figure" for general figures, and "``Figure``" when discussing the class. - --------------------------------------------------- -# Feb 18 2021 -## Agenda - -### New Business -- [ ] canonical website: https://matplotlib.org/stable - - -### PRs -- [ ] 3.4 final PRs - - [ ] restore creating new axes via plt.subplot with different kwargs [#19438](https://github.com/matplotlib/matplotlib/pull/19438) - - [x] Restore auto-adding Axes3D to their parent figure on init [#19496](https://github.com/matplotlib/matplotlib/pull/19496) - - [x] Sync 3D errorbar with 2D [#18436](https://github.com/matplotlib/matplotlib/pull/18436) - -## Notes - -### 3.4 PRs - -#### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) - - TODO: open an issue for missing test coverage... - - errorbar in 3D is a new feature for 3.4 - - discussion about how to handle case of both lolims and hilims set - - not clear that how we handle this in either 2D or 3D works correctly - - but this makes 2D and 3D consistent - - also concerns about how we do error bars in general - - TODO: issue with caps with rotation. (would need to not be a marker) - - TODO: remove caps from one test - -#### [#19438](https://github.com/matplotlib/matplotlib/pull/19438) -- @anntzer will do final review -- general heuristic OK - -#### - - - - ------------------------------------------------------- -# Feb 11 2021 - -## Agenda - -### Old Business - -- [ ] GSOC contact Jouni - font handling? @tacaswell (still waiting) - -### New business -- [ ] standing weekly/bi-weekly/monthly doc meetings? -- [x] Microsoft grant? - - -### PRs - -- [ ] Website (fix our search issues): - - Needs merge if OK: https://github.com/matplotlib/matplotlib/pull/19456 - - Needs to be run and merged: https://github.com/matplotlib/matplotlib.github.com/pull/49 -- [ ] Axes3d (3.4.0): - - New PR: https://github.com/matplotlib/matplotlib/pull/19496 - - Does it need deprecation warning? -- [ ] Axes re-use for `plt.subplot` (3.4.0): - - https://github.com/matplotlib/matplotlib/pull/19438 - -## Notes - -### Microsoft grant - - $1k per month. Think about what to do with it. - - $9k total after overhead. - - should be spendable immediately though - - For discussion next week. - -### GSOD - - Discuss next week. March 26 - -### Doc meeting -- standing meeting? Monthly. After GSOD -- Django org structure -- sphinx theme from scientific python... - - https://pydata-sphinx-theme.readthedocs.io/en/latest/ -- Reorganizing the site - - summit notes on site organization: https://paper.dropbox.com/doc/Doc-summit-notes--BE8hpgSX8n7VL0Y~zIJuFcD3Ag-rtYcADdgmKnD3ZDl4LqpV - - Dora's notes on website goals https://docs.google.com/document/d/1IyselHh79BY1O5rPiR66NiIQU2wUhn7moiHGXpchUYE/edit?usp=sharing - -### Website: - - - #19456 warn if try to overwrite before merge - - will run the html changes PR on github @QuLogic - -### axes reuse :tada: - -#### Case 1 - -Also see #10700 - -This should produce 2 polar plots with sin^2 in the top one and cos^2 in the bottom one. - -Correct in 2.1.2, 3.3.4, my PR, wrong on default branch - -```python -import matplotlib -matplotlib.use('tkagg') -import matplotlib.pyplot as plt -import numpy as np -th = np.linspace(0, 2*np.pi, 1024) - - -plt.figure() -plt.suptitle(matplotlib.__version__) - -plt.subplot(211) -plt.plot(th, np.sin(th)**2) -plt.subplot(211, polar=True) -plt.plot(th, np.sin(th)**2) - -plt.subplot(212, polar=True) -plt.plot(th, np.cos(th)**2) -plt.subplot(212) -plt.plot(th, np.cos(th)**2) - -plt.show() -``` - -#### case 2 - -This should produce two polar plots each showing sin^2 and cos^2 in blue and orange (C0, C1) - -Correct in 2.1.2, 3.3.4, my PR, wrong on default branch -```python -import matplotlib -matplotlib.use('tkagg') -import matplotlib.pyplot as plt -import numpy as np -th = np.linspace(0, 2*np.pi, 1024) - -plt.suptitle(matplotlib.__version__) -plt.subplot(121, projection='polar') -plt.plot(th, np.sin(th)**2) -plt.subplot(122, polar=True) -plt.plot(th, np.sin(th)**2) - -plt.subplot(121, polar=True) -plt.plot(th, np.cos(th)**2) -plt.subplot(122) -plt.plot(th, np.cos(th)**2) - -plt.show() - -``` - -#### case 3 - -In 2.1.2 and 3.3.4 this produces a 3D plot on top and 2D plot on the bottom - -on the current default branch this produces a 2D plot on top and a 3D plot on the bottom - -on the PR branch produces 2 3D plots - -```python -import matplotlib -matplotlib.use('tkagg') -import matplotlib.pyplot as plt -import mpl_toolkits.mplot3d - -plt.figure() -plt.suptitle(matplotlib.__version__) - -plt.subplot(211) -plt.subplot(211, projection='3d') - -plt.subplot(212, projection='3d') -plt.subplot(212) - -plt.show() - -``` -#### to do -* soft deprecate polar=true? -- proposed behavior - * if new_proj & new_kwarg is None, return old - ```python - plt.subplot(211, polar=True) - plt.subplot(211) - ``` - * if old_kwarg = new_kwarg & old_proj=new_proj, return old - ```python - plt.subplot(211, polar=True) - plt.subplot(211, polar=True) - ``` - ```python - plt.subplot(211, polar=True) - plt.subplot(211, projection='polar') - ``` - * if keyword or projection don't match, return new - * change 3D to match new behavior - ```python - plt.subplot(211, polar=True) - plt.subplot(211, projection='3d') - ``` -- 3D break - currently this behavior makes a new plot -```python -plt.subplots(111, projection='3D') -plt.subplots(111) -``` -* deprecate Axes3D adding itself ---------------------------------------------------------------------- -# Feb 4 2021 - -## Agenda - -### Old Business - -### New Business -- [x] psf scientific working group grant, $4000 for education/outreach - - https://pyfound.blogspot.com/2020/12/psf-scientific-working-group-announces.html - - feb 15 -- [x] geopandas has an mpl tie in GSOC project, is asking if mentoring help at least on a consult basis is available - - https://github.com/geopandas/geopandas/wiki/Google-Summer-of-Code-2021 - - https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ - -### Issues and PRs - -- [x] Info/announcement: [#19449](https://github.com/matplotlib/matplotlib/issues/19449) Adaptation of type documentation: - - Previous convention: `array-like (M, N)` - - New convention: `(M, N) array-like` and `(M, N) array-like of int` -- [x] Website redirects: - - scripts to fix canonicals, add banners, redirect toplevel - - `https://matplotlib.org/stable/` new top level. Discourage using version - - will try to use `reredirects` for new moves in docs -- [x] 3.4: https://github.com/matplotlib/matplotlib/issues/18939 - - how to handle `Axes3D(fig)` no longer automatically adding itself to a figure. - - https://github.com/matplotlib/matplotlib/pull/19413 -- [ ] 3.4.0: 34 outstanding PRs and issues: - - https://github.com/matplotlib/matplotlib/milestone/53 - - https://github.com/matplotlib/matplotlib/pull/18480 Needs a second look -## Notes - -### PSF outreach: -- no strong ideas, @bruno may have connections - -### GSOC: - - geopandas maye want some help on the GSOC; - - Elliott volunteered as tribute - - font-based GSOC @anntzer w @Aitik - - https://hackmd.io/@matplotlib -https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 - - caswell will be primary mentor, Antony will be around - - reach out to Jouni @tacaswell - -### Numfocus needs diversity in scientific computing committee members -- https://numfocus.org/programs/diversity-inclusion -- contact @story645 -- looking for non US board members in particular - - -### Info doc: -- `(M, N) array-like of int` -- typing discussion, but we will not be leading with types (numpy) -- - -### website update -- add /stable to URL -- on-going work to add re-directs and banner to old docs -- looking into adopting sphinx-reredirect https://pypi.org/project/sphinx-reredirects/ tomake moving docs less painful - -### AxesAdd3d -- process_projection needs to be fixed -- Thomas's changes mix in as well (same code) - -### #18480 -- @BrunoBeltran will review - - -### 19438: -- plt.subplot kwarg reuse issue -- - -### Explicit versus implicit - -- better than Object Oriented - -# 28 Jan 2021 - -## Agenda - -### Old business - -### New business -- [ ] 3.3.4 tagged! -- [ ] status of 3.4 -- [ ] NumFocus Annual Report Survey (maybe is steering council responsibility?) - * We would like to include three (3) applications to show how your project is being used currently. If you know of a specific user e.g. company, research institution or university please include. - * Please provide a short description of three (3) future or planned features/upgrades for your project. These would be things that you have outlined in your project roadmap and/or next steps for your project. - * One of the intentions of these one-pagers is to be shown to potential funders. Funders want to have a quick understanding of the needs of a project so they can see where there may be alignment with their mission and identify places where they may be able to provide support. Please describe three (3) project needs PLUS a high-level cost and/or "hours-to-complete" estimate. - -### Isues and PRs -- [ ] Website SEO - - now have a `/stable/` level - - upgrades of `robots.txt` and `sitemap.xml` - - need to fix canonical urls (pointing to `/3.3.3/` or root; nothing points to `/stable/` -- [ ] [3.4.0 outstanding PRs](https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.4.0) - -### Notes - -### Roadmap (annual report) - -- Matplotlib 4.0 -- opengl renderer - - @IanThomas interested in partial funding to do that. - - GUIs/windowing syste, - - webgl version - - some implimentations exist as proof of concept -- would likely need a new API for the renderers - - true 3d -- optimizations that break backcompatibility - - transformations pipeline especially @anntzer will add. -- matplotlib 3D (w/ current renderers) - - https://github.com/rougier/matplotlib-3d -- current CZI work - - functional overhaul of artist that breaks out data, visual converters like norm/scale, creating glyphs -- docs overhaul - - information architect please -- important uses of matplotlib - - https://matplotlib.org/matplotblog/posts/ipcc-sr15/ - - https://twitter.com/matplotlib/status/1354902116716978178 - -### 3.3.4 & 3.4 - -- now out -- if new feature move 3.5 (or 3.4 now) -- release critical: - - a couple of @tacaswell issues (edgecolors) - - non interactive backends... Qt stuff maybe 3.5? -- #19341: - -### gsoc -- https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ - - -# 21 Jan 2021 -* GSOC: - * due to numfocus by Jan 29 - * no mentor volunteers - anyone to ask personally? -* Scipy: - * tutorial: February 9, 2021 - * talk: February 16, 2021 -* CZI update Hannah - * end of meeting so folks can drop off -* webinar to Partnership for the Integration of Computation into Undergraduate Physics (PICUP)? - * https://www.compadre.org/PICUP/ - * sometime in March or April - -### PRs and issues - -- [x] [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius -- [x] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - - status of setuptools_scm adoption? What needs to be done/decided? -- [x] [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers - - TH: I believe I know what we should do. -- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review -- [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) - *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` - *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. - ``` - if isinstance(artist, Patch): - return add_patch(artist) - ``` -- [ ] Webpage: - - i.e. do a search on google for "matplotlib colorbar" yields multiple versions - - https://github.com/matplotlib/matplotlib.github.com/pull/49 - - https://github.com/matplotlib/matplotlib.github.com/pull/48 -- [ ] [#19255](https://github.com/matplotlib/matplotlib/issues/19255) Add "experimental" support for PyQt6/PySide6. - -## Notes - -### Pickradius: -- [#19039](https://github.com/matplotlib/matplotlib/issues/19039) picker/pickradius -- pickradius can be modified. Could also set by passing to picker (`set_picker(5)`). Issue is `True==1`, `False==0`. -- decouple, make `set_picker` on and take a radius... -- deprecate `set_pick_radius`? - -### SCM tools for setup -- for making dev versions. -- [#18971](https://github.com/matplotlib/matplotlib/pull/18971) -Decision: Make setuptools_scm an install_requires but only for dev installs (by dynamically manipulating install_requires in `setup.py` depending e.g. on checking the filesystem). In `__init__.py`, do generate the up-to-date version from setuptools_scm, but gate that behind a module-level `__getattr__` to avoid the import penalty. - - -### No fill markers -- [#17850](https://github.com/matplotlib/matplotlib/pull/17850) Coloring no-fill markers -- filled and unfilled markers (versus unfillable) - - `color` behaves differently for each type. - - `markerstyle(fill_style='none')` but internally still has a facecolor. - - PR is right behaviour, but could merge because it does "right thing", but architecture is messy - - deprecate mutating `MarkerStyle` if it ever worked... -- should be sure this still works w/ seaborn... - -### relimits on some artists - -- `add_artist` could inspect and dispatch to the specialized functions. -- but @QuLogic has PR to flatten list anyway.. - - https://github.com/matplotlib/matplotlib/pull/18216 -- 3.5 issue - -### Webpage -- possible SEO improvements -### GSOC: -- 29 Jan deadline -- Aitik Gupta interested -- @tacaswell, @bruno -### Scipy 2019 -- tutorial - email dev list + DM some folk - - Peter McKeever said yes -- talk - wait & hear, by invite -### Qt6/gtk4 -- same as qt5: https://github.com/matplotlib/matplotlib/pull/19255 - - single qtagg or different backends for each - - similar enough? - yes - - -### Hannah CZI - - - -# 14 Jan 2021 -## Agenda -### Old Business - -### New Business - - numfocus annual report - need min 2 sentences by Jan 15th - - GSOC - anybody interested in mentoring? - - Google deadline is Jan 29th, Numfocus ASAP - - 175 hours over a 10 week period - - https://opensource.googleblog.com/2020/10/google-summer-of-code-2021-is-bringing.html - - email NumFocus coordinators: Mridul Seth , Henry Kironde - - ideas list: https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ - - mpl35 release manager - - mpl34 schedule - -### PRs and Issues - -- [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) / [#19281](https://github.com/matplotlib/matplotlib/pull/19281) Transforms copying. -- [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - - status of setuptools_scm adoption? What needs to be done/decided? -- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review -- [ ] pyupgrade prs: #19237 #19241 - - anything useful in here? -- [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... -- [x] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) -- [x] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling -- [ ] [#19029](https://github.com/matplotlib/matplotlib/issues/19029) Refactor to _api._update_label_position? -- [x] [#18216](https://github.com/matplotlib/matplotlib/pull/18216) -- [ ] [#19290](https://github.com/matplotlib/matplotlib/issues/19290) axis limits don't update on add_artist (TH) - *Cause*: Confusion which method to call `add_artist()` vs. `add_patch()` - *Proposal*: Let `add_artist()` defer to more specialized `add_*` methods. - ``` - if isinstance(artist, Patch): - return add_patch(artist) - ``` - - -## Notes - -### Numfocus annual report - -- crib from CZI report. - - -https://github.com/matplotlib/CZI_2020-07_mpl/blob/main/CZI.md - -``` -The current grant is supporting one developer at 40% (Thomas Caswell), one graduate -student (Hannah Aizenman) with partial summer support for her advisor (Michael Grossberg), and a full time -Research Software Engineer. For the latter we ran a search and hired -Elliott Sales de Andrade who started in mid-March. - -Elliott has focused on the maintenance and support aspect of the -grant. We hit our target of a net reduction of open PRs by 50/quarter -and are making progress on reducing the number of open issues. Our -initial estimates of the effort per issue closed were too optimistic; -however, we merged several mid-sized and high-impact projects -(documentation, JavaScript modernization, and a complex axes layout helper). -Additionally we drafted new governance and contributor onboarding -guidelines and had 2 feature and 4 bug-fix releases. - - -We presented our new architecture ideas to the scientific library development community at the SciPy 2020 maintainers track. We designed the prototype API to have a clean separation between the `DataSource`, `Artist`, and rendering layers. We started implementing sample DataSources and Artists to formalize and validate the interface between them. Because the prototype is still developing rapidly, we are postponing working with a downstream partner until the API has stabilized. -``` -- sent -### GSOC - -- put call out to mailing list - sent - -### transform copying - -- should deepcopy really freeze? - -### [#18216](https://github.com/matplotlib/matplotlib/pull/18216) -- get rid of individual lists of artists -- do for 3.5 - -### [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling -- @pXw4hSgTQF2--OciPYwa1w will look at it. - - -### [#18436](https://github.com/matplotlib/matplotlib/pull/18436) - -### [#10008](https://github.com/matplotlib/matplotlib/pull/10008) and [#17850](https://github.com/matplotlib/matplotlib/pull/17850) -- color, facecolor, edgecolor overlapping arguments -- issue is some markers are "fillable" or not. -- Tim will look carefully at #17850 - -### [19272](https://github.com/matplotlib/matplotlib/pull/19272) - -# 5 Jan 2021 -## Agenda -### Old Business - -### New Business - - mpl35 release manager - - mpl34 schedule - -### PRs and Issues - -- [x] [#18126](https://github.com/matplotlib/matplotlib/pull/18126) Allow copying Norms... - - Release critical (regression) - - https://github.com/matplotlib/matplotlib/issues/18119 -- [ ] [#18971](https://github.com/matplotlib/matplotlib/pull/18971) - - status of setuptools_scm adoption? What needs to be done/decided? -- [ ] Anything from [here](https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+draft%3Afalse+-label%3A%22status%3A+needs+revision%22+-label%3A%22status%3A+needs+documentation%22+-label%3A%22status%3A+needs+rebase%22+-label%3A%22status%3A+needs+tests%22) needs a second review -- [ ] pyupgrade prs: #19237 #19241 - - anything useful in here? -- [ ] [#18480](https://github.com/matplotlib/matplotlib/pull/18480) facecolor/edgecolor for `pcolor` and mappable arrays... -- [ ] [#10008](https://github.com/matplotlib/matplotlib/pull/10008) edgecolor versus facecolor (if a marker w/ no polygon) -- [ ] [#13306](https://github.com/matplotlib/matplotlib/pull/13306) Qt signal handling -- [x] [#19201](https://github.com/matplotlib/matplotlib/pull/19201) About baseline images? - - Alignment issues with mathtext -- [ ] [#19215](https://github.com/matplotlib/matplotlib/pull/19215) [DOC] Collect information for setting up a development environment - -## Notes - -### Copyable Norms -- make a mixin for each of the transforms in `scale.py` rather than a new base class. - -### Baseline images mathtext in SVG -- SVG with embeded paths versus text? -- paths embeded in end-user code -- but smaller if we don't embed... -- Thomas planning to prioritize the separate repo for test images - -#### Conclusion: -- Take font spec improvement (it's independent anyway) -- Limit baseline images to SVG -- Don't use fonts in the SVG but keep the fonts being converted to paths. - Concern is on the added complexity; and the production code uses converted paths, so testing these is closer to the production case. We live with the larger SVG size due to paths in test images for now. Tom is planning to prioritize the separate repo for test images, so image size is a little less critical. - - - - - - diff --git a/meeting_notes/2021/q2.md b/meeting_notes/2021/q2.md deleted file mode 100644 index 19774d4..0000000 --- a/meeting_notes/2021/q2.md +++ /dev/null @@ -1,1282 +0,0 @@ - - -# Apr 8 2021 -- -###### tags: `dev call 2021` -Call co-ordinates: Thursdays @ 19:00 UTC 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) - -# July 29 2021 - -## Agenda - -### Old Business -- new front page (done, but bare) -- CI: faster (collapse navigation and dont optimize pngs) -- underscore PR almosyt in - -### New Business - -- PR Status: - - `is:pr created:>2021-07-21 draft:false`: 30 Opened, 19 merged - - `is:pr merged:>2021-07-21`: 27 - - `is:pr is:open `: 281 - - `is:pr is:open draft:false` : 26 - - `is:pr is:open draft:false -author:anntzer` : 18 - -### PRs and issues -- https://github.com/matplotlib/matplotlib/projects/14 - - PyQt6, GTK4: Need to be finished - - RGBA interp: needs review -- Add Figure parameter layout https://github.com/matplotlib/matplotlib/pull/19892 - - needs a name: https://github.com/matplotlib/matplotlib/pull/19892#issuecomment-877851463 -- CL: set up at draw time only https://github.com/matplotlib/matplotlib/pull/20229 - - merge with one review? -- Fonts PRs: - - do these have a critical mass of reviewers? -- widget PRs - - critical mass of reviewers? -- mpl_toolkit PRs - - merge with one review? - -## Notes - --------------------------------- -- new docs index - -in but folks should iterate -- circle - - is now faster by a [insert here] amount -- Elliot's doing a great job keeping the PRs moving -- Font things - - Jouni, Frank, Anthony & Aetik managing it - - lots of turnaround, most issues are fixed - - discussion happening in https://gitter.im/matplotlib/GSOC - -- New organization member - - Frank, german physics PhD student - -### 3.5 stuff -- pyqt6: Tom & Anthony working on that - - skipping on tests not working properly - - backend should be working/testable -- gtk4: Elliot is finishing it up -- RGBA interpolation: needs review, last open PR off draft queue -- `layout` kwarg: - - lets third parties name/create their own layouts - - specific or more open to extensions? - - specific: `spacing` in name, implies shifting some space around - - broader: implies layout manager handles more than whitespace - - default layout optimizer? if no, people will want a short default - - middle ground of `packing`? - - comes from TK - - runs at draw time, w/ draw time event hook? - - tight_layout all happens at draw time - - constrained_layout - mixed b/c of colorbars (won't use gridspec colorbars) - - currently needs to build a tree, amended to 20229 - - don't want this to be a general draw time hook, but should be an action on the figure - - other libraries: - - tk: packing - - matlab: tile spacing and tiledlayout - - qt: layout, relative_sizing - - bokeh: layout, sizing_mode - - plotly: layout - - ggplot/patchwork: https://patchwork.data-imaginist.com/articles/guides/layout.html - - boxes (layout) + packing (spacing) - - `layout` is the closest to current names - - pandas uses it for (row, col) - - maybe suggest to pandas to collapse layout=(row, col), subplots=bool to subplots=(row,col)? - - discourage tight/constrained_layout in docs, not getting rid of it - - __decision__: use `layout` as kwarg -- new website template - - needs search bar on docs landing page (blocker) - - https://matplotlib.org/devdocs/ - - no navigation on landing page (maybe seperate template) - - all the left hand side (like cheat sheets) can go on brochure site - - needs version # - - gallery needs some help - - drop too narrow & images are decentered - - maybe a custom sphinx gallery thing? - - docs are running a dev version of sg - - maybe too much white space - - edit titles to be shorter - - wider thumbnails - - tweak gallery CSS for 3.5 - - Jody will open an issue -- #20229: constrained layout at draw: merge w/ just Anthony review - -- 3.5 timeline: beta by mid august - -### discuss for 3.6 -- colormap registry: - - Tim needs to finish/cleanup - - making cmaps available via import matplotlib (slows down) - - when loading pyplot, you've loaded CM -- change top level import away from plt - - seperates gui management from plotting/artists/etc - - pyplot: spins up gui, pyplot interface, convenience functions - - convieniance (.subplots, cmaps, etc) should move to different top level - - facilitates cleaner distinction between pyplot and OO interface - -# July 22 2021 - -## Agenda - -### Old busines -- [ ] CI concurrency -- [ ] front page for website (this is 3.5 critical) - -### New Business -- PR Status - - `is:pr is:open `: 276 - - `is:pr is:open draft:false` : 20 - - `is:pr is:open draft:false -author:anntzer` : 13 - -### PRs and issues - -- [3.4.3 release](https://github.com/matplotlib/matplotlib/milestone/64) -- 3.5 goals: https://github.com/matplotlib/matplotlib/projects/14 -- https://github.com/matplotlib/matplotlib/pull/18782 Image intepolation - - name of kwarg? - - Doc PR? -- https://github.com/matplotlib/matplotlib/pull/20518 PGF sketch_params? -- https://github.com/matplotlib/matplotlib/pull/20706 latex underscores? -- https://github.com/matplotlib/matplotlib/pull/20549 API name? - -## Notes - -### Front page -- needs to be set up for 3.5 -- @tacaswell will work on brochure this weekend after next (this is top level index.html) -- need to simplify the /3.5.0/index.html - - strip out front matter ? - ![](https://i.imgur.com/b4tdsLv.png) -- direct to document types - - reference - - explanation - - tutorials - - how tos -- https://hackmd.io/HYCHlmH7SdarZWkvVucF-g?both#webpage -- @jklymak will open an issue - -### Circle CI -- extra concurrency -- parallel builds -- 400-500k credits a month. - - slightly over their open-source limit - - 2 virtual CPUs - - 15$/25k credits -- order $350/month - - 80 concurrent - - faster VMs? 8 cores -- revert new style PR and see how quick Circle is? - -### streamplot issue -https://github.com/matplotlib/matplotlib/pull/19619 - -- issue in computing error in integration logic -- bug from 2012 - -### interp data or RGBA -- https://github.com/matplotlib/matplotlib/pull/18782 -- `interp_stage`, `interp_space` -- `interpolation_stage` - -### underscores in math mode -- https://github.com/matplotlib/matplotlib/pull/20706 -- why are underscores not allowed? Because it interferes with references in LaTeX -- maybe just include lines instead of whole underscore.sty -- needs a check that `underscore.sty` hasn't been called by user in custom header. -- just include underscore.sty and assume users have it. Don't vendor. Check if it has already been imported. -- document require underscore.sty -- debian packaging: - - https://packages.debian.org/buster/texlive-latex-base (not in) - - https://packages.debian.org/buster/texlive-latex-recommended (in) - - - ----------------------- - -# July 15 2021 - -## Agenda -- CI update -- https://github.com/matplotlib/matplotlib/pull/20649 -- [ ] end of meeting: hannah scipy practice talk (12? minutes) - - https://hackmd.io/@story645/scipy2021mpl - -## Notes - -### colour filter conversions -- discussion of colour conversion - - -### do we want to soup-up and advertise `obj.set()` more? - -- pro: less typing -- con: some set_XYZ take more than one arg and can not fit that into kwargs - -Some discussion of the fuction `pyplot.setp` that is a hold-over of MATLAB heritage. -Probably should just leave it alone. - -Probably need to keep both interfaces, one-shot `set` aimed at use cases who are -using us as an application and the `set_XYZ` for when we are being used internal -to a third-party library. - -We have deep mixing of high and low level APIs through the libary and through out -the examples. - -Need to write a tutorial on `obj.set` explaining when to use one or the other - -### CI update - -- had a "who are you" meeting with CircleCI this week -- scheduled a meeting with billing to sort out actual needs -- other things in "performance plan" that might help, but not clear if they would actually help su -- consider looking at using DO for hosting these artifacts, have 7minute upload of docs! - -### - -# July 8 2021 -## Agenda - -### Old Business -- [ ] website - - brochure -- [ ] CI concurrency - -### New business - -- PR status: - - `is:pr is:open` 272 - - `is:pr is:open draft:false` 22 - - `is:pr is:open draft:false -author:anntzer` 14 - -## PRs and Issues -- [x] *very* slow doc builds pydata-sphinx-theme - - https://github.com/pydata/pydata-sphinx-theme/issues/381 - - low Circle concurrency @QuLogic? - - attempt to fix: https://github.com/matplotlib/matplotlib/pull/20596 -- [x] figbox deprecation - [#19938](https://github.com/matplotlib/matplotlib/issues/19938) - - https://github.com/matplotlib/matplotlib/issues/19982 - - -## Notes - -### slow Circle CI -- detect circle don't build hi dpi. -- CIRCLE_CI? -- setup time. -- @QuLogic trying to set up meeting w/ Circle folks and @tacaswell -- reduce # of circle jobs... @QuLogic - -### figbox deprecation -- @jklymak will investigate - -### 3.4.3 -- close to tag for SciPy. -- 3.5 not particularly close -- 3.5: Fedora tag mid August - -### 3.5 try a "Project" to rank PRs -- track major-ish changes not small fixes -- not Release critical - - - - - - -------------------------------------------------------------------- - - -# July 1 2021 -## Agenda - -### Old Business -- [ ] website - - brochure -- issues beta - -### New Business -- new social media/community person - Peter - -- Content width of pydata-sphinx-theme is only 749.167px. Previously, we had 919px. Reducing that in the new theme will cause many figures to be rescaled and thus look blurry. We have - - `figsize=(8`: 43 - - `figsize=(9`: 16 - - `figsize=(1x`: 22 - - Options: - - Make pydata-sphinx-theme wider - - Resize the affected figures - - Do nothing - - -- PRs: - - `is:pr is:open `: 277 - - `is:pr is:open draft:false` : 35 - - `is:pr is:open draft:false -author:anntzer` : 25 - -### PRs -- [ ] [#20557:](https://github.com/matplotlib/matplotlib/issues/20557) Have [Source] in api docs link to github -- [ ] [3pp:#71](https://github.com/matplotlib/mpl-third-party/issues/71) make an external resources page in the same style as the third party page/repo - - motivated by request to add python graph gallery to mpl homepage - - https://matplotlib.org/stable/resources/index.html -- [ ] Renaming `span_stays` to `interactive` in #20113 is not a reasonable API change (see https://github.com/matplotlib/matplotlib/pull/20113#discussion_r661819516). Do we want to roll back or move forward to a better name? - -## Notes - -### github: -- $1000/month from AmEx (some sort of amalgamated software bundles corporately sponsored) -- threshold for mention on website(~ 1.0 FTE?) - -### New social member: P. Smith -- social media: https://hackmd.io/@matplotlib/HkkVGQTtU - -### isues beta -- forms beta? also new API for organizing issues -- registered for organizing -- need to register for forms beta - - put in a PR with the new form? - -### sphinx data theme narrower -- examples need to be resized somehow; some examples being downsampled. -- ask them to make it at least 7.5" (its just a touch below right now) -- https://github.com/pydata/pydata-sphinx-theme/issues/427 - -### source in API docs link to github -- doesnt' work for offline use -- how prevalent? -- build option to build locally as well? -- docs packages? -- switch to links to github by default with a switch... - -### resources page -- separate page on PP3 repo -- need to weed out old resources on resource page -- old page: https://matplotlib.org/stable/resources/index.html -- will need some curration for trivial tutorials -- aggregate -- maybe need a yml to have structured data (time, subject) - -### renaming span_selector -- - -# June 24 2021 -## Agenda - -### Old Business -- [ ] website - - new theme merged - - brochure - -### New Business -- tidelift - - we are now at $146/mo - - @ey3AIr8wSl2d1PPfOb9K1w (Elliot) agreed to sign the paper work -- CDR surve results - - https://docs.google.com/presentation/d/1MwQ3XeFfrrL6G805QaI92Yl0a_FHCH4cgI1yTH0jXHk/edit#slide=id.g6534896c11d6780b_92 -- issues beta: - - https://github.blog/2021-06-23-introducing-new-github-issues/ - - needs admin to enroll -- PRs: - - `is:pr is:open `: 268 - - `is:pr is:open draft:false` : 24 - - `is:pr is:open draft:false -author:anntzer` : 17 - -### PRs -- [ ] - -## Notes - -### numpy 1.20 issues - -- Fixed failing test by correcting vmin clipping -- mutating masks still a problem (change in 1.20) - -### webpage - -- new theme merged -- tim adding some things already -- `/stable/index.html` should be some sort of guide to the docs; `/index.html` should be brochure page. - - solves tension in home page between sales and reference - - numpy.org/doc/stable versus numpy.org/ -- divio docs org: https://documentation.divio.com/ -- ![](https://i.imgur.com/wxAo0ik.png) -- Make proper index site. - - https://github.com/matplotlib/matplotlib/issues/19388 - -### tidelift -- $146/mo; -- covers discourse hosting ($10/mo) -- other subscriptions? - - CI, storage -- relies on depedency tree? proprietary algorithm; pandas numpy getting signficiant funds from this -- has a maintenance burden - -### docbuild -- moving to GHA? to get around concurrency -- @QuLogic needs to follow up with Circle about pricing - -### Contributor survey -- initial survey processed. - -### type hints -- stubs as seprate files? -- long run if it becomes universal -- numpy just started 1.21.0 -- separate package of stubs? - - needs synchronizing - - if impatient we may run it into matplotlib... -- may pull into mainline. - -## PRs - -### colorbr again (sorry) -- https://github.com/matplotlib/matplotlib/pull/20501 - ------------------------------------------------------------------ - -# June 17 2021 -## Agenda - -### Old business -- [ ] website? -- [ ] ipympl contract? - -### New Business -- PRs: - - `is:pr is:open `: 267 - - `is:pr is:open draft:false` : 22 - - `is:pr is:open draft:false -author:anntzer` : 11 - - (It'd be cool to track these graphically; I don't think that google search API lets you go back in time?) - -### PRs -- [ ] https://github.com/matplotlib/matplotlib/pull/20113 Span selector? -- [ ] https://github.com/matplotlib/matplotlib/pull/20358 functools partial in animation: why? -- [ ] https://github.com/matplotlib/matplotlib/pull/19515 colorbar zoom and pan: - - maybe impliment in plot tool? (i.e. https://github.com/matplotlib/matplotlib/issues/20433) - - How much of a GUI do we want the main plot window to be? - - How many tools do we want hanging off the main plot window? -- [ ] https://github.com/matplotlib/matplotlib/pull/20229 Constrained layout self-contained - - no more state on each figure and gridspec - - drawtime calculations (but colorbars need to know that CL will be used :frowning: ) -- [ ] Default limits: units, scales, Locators - - https://github.com/matplotlib/matplotlib/pull/20340 - - -## Notes - -- website in progres, ipympl in progress - -### https://github.com/matplotlib/matplotlib/pull/20113 - -- uses substantial number of properties. OK for widgets? -- @tacaswell will look and comment. - -### https://github.com/matplotlib/matplotlib/pull/20358 - -- layer on top of animation function use partial instead. -- useful if reusing an already-created function that needs kwargs - -### https://github.com/matplotlib/matplotlib/pull/19515 colorbar zoom and pan: - -- can make colorbar a picker - with existing API -- make a kwarg? or option? -- better interface is plan - -### https://github.com/matplotlib/matplotlib/pull/20229 Constrained layout self-contained -- need to add timings - -### https://github.com/matplotlib/matplotlib/pull/20340 -- default limits -- AxisInfo probably needs to go away... -- set scale: sets locators and formatters (and transform) -- dispatch by type for unit handling... - - add a do-nothing converter to float... - - lock units... -- make easier to do units explicitly.. -- maybe part of the transform stack. Units first thing? - - ------------------------------------------------------------------ - -# June 10 2021 - -## Agenda - -### Old business -- [ ] ipympl contract? - -### New business -- PRs: - - `is:pr is:open`: 278 - - `is:pr is:open draft:false`: 27 - - `is:pr is:open draft:false -author:anntzer`: 18 - -### PRs -- [x] plot type docs https://github.com/matplotlib/matplotlib/pull/20292 include signatures in titles? (quick) -- [x] https://github.com/matplotlib/matplotlib/pull/18966 (Remove modality of figure options). Anyone volunteer to shepherd this? -- [x] colorbar fix https://github.com/matplotlib/matplotlib/pull/20327 (master critical) -- [x] https://github.com/matplotlib/matplotlib/pull/19466 - - do we want aritfact upload? If not, close? -- [ ] Status of `layout` kwarg to `subplots` etc? https://github.com/matplotlib/matplotlib/pull/19892 - - https://github.com/matplotlib/matplotlib/pull/19892#issuecomment-824432381 for layoutengine baseclass discussion - -## Notes - -### Ipympl -- plt.show() cell return (need to docuemnt semantics) -- discussions w/ Matthias - -### Plot Types -- https://github.com/matplotlib/matplotlib/pull/20292 -- simplify signatures, but keep them.. remove brackets, and keep args that are most common. - -### Modality of figure options -- https://github.com/matplotlib/matplotlib/pull/18966 -- document change of behaviour, but remove API change doc -- break back compat... make non-modal - -### Artefact upload after testing -- https://github.com/matplotlib/matplotlib/pull/19466 -- artefacts are probably too large -- we are already uploading images of failure -- @QuLogic PR... - -### Qt6 PR -- https://github.com/matplotlib/matplotlib/pull/19255 -- need to make sure names are re-exported -- @QuLogic will double check, @tacaswell will push - -### layout engine -- layout is fine -- constrained layout: rename? Adaptive? -- ping @lukebd... - -### get rid of colorbarbase -- https://github.com/matplotlib/matplotlib/pull/20354 - -### GSOC -- glyph fallback... -- font subsetting: #18991 -- documenting fonts first - - Type3 easy to subset - - Type42 ttf, very hard to subset, binary - - need third party libs -- font fallback - - go through family list until glyph found. - - need to move to harfbuzz - - pango does fallbacks but hard on windows -- unification different backends for ustex - - psfrag in ps - - pdf/svg extract glyphs from dvi: Want to use this for everything - - pdftopng and embed - - - - -------------------------------------- - -# June 3 2021 - -## Agenda - -### Old Business - -### New Business - -- [ ] PRs: - - `is:pr is:open`: 275 - - `is:pr is:open draft:false`: ~~26~~ 30 (~~8~~ 12 @anntzer) -- [x] SDG - - circleCI vs pydata sphinx theme with Joris ([proposal text](https://docs.google.com/document/d/1dKegGkOIAnJvh_c6a7DoYgTzHiSMYc-PXnYR02lur8E/edit)) - - https://gitter.im/matplotlib/matplotlib?at=60b9227345c2185a5e0769f1 - -### PRs -- [ ] change log: https://github.com/matplotlib/matplotlib/pull/20132 - https://59749-1385122-gh.circle-artifacts.com/0/doc/build/html/users/release_notes.html -- [ ] font-related docs (https://github.com/matplotlib/matplotlib/pull/20293, https://github.com/matplotlib/matplotlib/pull/20346) -- [ ] unit default limits (https://github.com/matplotlib/matplotlib/pull/20340) - - overlapping concepts: - - `scale`: based on `transform`, sets tick `locator` and formatter; - - `units`: sets `locator` and formatter, but not usually scale! - - `locator` has "nonsingular"; `units` have "default_limits" -- [ ] Norm, mappable, colorbar callbacks - - mappable has a callback to colorbar, but only one - - https://github.com/matplotlib/matplotlib/pull/19553 wants to add a callback on the norm back to mappable -- [ ] TextBox should render mathtext? https://github.com/matplotlib/matplotlib/issues/20266 - -## Notes - -### ipympl deliverables -- drafted and about to be submitted as a contract proposal - -1. Close ipypml#16 by ensuring that saved notebooks include a static version of - the rendered figure. (critical) -2. Make the close button embed a static version of the figure in the notebook. - This will have to be reconciled with multiple views of the same Figure - existing. (critical) -3. Reconcile if possible and document the user experience between inline, ipympl, - and desktop GUI backends. (nice to have) -4. Finish the refactor of the %matplotlib magic to be pluggable. (nice to have) -5. Improve the toolbar / UI of the figure in the browser. (stretch) -6. Migrate typescript and modernize the front end code. (stretch) - -### J. Gill (@swfiua) - -- blume maintainer and original `table` implimentor -- suggests leaving table out until it settles down -- link to `blume` from table docs? There is one... at top of module... - -### Small development grant (Numfocus) -- sphinx pydata theme -- circle? -- **throw in with pydata sphinx grant** - -### Changelog page: -- should be easier on release... -- @QuLogic has on todo list. - -### Font-related docs -- a bit obscure. -- modelled after css - - font: font-family, generic name which cascades... - - font-families are css - - @aitik will be doing per-glyph fallback, so having him document this would be helpful. - - drop the non-reccomended section -- usetex has a Latex-compatible systme - - just classic fonts currently because using `latex` - - \textsf, \textrm etc. handle family - - needs a \usepackage - - maybe thats all we should provide? - -### TextBox and mathtext: -- should be a literal string... - ------------------------------------------------------ - -# May 27 2021 - -## Agenda - -### Old Business -- [x] Front page @tacaswell -- [x] CFP MSFT money @tacaswell -- [x] Small dev grant: - - @QuLogic CircleCI increased concurrency? - -### New Business -- [x] Make a cycler release? -- [x] Joining Scientific Python Ecosystem Coordination (SPEC) as a Core Project - https://scientific-python.org/specs/core-projects/ -- [ ] PRs: - - 266 PRs - - `is:pr is:open draft:false` 19 - - 6 with one review (maybe 4 actionable) -- [x] introductions - -### PRs: -- [ ] Quick Survey: What do you consider as the primary quantity in QuadMesh (and thus should get the (M, N) shape)? The vertices or the quadrilaterals? (The other quantity will have shape (M-1, N-1) or (M+1, N+1), respectively) -- [ ] Quick Survey: Should we canonically enumerate `ax` from 0 or from 1? i.e. - `fig, (ax1, ax2) = plt.subplots()` - or - `fig, (ax0, ax1) = plt.subplots()` -- [ ] https://github.com/matplotlib/matplotlib/pull/19556 - - Allow the func argument in legend - - a bit complicated, but already in a complicated part of code. -- [ ] @greglucas - - [ ] https://github.com/matplotlib/matplotlib/pull/19553 Norm callbacks - - [ ] https://github.com/matplotlib/matplotlib/pull/19515 pan/zoom colorbars change norms? - -## Notes - -### Introductions -- Richard Sheridan: Duke University... -- Greg Lucas: U. Colorado Sattelite - -### QT6 support: -- should go in because of rebase issues - -### MSFT: -- QuantStack to work on lab integration (issue #16 ipympl) -- there is a strategy to fix. - -### Small dev grant/ CircleCI concurrency -- form filled out, and will follow up... - -### Cycler release? -- pytest not working (soon) with cycler... -- some API roughness for 1.0? -- sharable cycler? -- needs license file? One is added when sdist is made. -- @QuLogic release or CI? May need Pypi keys -- is defacto tested in Matplotlib so CI issues not critical - -### Front page -- need to propagate commit rights - - added to main developer group - -### SPEC: scientific python -- matplotlib is a core project? -- agree to follow most of their guidelines -- python maintenance windows etc. -- perhaps umbrella for larger grants -- formalize cohesion -- Numfocus not interested in governance or technical issues - - Numfocus a bigger umbrella -- formal signoff - -### QuadMesh MxN means? -- MxN is `C`, x and Y: M x N for gouraud and nearets. For flat X, Y: M+1 x N+1 - -### (ax1, ax2) vs (ax0, ax1) - -`(ax0, ax1)` - -### pan/zoom colorbars change norms? -* useful but zoom is a confusing choice -* using mousewheel/alternative UI elements -* zooming color is like zooming x/y? -* make it clear that you're moving the ticks, dynamic range/recolor -* use zoom/pan button? -* long discussion about how to interpert the color bar - * on one hand we can think of the color bar as a image that is in an axes - * we can then think about zooming in on it like we do with any other image - * allows you to "clip" the color range shown in the color bar without clipping the range of colors actually mapped - * this is an unreleased feature that @tacaswell has concerns about - * on the other hand, think of the color bar as more akin to the ticks - * the range of norm <-> the [0, 1] of axis normalized units - * colors <-> ticks - * the color bar should _always_ show the full range of colors and zooming / panning on the colorbar should be tied to changing vmin/vmax (just like panning/zooming on the "normal" axis changes xmin/xmax and ymin/ymax) -* @anntzer points to https://github.com/anntzer/mplinorm -* consensus that the UI needs to be tweaked - - - - - - - --------------------------------------------------- -# May 20, 2021 - -## Agenda - -### Old Business -- [ ] Front page? -- [ ] CFP for NumFOCUS small dev grant - -### New Business - -- [ ] CZI submitted -- [ ] State of PRs (20 May) - - 296 open - - 33 Merges, 11 new PRs - - 51 `draft:false` - - 30 `author:anntzer`, 21 `-author:anntzer` - - 20 with one approved review - - `is:pr is:open draft:false review:approved` - - 12 anntzer - -### PRs/issues - -- [x] [#19419](https://github.com/matplotlib/matplotlib/issues/19419) Switch setuptools-scm version scheme to `release-branch-semver`? -- [x] https://github.com/matplotlib/matplotlib/pull/20237 QuadMesh: Does this need a deprecation to make kwarg only? - -## Notes - -### New org members -- Greg Lucas -- Richard Sheridan -- @tacaswell will develop a procedure for new org members - -### CZI -- submitted, ours and EDI; -- Matthias B: enfold docs into ipython terminal is a related proposal - - @anntzer has related project - - make crosslinks work in repl to correct version of libraries - - https://pypi.org/project/papyri/ -- End of July (also NASA) - -### state of the PRs - - Numbers are better than last week - - discussion about how to prioritize PRs from proflic contributors - - have core contributors limit them selves to 5 non-draft PRs at once - - concern that we are losing PRs from new contributors who fall off the top of the GH queue - - improved labeling has helpd a bit to whittle down on "tasks lists" - - skimage has a rotating weeking community manager + nice weekly summary script - - https://github.com/scikit-image/scikit-image/issues/5169 - - also filter based on what if it has a linked issue - - filtering by draft is really helpful, but we should also keep "needs XYZ" labels - - `linked:issue` a useful key as well. - - do we want to seperate open-ended vs PR review meetings? - - no, mixed meetings work better for us - - schedule ad-hoc meetings to dig into technically complex PRs? - - no, make our standing meeting longer as needed, and have a cut off on non-technical review wokr - - first PR from new cont is a problem because some GA cannot run... - - maybe flag those issues with a label (via bot on new PR) - -### version tag - -- [#19419](https://github.com/matplotlib/matplotlib/issues/19419) -- astropy would like a better tag mechanism -- master tree version include `dev`? -- want to be able to compare `dev` > `stable` -- is it a "dev" release? -- https://www.python.org/dev/peps/pep-0440/ - - 0.9 - - 1.0.dev1 - - 1.0.dev2 - - 1.0.dev3 - - 1.0.dev4 - - 1.0c1 - - 1.0c2 - - 1.0 - - 1.0.post1 - - 1.1.dev1 - - current state: - - master : 3.4.2.post825+g303873fc65 - - v3.4.x : 3.4.2+16.gdcfc7a17a2 - - possible: - - master: 3.5.0.dev820+g6768ef8c4c.d20210520 - - v3.4.x: 3.4.3.dev4+g97f47ba6d8.d20210520 (if we remove 'v' prefix in branch name) -- simplify merging up the maintenance branches? -- don't prefix "v" in branch names - -### QuadMesh -- https://github.com/matplotlib/matplotlib/pull/20237 -- Does this need a deprecation to make kwarg only? -- @anntzer has a way to make one-cycle deprecation (maybe just make kwarg only if too complicated) - ------------------------------------------------------------------------------ -# May 13, 2021 - -## Agenda - -### Old Business -- [ ] Attract developer leads for niche corners? - * revist: what if they want to change the API? - * https://github.com/matplotlib/matplotlib/pull/20220 -- [ ] Front page? -- [x] MSFT contract - -### New business -- [ ] CFP for NumFocus small dev grant - * Deadline: June 4, 2021 -- [x] State of PRs: - - 303 total - - 64 `draft:false` PRs, - - 29 `author:anntzer`, 35 `-author:anntzer` - - 11 with one positive review - -### PRs/issues -- [x] backport mosaic parameter rename https://github.com/matplotlib/matplotlib/pull/20150 - - it was done - - -## Notes: - -### MSFT money -- ipympl needs work (nbagg) - - close figure in backend like nbagg - - ipympl figure can pop up a bunch of times - - sylvain C... pay his consulting company to do some of this work... -- @tacaswell going to write statement of work and start contract process - -### CZI and CZI DEI due 19th. - -### Mission statement and niche developers -- @tacaswell is working on a mission statement. - - https://github.com/matplotlib/matplotlib/pull/20220 - - backwards compatibility part of mission statement - - domain specific? - -### PR status - -### CircleCi -- Numfocus small grant? Probably too small! -- @QULogic write and ask what to get higher concurrency... - ------------------------------------------------------------------------------------- -# May 6, 2021 - -## Agenda - -### Old Business - -- [ ] front page -- [ ] MSFT contract -- [ ] GSOC follow up? - -### New Business - -- [ ] Attract developer leads for niche corners? - - How to get word out? - - pandas, tables, toolbar2... - -### PRs/Issues - -- [ ] Move 3rd party package page: - - https://github.com/matplotlib/matplotlib/pull/20026 -- [ ] Fix colorbar axes: - - https://github.com/matplotlib/matplotlib/pull/20054 - -## Notes - -### GSOC -- slotlist submitted; request for students put in. We only asked for one slot. - -### Getting niche leads -- Table: blume exists as alternate - - table is probably broken fundamentally - - not remove but state in docs that weakly supported and point to blume - - ideally would need some refactor. -- pandas: - - pandas and units (dates) - - NASA grant should come in about July? -- general - - not just scope to users on call - - put at top of API that it needs a developer... -- toolbarmanager - - @anntzer thinks has fundamental issues - - design may not allow easy third-party implimentation - - SoC idea... - - needs to be in backends, so can't be third-party - - should people just write a real GUI? - -### 3rd party package page - -- new design -- redirect issues: change old page to a redirect.. - -### colorbar axes -- inner is inset of outer, inner is the colorbar -- outer position is set by parent - - user passes in cax -> coarce it to type colorbaraxes - - makes cax the outer axes - - replace user cax object w/ colorbaraxes object - - delete all contents in cax, redirect to other axes - - put note "this is destroyed", use cb.ax.outer - - some attrs get dispatched to inner, others to outer - - no reference left -- problem: otherwise cax reference is destroyed - ----------------------------------------------- -# Apr 29, 2021 - -## Agenda - -### New business - -- [x] time for 3.4.2? -- [x] do we want to bump minimum version of pillow? -- [ ] CZI writing -- [ ] MSFT contract -- [ ] GSOC slot requests due to numfocus April 31 - -### PRs - -- [x] https://github.com/matplotlib/matplotlib/pull/14463 Are secondary axises full axes? -- [x] Changing styling of widgets [#19265](https://github.com/matplotlib/matplotlib/pull/19265) - -## Notes - -### pillow -- There are a lot of CVEs against pillow, we pin pretty old version as a floor -- do we want to raise our floor to be newer? -- No - - its is not our job to force good sceurity on users - - third-party packagers can bump the minimum they have - - users should be responsible for their own security! - - -### 3.4.2 - - planning to do next week, been about a month from last bug-fix - - tag anything you want to have in as release-critical - -### CZI proposal -- no progress, @tacaswell will work on this after call - -### MSFT / quantstack - - no progress, on @tacaswell - -### secondary_axis - -- currently implemented with a "real" Axes that we draw with no size in one dimension -- if we expand it, then we can plot to it! - - this means you can plot data in either units -- could provide confusion between the twinx/twiny - - twinx / twiny are for shared on one axis, completely unconnected between the two axes in the other axes - - this would be shared in one axes and locked with a different scale in the other direction -- not clear what the non-secondary axis does - - but can definitily make them share -- concern about how scales are shared - - if you make the primary axis to log, what happens to the other? - - both should have same scale! -- concern about draw-order - - discussion about how to merge the children from the guest-Axes - -Things we think we want: - - - to have secondary / twin for coupled / uncoupled non-shared axis - - "twin" is free - - "secondary" is locked together with functional transforms - - want to seamlessly share color cycle etc - - want unified legend between both - - want to handle N-parasite versions of both - - want to be able to "plot to any of them" - - need to think through how mouse hits work - - need to think about how to fold in ParasiteAxes as well - -### mid-scale project ideas - -- replacement of numpy array by subplots with custom class that is indexable - - remove the need for squeeze - - allow bulk-application - - handle (1, N), (N, 1) as both 1D - - need careful thought about where to match/diverge from numpy arary - - add label based indexing! - - maybe join version with subplot_mosaic - -- add ways inject per-axes projections to subplot_mosaic - - make a variation of subplot_mosaic that returns specs - - pass in map of kwargs to subplot_mosaic - - add helpers to destroy / re-create with new projection - - add "add your self" method to subplotspec - - free function? - - method on Figure - -### slider UI changes -- on one hand, these is a visual change and thus an API change -- but UIs are inherently variable and should be excluded from the policy we have for data conveying elements. - -### tight layout bug -- deprecate miss-matched layout grids and point users to contrained layout - -### polar PRs -- @pXw4hSgTQF2--OciPYwa1w adding some of the recent polar PRs to 3.4.2 - - -# Apr 22, 2021 - -## Agenda - -### Old business -- [ ] Microsoft @tacaswell - -### New business -- [ ] website: - - [x] Landing page - - [x] third-party page: https://github.com/matplotlib/mpl-third-party - - [x] cookie cutter project: https://github.com/matplotlib/matplotlib-extension-cookiecutter - - [x] responsive images: https://github.com/sphinx-gallery/sphinx-gallery/pull/808 - - are we Ok using sphinx-galler dev for our dev docs? That will help test the new directive. - - [x] pydata theme? https://github.com/matplotlib/matplotlib/pull/19731 - - -### PRs - -- [x] API-Decision: Setting ticks and ticklabels simultaneously - - `set_ticks(ticks, *, labels=None, ...) ` https://github.com/matplotlib/matplotlib/issues/18848#issuecomment-720154479 - - or accept dict / list of tuples as `ticks`. -- [x] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 -- [ ] mpl-gui: https://github.com/tacaswell/mpl-gui - - what is scope of a "gui" versus a `plt.figure` replacement? -- [ ] `layout='constrained/tight'` for figure https://github.com/matplotlib/matplotlib/pull/19892 - - instead of `figure(constrained_layout=True)` - - `layout` base class as possible argument as well as string (for passing options). -- [ ] third party categories: https://github.com/matplotlib/mpl-third-party/pull/31 - -## Notes - -### Microsoft - -- Sylvain and Tom still talking - -### CZI: -- full round 4 -- May 19th -- approx 1000 words - -### Webpage -- landing page this w/e -- pydata theme: - - working on it - - css issues : i.e. property tables. - - put in separate file, - - push up to pydata? -- cookie cutter, and mpl-third-party... - -### CapJoin etc -- https://github.com/matplotlib/matplotlib/issues/19839 -- change from code reference to private link -- https://github.com/matplotlib/matplotlib/issues/19850 -- python core changed how deprecation warnings are emitted -- doc build always grabs the property: - - doc builds should ignore? -- our deprecation warning is not a deprecation warning - - sphinx doesn't recognize as a deprecation warning -- either we fix be deriving from deprecation warning - - or we ask sphinx to filter on other warnings -- MatplotlibDeprecation should subclass Deprecation since it has stabilized -- user scripts -- `python -Wa script.py` -- `FutureWarning` always seen... - -### Ticks: set_ticks and set_ticklabels -- can be undefined if we don't pair lables with ticks -- positions first so add option to set label -- `pyplot` already accepts as pair -- not on axis: - - dict? -- step 1: make consistent with `pyplot` - - maybe not second kwonly -- step 2: maybe add a dict -- step 3: discourage set_ticklabel - - need a fomal method to "discourage" - - remove from examples / gallary -- document `set_ticks(axis.get_ticks(), newlabels)` - - - ----------------------------------------------------------- -# Apr 15, 2021 - -## Agenda - -### Old business -- [ ] Landing page -- [ ] Microsoft -- [x] GSOC (april 30th to NumFocus) - -### New Business - -- [x] matplotlib-contrib organization? - - i.e. https://github.com/sphinx-doc/sphinx versus https://github.com/sphinx-contrib/ - -### PRs and issues -- [ ] API-Decision: Setting ticks and ticklabels simultaneously - - `set_ticks(ticks, *, labels=None, ...) ` https://github.com/matplotlib/matplotlib/issues/18848#issuecomment-720154479 - - or accept dict / list of tuples as `ticks`. -- [x] Design-/Architecture decision: adding motion to help understand 3D information https://github.com/matplotlib/matplotlib/pull/19937 - - The general idea is good - - How do we want to implement that - - Prosed solution seems a bit ad-hoc (own "event loop" started from activation event) - - Alternative: Use existing animation framework (t.b.d.: Interaction with user actions?) - - Alternatives ...? -- [ ] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 -- [ ] https://github.com/matplotlib/matplotlib/issues/19956: user add fig to pyplot. - -## Notes: - -### Codecov had security issue -- @tacaswell working on fixing/checking -- contact him directly if you have concerns or would like to help -- @tacaswell has contacted potentially affected individuals -- some keys are obsolete: @tacaswell and @QuLogic are going to remove -- should rotate deploy keys as good practice (@tacaswell) - -### GSOC -- applicants by two weeks: - - @QuLogic: geopandas proposal - - he needs to get registered with NumFocus (@story645) - - Jounni interested in helping w/ review for @tacaswell @pXw4hSgTQF2--OciPYwa1w (Antony): text/latex - - pytest project? - - no applicant - -### 3-D Motion -- function to pass axes to... -- mplot3d top level function. -- 3rd party package... - -### mpl-contrib @jklymak -- sphinx has a sphinx-contrib github org -- do we want to make matplotlib-contrib - - list of user developed extensions (rather than mixing in with our) - - not promise to do any code work, but just manage the org -- external page - - matplotlib.org/3pp.html hosted in external repo - - external contrib page, configured via yml/markdown - - needs instructions on how to add - - something like https://djangopackages.org/ - - https://pyviz.org/tools.html - - https://docs.pytest.org/en/latest/reference/plugin_list.html - - pr template - - link, badges, short description - - like pyviz? - - need template - - need a new repo for this. - - @jklymak will look into this - - gallery view? -- new third part package page: - - not two! - - -### pyplot/mplgui separation - -- good idea -- can be back compatible -- maybe even a standalone package to start - -------------------------- -# Apr 8, 2021 - -## Agenda - -### Old business -- [ ] GSOC: https://discourse.matplotlib.org/t/gsoc-21-extensions-to-pytest-mpl/21989/4 -- [ ] Scipy maintainers track, proposal due April 15th (https://samdbrice.medium.com/76acc8b5d534) -- [ ] Landing page update - -### New Business - -### PRs - -- [ ] Hi dpi images on website (@jklymak) https://github.com/matplotlib/matplotlib/pull/19899 -- [ ] (optional) changing the vertical axis in 3D plots https://github.com/matplotlib/matplotlib/pull/19873 - as proposed by @timhoffm in https://github.com/matplotlib/matplotlib/issues/19791#issuecomment-812714992 -- [ ] (if @timhoffm is there) API for specifying layout https://github.com/matplotlib/matplotlib/pull/19892 -- [ ] (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 - - -## Notes - -### GSOC -- folks should submit proposal - -### Scipy Maintaners Track -- @story645 and @tacaswell will co-ordinate - - -### Microsoft -- Thomas working with Sylvain to work on ipympl. - -### Notes -* 2018-03/2020 synced at https://github.com/matplotlib/ProjectManagement - -### Hi-dpi - -- OK to work with sphinx-gallery on this... -- have a way to do this by using srcset which lets the browser pick high or low dpi images -- we are in favor of doing this (we should have nice looking plots in our docs as the plotting libary!) -- SVG has too many edge cases and concerns about performance to switch to it by deault. We tried this several years ago and it went badly (was reverted) - - @h1IxLDvDQ6alkgMzaANm6Q has a proof of principle that works, will work with sphinx-gallery folks to move the logic there. - - -### 3d Axes - -- change axes for which azimuth and elevation defined on. -- could reassign. User wants y to be "vertical". -- Need to assign azimuth zero on new axis (and sense of rotation) - -### Documentation of classes -- (if @timhoffm is there) Subclasses of Polygon with numpydoc xref throws error b/c of CapStyle, JoinStyle https://github.com/matplotlib/matplotlib/issues/19839 -- inherited references get wrong: - - probably sphinx: https://github.com/sphinx-doc/sphinx/issues/6211 - - lot of work to fix? - source of docstring gets dropped... - - maybe hard-coded mapping in conf.py? -- can use fully qualified references... -- anchor link instead of type? - diff --git a/meeting_notes/2021/q3.md b/meeting_notes/2021/q3.md deleted file mode 100644 index 901ce57..0000000 --- a/meeting_notes/2021/q3.md +++ /dev/null @@ -1,1042 +0,0 @@ -# Aug 5 2021 -- Dec 23 2021 -###### tags: `dev call 2021` - - -Call co-ordinates: Thursdays @ 20:00 UTC 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) - ---------------------------- - -# Dec 23 2021 - -## Agenda - -### New Business - -- Sponsor page? - -### Issues and PRs - -- `LogLocator` respecting `numticks` [#21177](https://github.com/matplotlib/matplotlib/pull/21177) -- LayoutEngine: - - API options for conflicting layouts (because of colorbars): https://github.com/matplotlib/matplotlib/pull/20426#issuecomment-998670237 - -## Notes - -### Sponsor Page -- logos -- https://numpy.org/neps/nep-0046-sponsorship-guidelines.html maybe as a guide. -- pretty high value for main page -- discussion about how to get more "donations" - - B-corp? (e.g. Athleta) - - linux weekly news: subscriptions ahead of time... -- TODO: read NEP and implement similar - -### Layout engine PR -- trying to put in an API for setting the engine rather than being baked in to Figure -- the way colorbars are handled is not consistent between tight layout and constrained layout - - figure needs to know what layout engine is being used so that color bars are made "Right" for that layout -- what if user wants to change engine? - - one extreme: set at init time, can not changed - - pro: simple - - con: bit less flexible than we tend to be - - allow to change if color bar is compatible (with levels of tracking ) - - pro: flexible - - con: complex - - just walking at set time not hard - - adapt existing colorbars on the fly if engine changed - - con: very complex! - - just let the user shoot them selves in the foot - - pro: simplest! - - -Other colorbar things: - - make everything `LocatableAxes` - - move colorbar logic to the Axes rather than the Figure - - maybe start fresh with this? - - axes can have more than 1 colorbar - - maybe attach to the mappable rather than the axes? - -- Make static properties instead of method. - ------------------------- - -# Dec 16 2021 - -## Agenda - -### New Business - -### Issues and PRs -- 63 or so non-draft PRs! Please help review! -- [layout engine](https://github.com/matplotlib/matplotlib/pull/20426): - - dealing with conflicting colorbar layouts when changing layout engines midstream. - -## Notes -### dpi issues -- currently our cannonical coordinate system (what the Identity transform takes you to) is "pixels" -- "pixels" depends on DPI which in the world of high-DPI screens and variable save DPI -- proposal is to move to "pts" (or some sort of logical DPI) as the "cannonical" -- do final scaling at last possible time -- move 72 -> actual DPI scaling to canvas - - concerns about when we do rounding / snapping -- question is what to do about users are are now _intentionally_ using `Identity` transform -- scatter markers are currently scaled in square points -- virtual pixel / pt -> real pixels will be on canvas -- intial mpl work was targetting GUI tool kits that were very pixel foward - - pixels work well with hardware and xwindows -- post script / PDF / svg - - physical units - - all vector -- possible to have the internal units be :shrug: - - could have a knob -- but want to document as fixed for documentation purposes - - pts - - inches / 100 - - inches - - cm -- need to preserve - - strong support for physical units - - strong support for targetting explict pixel size -- possible fall out - - tests that check bounding boxes - - users that actually did want to set pixels - - may need to document to use the knob to fix it - - would likely fix a bunch of weird pdf bugs - - would have to sort out when image resampling happens - - would have to check when path simplification happens - - mixed mode may be fun? - - blitting will require some thought -- we puth the dpi ratio factor (for high-dpi) in the wrong place - - we put it as early as possible - - should have been done as late as possible (what is proposed here) -- discussion about labeling transforms with what their dest/target is - - type annotitons? - - -#### Actions -- change names -- move pixel ratio dpi change as late as possbile (in draw?) -- investigate how hard the internal virtual physical units would be -- investigate add source/test attributes to instances - - - - ------------ -# Dec 9 2021 - -## Agenda - -### New Business - -- release: - - 3.5.1? - - release cadence - - 3.6 roadmap - - PDF docs? -- Can @anntzer redirect mplcairo general support to the main matplotlib forums? - -### Issues and PRs - - - -## Notes - -- https://github.com/tacaswell/mpl-gui - - folks should give it a try - - @tacaswell has goal of getting on pypi this month -- Discussion of what Napari is -- Introductions (new attendee!) - -### 3.5.1 - -- Good, need to fix units - -### release cadence -- currently about monthly for minor releases. -- maybe cutoff earlier -- downstream testing easier -- a little bit quicker? -- need to do nightly builds... - - not automated yet - - @tacaswell was working on that (PR from @ianhi - - https://github.com/matplotlib/matplotlib/pull/21637 -- commit to actually hit 6mo cadence -- start process earlier. - -### pdf docs -- we know people use it -- issues with too big images, mostly fixed now -- can not get numbers from either GA or cloudflare for usage -- PDF may be best size-wise for full off-line access -- downloading the full PDF - -### 3.6 roadmap -- 1st week may, so beginning of march feature freeze + branch -- mplcairo into main? - - qustion about support for OSX < 10.15 (gcc related issues) - - can we push up the minimum OSX up? - - need gcc 7 - - solve manylinux1 via static linking (and we are going to drop manylinux1 soon anyway) - - collisions with existing XYCairo backends? - - could de-conflict or just replace - - @QWhXj01mSwmTjk5kN1H_qQ wants plan to remove old cairo backends - - @qulogic will look into wheel constraints -- layout manager -- finish Aitik's font fallback work -- fraction viculum alignment - - concerns about both changing many images and the concerns about quality of images -- categorical mappables (@dstansby) - -### mplcairo into discourse -- yes - ---------------------------- - -# Dec 2 2021 - -## Agenda - -### New Business - -- releases - - 3.5.1? - - 3.6 roadmap? - - release cadence? - -### Issues and PRs - -- Colorbar inherit from Axes? -- OO versus pyplot terminology: - - mpl_gui work: https://github.com/tacaswell/mpl-gui - - `mpl.figure`, `mpl.subplots` - - reasonable for 3.6? - -## Notes - -### mpl_gui - -- Need to keep hard references -- `show` triggers rendering to GUI -- but if done in function, the figure would go away. -- can we spin up more than one manager? - - be hard to make multiple ones interactive though because they each need to get passes - - can't just move the renderered image because they are sized -- https://tacaswell.github.io/mpl-gui/ -- ideally keep ability to "draw" so we can do get_tightlayout, particularly on text -- need to keep track of figures so figures in notebooks don't get garbage collected and lose their interactivity (if the user has named them all `fig` for instance.) - - -------------- -# Nov 25 2021 - -## Agenda - -### New business -- NF maintainers summit next week - -### Issues and PRs -- pcolormesh remove grid deprecation: [#21723](https://github.com/matplotlib/matplotlib/issues/21723) -- Colorbar inherit from Axes? -- hexbin mincnt [#21381](https://github.com/matplotlib/matplotlib/pull/21381) - -## Notes -### pcolormesh -* grid goes beyond pcolormesh <- can't fix -* problem triggered by style -* consensus: change deprecationwarning to only occur if grid is explicitly - -### hexbin -* decide #21381, then discuss @anntzer's refactor -* - ------------------------------------------ -# Nov 18 2021 - -## Agenda - -### Old business - -- 3.5.0: Released! Thanks @tacaswell and @Qulogic! - -### New business - -- PRs: - - 60 non-draft -- NASA update? - - Organizing ideas for grants - -### PRs and Issues for discussion -- ENH: Layout engine https://github.com/matplotlib/matplotlib/pull/20426 -- Pre-commit: https://github.com/matplotlib/matplotlib/pull/21583 - -## Notes - -### time -- agree we should move with DST - - need to pick if we follow US or Europe (1 week off) - -### webpage -#### landing page - - @dorafc will take a look at typography, may need to push stuff up to mpl-sphinx-theme - -#### built docs - - left-hand navigation bar does not always do the right things - - maybe https://github.com/sphinx-gallery/sphinx-gallery/issues/855 - - https://github.com/matplotlib/matplotlib/pull/21667 simplifies side bars - - on some pages (like https://matplotlib.org/stable/devel/min_dep_policy.html#python-dependencies) the left/right side bars look good - - on some like https://matplotlib.org/stable/tutorials/index.html look bad ------------------------------------------------------------- - -#### NASA -- money not figured out yet -- draft job proposal to NASA - - authorized research to work in US - - foreign contracts OK for engineering -- RSE : mostly units, and data pipelinig -- https://hackmd.io/@matplotlib/HJIj1bjvY -- will also do bug triage etc -- 3 years - - -#### Pre-commit -- apply to code base to pass -- enable in CI? - - can do in github actions -- https://github.com/matplotlib/matplotlib/pull/21630 -- @GregLucas will follow up on PR. - - -# Nov 11 2021 - -## Agenda - -### Old business - -- 3.5.0 - - docs? - - brochure site: https://matplotlib.org/mpl-brochure-site/ - - https://github.com/matplotlib/mpl-brochure-site/pull/21 - - needs news or https://github.com/matplotlib/mpl-brochure-site/pull/17 - - needs to be linked to https://matplotlib.org - - PRs? - - https://github.com/matplotlib/matplotlib/pull/21317 - - https://github.com/matplotlib/matplotlib/pull/21501 - -### New business - -- Prs; 54 non-draft - -### PRs - -- https://github.com/matplotlib/matplotlib/pull/21381 - -## Notes - -### 3.5: -- largely docs; release notes -- astropy problem #21569 - - needs some thought about the architecture of how gridlines get put onto non-linear projections.. - - Issue: cartopy axis artists on new projections - - ticks as well could benefit from global approach to ticks and grids. - - possibly in scope for NASA grant. -- https://github.com/matplotlib/matplotlib/pull/21317 - - can keep it pinned to old pyparsing until they settle down. Probably 3.5.1? - - probably works... -- https://github.com/matplotlib/matplotlib/issues/21509 - - shortcuts have names that can clash with valid eps commands... - - - - - -# Nov 4 2021 - -## Agenda - -### Old business - -- 3.5.0 - -### New business - -### PRs - -- https://github.com/matplotlib/matplotlib/pull/21381 - - ----------------- -# Oct 28 2021 -## Agenda - -### Old business - -### New business -- 3.5.0: - - https://github.com/matplotlib/matplotlib/milestone/59 - - landing page: https://github.com/matplotlib/mpl-brochure-site - - https://matplotlib.org/stable/tutorials/provisional/mosaic.html still provisional? - - image rotator? - - "news" feed? -- PRs: - - 282 - - `is:pr is:open draft:false` : 43 - -### PRs -- https://github.com/matplotlib/matplotlib/pull/21426 - - -## Notes - -- mathtext parser: - - somehow broke on 3.5 backport, probably in pyparsing 3.0.0 -> 3.0.3 transition - - Tim Hoffman will look at the 3.5 backport. #21454 and revise to unbreak C. - - Action: we should test on pyparsing RCs as part of our bleeding edge build. - -- https://github.com/matplotlib/mpl-brochure-site/pull/21 - - binder: - - interactivity is laggy... - - startup slow. - - ACTION: talk to binder folks. @hannah - - Action: ask @dopplershift - - credits from microsoft or Amazon? - - - ----------------- -# Oct 21 2021 -## Agenda - -### New business -- master is now main and history rewrite -- PRs: - - non-draft: 48! - -### PRs - -- is mpl_data really something packages should be stripping? https://github.com/matplotlib/matplotlib/issues/21375 -- doc re-org: - - https://github.com/matplotlib/matplotlib/pull/21251 - - https://github.com/matplotlib/mpl-sphinx-theme - - https://github.com/matplotlib/mpl-third-party/pull/87 - - https://github.com/matplotlib/mpl-brochure-site/pull/11 - -## Notes - -- History rewrite - - seemed to work relatively well - - @tacaswell and @QuLogic manually informed PRs that were affected. - - `main` is now the important branch -- mpl-data status - - debian pulls this out into its own package - - - - already pull the fonts out - - do not put the files where we think they are, and patch our functions to look at their new location - - propose they use symlinks to put things back - - because they build the docs, have 2 versions of Matplotlib which is odd - - **consenus**: tell debian that mpl-data is now a required subdir - - @ey3AIr8wSl2d1PPfOb9K1w will write API note for down-stream packagers highlighting that matplotlibrc is now a read/parsed at run-time file (not just docs) -- docs re-org - - merged, may have more follow-ups for minor re-arrangements -- 3.5 - - waiting on numpy wheels (went up yesterday) - - one outstanding bug -- brochure site - - switched to bulding with sphinx - - use mpl-sphinx-theme -- landing site need binder - - maybe contract Nicolas Rougier? - - maybe history of average temperature - - sealevel record at a point - - hourly temperature data from airport? (https://docs.opendata.aws/noaa-ghcn-pds/readme.html https://www.ncei.noaa.gov/products/land-based-station/global-historical-climatology-network-daily) - - https://github.com/matplotlib/mpl-brochure-binder <- target repo - - Jody will do something quick-ish - ----------------- -# Oct 14 2021 -## Agenda - -### New business - - let into GH issues beta: https://github.com/features/issues - - PRs - - 282 open - - `is:pr is:open draft:false`: 36 - - 19 merged - - Purge bad commits: (suggest at end) - - transition to `main` from `master` - - https://discourse.matplotlib.org/t/minor-re-writing-of-history-and-moving-from-master-to-main-for-default-branch/22354 - - cover pydata sprint - - Oct 28-30, @tacaswell may have un-avoidable personal conflicts - -### PRs and other - -- [Doc] Common style across sub-project docs: - - https://github.com/matplotlib/mpl-brochure-site/pull/7#issuecomment-938761713 - - could add `matplotlib/matplotlib-theme` for our projects to add as a doc dependency (as well as pydata theme). -- [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) - - locator is idisyncratic (though author points out one could easily use symloglocator) - - do we need another scale? -- [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) - - Maybe inset was not general enough a name? -- [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) - - - -## Notes - -- 3.5 ? - - line join bug... - - GTK4 dpi ratio https://github.com/matplotlib/matplotlib/pull/21212 - - docs issues -- Common style: - - @tacaswell will make a subproject -- inset_axes - - inset axes is fine, might have been better as something else (child_axes, dependent_axes) - - axes grid example should stay where it is. -- asinh - - good as remedy to existing symlog - - shoudl cross-link symlog to point to new scale if goes in. - - should have a decade-locator, probably just symlog locator - - Greg Lucas will comment -- cut bad commits: - - probably simple, but all existing PRs will need to trim the bad commits - - @Greg and @anntzer are going to investigate tech to flag bad commits... - - doc PRs, and do tomorrow. - ------------------ - -# Oct 7 2021 -### Old Business -- Hacktoberfest: Note guidelines for overlapping PRs -- 3.5rc01 released - -### New Business -- PRs: - - 279 open - - `is:pr is:open draft:false`: 34 - - 54 closed in last week - -### PRs and Issues - -#### Website -- Front page work? -- [Proposed further re-org](https://github.com/matplotlib/matplotlib/pull/21251) - - All (almost) rst under `user/` - -#### Other -- [scatter etc accept None in list](https://github.com/matplotlib/matplotlib/pull/21270) - - probably not? -- [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) -- [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) - - locator is idisyncratic (though author points out one could easily use symloglocator) - - do we need another scale? -- [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) - - Maybe inset was not general enough a name? - - -## Notes - -### Front page - -- need new pictures - - uses the 4 we have as baseline -- need binder link -- some duplication? -- - -### Webpage reorg - -### None in list -- hard API to support; we dont' want to have to figure out everywhere. -- folks want None as default in iterables, but we want to evaluate early -- `None` on its own is troublesome enough -- User can supply a list and its not that hard to include the defaults -- Issues with `NaN` vs `None`. -- @tacaswell will write - - - - ------------------ -# Sept 30 2021 -### Old Business -- Hacktoberfest participation - -### New Business -- v3.5 status? -- pydata global sprint - - The conference will take place (online) during the weekend of 28 to 30 October 2021 - -### PRs and Issues - -- [Layout Engine](https://github.com/matplotlib/matplotlib/pull/20426) (3.6) -- use Pillow for image resampling instead of Agg (3.6)? [#21231](https://github.com/matplotlib/matplotlib/issues/21231) - - how to deal with missing filters? - - -## Notes - -### Hacktoberfest -- https://hacktoberfest.digitalocean.com -- yes contribute: -- we need to label issues (after acceptance) as "hacktoberfest" -- https://hacktoberfest.digitalocean.com/resources/maintainers -- merged or close... -- label on repository (done) - -### Pydata global -- @tacaswell going -- sprints....on weekend, at least caswell will cover -- let @tacaswell know if you can help - -### 3.5: -- RC close -- few doc PRs -- [#20907](https://github.com/matplotlib/matplotlib/issues/20907), [#21212](https://github.com/matplotlib/matplotlib/issues/21212) -- - -### Layout engine - -- makes the layout engine pluggable -- refactors our layouts to be plugins - -### switch to pillow for resampling -- [#21231](https://github.com/matplotlib/matplotlib/issues/21231) -- pillow already has resampling logic for 32bit floats with no limits! -- set_resampler (per AxesImage) - -### Nasa grant -- 6-8 weeks, can pay someone at that point. -- need job ad up.. -- person would (likely) need to be based in US... (citizen or green card) - - please get edits to job description by Monday to send in for comment - - ----------------- -# Sept 23 2021 -### New Business - -- 3.5 open PRs - - https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+draft%3Afalse+milestone%3Av3.5.0 - -## Notes -### 3.5 -- 3.5 open issues -> move to 3.6 -- RC tagged maybe by end of week -- 21126: Deprecation of stem fmt parameters - - left note asking Tim how he wants this resolved - - 19343: left to Elliott -- 20945: needs one line removed by PR author -- 20740: GSOC: failing ubuntu test-> pitched to 3.6 - - font distribution error: missing/broken noto - - -# Sept 16 2021 -### Old Business -- 3.5 release (waiting on docs?) - - -### New Business -- PRs: - - 283 open - - `is:pr is:open draft:false`: 38 -- Were selected for NASA roses - -### PRs and issues -- https://github.com/matplotlib/matplotlib/pull/20990 was accidentally merged with a single review; consider whether a second reviewer wants to request post-merge changes - - -## Notes - -### 3.5 - - waiting on cartopy (@greglucas will release tomorrow!) - - @qulogic has a few more fixes coming - - waiting on docs on mpl side - - did PR reviews - - - - ------------------------------ - -# Sept 9 2021 -### New business - -* Student contributors: - * https://github.com/matplotlib/matplotlib/issues/20923 - -* docoverhaul (documentation: overhaul) tag - * for documentation issues/prs that are major revisions of existing docs - * pro: differentitates from small documentation issues - * https://github.com/Pylons/pyramid/issues?q=is%3Aissue+is%3Aopen+label%3Adocoverhaul - -* blog author/community participant guidelines - * does spamming github get your contributions revoked? no new contributions/any consequences - -* specified cursive font family isn't available on CI - * https://github.com/matplotlib/matplotlib/pull/20945#issuecomment-909731013 - -## PRs and issues - -* Raise warning and downsample if data given to _image.resample is too large - Do we want to downsample or simply refuse data that is too large? - https://github.com/matplotlib/matplotlib/pull/19368#issuecomment-915011674 ff. - - -## Notes -### Student contributors - - no one has time and is jumping at taking this on - - the requested work overlaps greatly with the CZI DEI CEL job description - - respond to them with - - would like to defer answering to after CEL starts - - ask about their timelines - - suggest that familiarity with using Matplotlib as a user very very helpful to contributing - -### docoverhaul tag -- sure -- also use this tag to say "needs 2 reviews" - -### CoC violations by blog/third party - -- case by case - - spammy PRs -> just block - - serious behaviour issues -> remove their blog posts -- as always handle with compassion / empathy and response that fits the infraction - -### Issues with pgf fonts -- the docs suggest in multiple places that setting `rcParams['font.serif'] = []` will cause pgf to fallback to the default latex serif font, but the code is currently falling back to dejavu sans in this case -- @anntzer is running an auto bisect - - -### image resample -- downsample - agg accepts 2**15, if someone passes higher **warn** and downsample - -### 21015: https://github.com/matplotlib/matplotlib/pull/21015 -- rcparams.copy returns plain dict including deprecated ones, -- when they restore, mpl emits working -- instead copy will return a new rcparams instance -- don't need to emit new warnings on update -- concern: rely on validators w/ sideeffects - - date.formatter which globally sets default formatter - - validators need to know if they're working on installed or other rcparams - - when an rcparam is set, the validitor can/does set global state - - validators should only be validators - - shouldn't have side effects, - - should be allowed to convert values - - changing state should be a different function - - dictionary of sideeffects/call backs -- conclusion: - - remove side effects from validators - - change .copy behavior to return instance, skip warning and revalidate - - - - -# Sept 2 2021 -### New business -* 3.5.0b1 aftermath - - - -* ipympl contract signed - -## Notes -### update on docs -* Caswell did not make suffient progress, but should be possible, will continue to work on - -### 3.5.0b1 fallout - - starting to do dependent builds on koschei (fedora) - - most issues posted to gitter, big things are seaborn issues - - cartopy issues - - more fallout from changing the order of the artists - - used to be stable zorder sort based on what sub-list they were in - - now stable sort based on order added - - unfortunately contour and coastlines are same z-order and if you add coastlines first, then the render order is switched in 3.5 - - maybe fixable on the cartopy side by changing default z-order to depend on line vs filled - - 3 or 4 packages that fail, but their upstreams have fixed themselves! - - discussed proposal to add small (multiples of 1e-7) to zorder passed - - can adjust the z-order on the way in - - could add z-bias to the classe - - could just make clear in the docs - - could just warn if order has changed - - core of the problem is we used to to z-sorting on (z-order, type, added-order), now it is only (z-order, added-order) - - this change fixes (very old) bug in errorbar when caps/lines had different relative z-order - - seems hard to both warn / give back compat in cases when this breaks a user and not when it fixes the user (like errorbar) - -Approximatly old order: -``` - def get_children(self): - # docstring inherited. - return [ - *self.collections, - *self.patches, - *self.lines, - *self.texts, - *self.artists, - *self.spines.values(), - *self._get_axis_list(), - self.title, self._left_title, self._right_title, - *self.tables, - *self.images, - *self.child_axes, - *([self.legend_] if self.legend_ is not None else []), - self.patch, - ] - -``` -https://github.com/matplotlib/matplotlib/issues/1622 - -- - -**consensus** : - - get cartopy release out - - Accept the breakage which is really a fix, but make sure it is well documented - -# Aug 26 2021 -## Agenda - -### Old Business - - ipympl contract is moving, target start of Sept 1! - -### New Business -- "inner" index page re-organization https://github.com/matplotlib/matplotlib/pull/20867 -- "outer" index content https://github.com/matplotlib/mpl-brochure-site/pull/2 - - what to put in the big gray box? - - What to put on the otherside of the binder link? - - Should we check-in with the highlighted projects and get their feedback on their description? - - where to point the row of big links to (only user guide currently seems off to me)? - - - -### PRs and issues - -#### 3.5 relevant - -- Should the new colormap registry be experimental? https://github.com/matplotlib/matplotlib/pull/18503#issuecomment-898873054 -- Naming of the new method `fig.draw_no_output()` https://github.com/matplotlib/matplotlib/issues/20001#issuecomment-825445132 -- Change in contour return type https://github.com/matplotlib/matplotlib/issues/20906 -- Instability in where boxplot artists are https://github.com/matplotlib/matplotlib/issues/20895 - - -## Notes -### 3.5 relevant -- colormap registry as experimental? - - pro: gives us a chance to tweak the API as we see its use - - con: would have to back out a bunch of docs - - conclusion: will add note that this might be changed -- consider adopting a sklearn style "turn the experimental stuff on" helper functions (more general) - - https://scikit-learn.org/stable/modules/classes.html#module-sklearn.experimental -- do we want to add `plt.colormaps` which provides access to the registry - - can probably never deprecate `plt.get_cmap` - - is it worth providing 2 ways `plt.get_cmap(name)` vs `plt.colormaps[name]` - - already have a version of this duality in `plt.rcParams[]` and `plt.rc()` - - do we want to delay to 3.6? - - pro delay: delay exposing new stuff out - - con delay: there is no API freedom here, might as well do it now -- `draw_no_output` vs `compose` - - `draw` -> walks tree + renders - - suggestions: `draw_no_render` or `draw_without_render` - - alt is `fig.canvas.draw()` - - consensus: `draw_without_rendering` -- change return type contour - - needs API note - - backcompat shims? LineCollection->PathCollection - - add a get_segments function that raises warning/error - - add a LineCollection keyword argument to change the return type? - - allows a longer deprecation cycle for downstream libraries - - - consensus: API note, revisit backshim if needed - -- box plot return instability - - previously - - box plot always went to artists (as Line2D) - - now can show up in patches list if using `patch_artist` keyword - - transition path - - remember the `patch_artist` keyword to direct traffic - - keep it in both? - - on artists can warn if adding a special artist, but plan is to consolidate to `add_artist` - - consensus: - - check that there is an API note that things added to artists may appear in special artist type list - -### website -- inner index - - https://63094-1385122-gh.circle-artifacts.com/0/doc/build/html/index.html - -- We have 4 types, 3 of them are 'top level', explanation is burried a layer deep -- FAQ should be scattered to the ~winds~ other sections -- top level in contents - - usage - - plot types - - tutorials - - gallery - - explanation - - how-to - - API - - external learning resources - - back matter - - ~contributing~ (change to Development maybe?) - - release notes -- top bar - - plot types - - ~gallery~ examples - - tutorials - - reference - - usage guide - - develop/contributing - - release notes (maybe) -- inner index and inner pages should have same top bar -- rename "back matter" to "project info" - -- Reference section - - dedent, drop extra tool_ktis, rename API Reference -> "complete docs" - - re-work underestanding to point to "advnaced and intermediate tutorials" - -- home page - -# Aug 19 2021 -* Meeting canceled due to low attendance -* informal PR review session for 3.5 PRs - - -# Aug 12 2021 - -## Agenda - -### Old Business - -### New Business -* Small Dev Grant, $5000, due September 3, 2021 - -### PRs and issues - -- https://github.com/matplotlib/matplotlib/pull/20518 -- https://github.com/matplotlib/matplotlib/pull/20603 -- https://github.com/matplotlib/matplotlib/pull/20611 -- Semantics of `ax.cla` - -## Notes - -### Ipympl -- draft statment of work to Sylvain Corlay - -### Small dev grant -- $5k numfocus... -- previous: macmini access -- 1000 words total (750 what, 400 why) - -### 20518: pgf sketch params -- pgf and non pgf scaling of wiggles should ballpark look the same - -### 20611: spanselector -- rectangleselector used to give the click and release points - - now tells the extents of rectangle - (upper right, lower left?) - - encapsulated as mouse event - - fixed to go back to start/end, but for interactive breaks if you want location - - rectangleselector shouldn't care about order of creation, just size + position -- options: - - change docs: always get how rectangle looks but not where user clicked - - two events: one is location, second is how rectangle was effected -- close w/o merging -- #9608: - - needs to either be closed or a comment on what's the actionable next step - - actual fix might be new feature: vectorselector widget? - - grabbers on ends of vector - - order cares about start/stop - - zoom provides keyboard short cuts to only go in x or y - - fix docs & treat as feature request - - -### ax.cla -- init: axes cleared when created -- not defined what it does when clearing an axes - - what is a pristine axes? - - does clearing go back to creation (including projections/kwargs) (clear all) - - projection is part of classes - - maybe recreate w/ it's kwargs? - - w/o kwarg about clearing to remove recursiveness - - how do changes to rcparam factor in? - - clear w/ rcparams as they are at call time/context - - is it just remove artists/data? (clear children) - - does that propagate down to ticks/how? - - everything is stored on the axes object (in axis children) - - end up forgetting shared axes - - label contents or also styling? -- Tom: go back down to what was passed into init - - what does this mean when styling like facecolor is passed in? -- change names/add - - reset/reinit: go back to new object w/params - - kill children/relim/clear data: remove child artists - ------------------------- -# Aug 5 2021 - -## Agenda - -### Old Business - - -### New Business -- cross Numfocus projects user forum -- donation from Junolabs? -- PR Status: - - `is:pr created:>2021-07-21 draft:false`: 17 Opened, 13 closed - - `is:pr merged:>2021-07-21`: 20 - - `is:pr is:open `: 280 - - `is:pr is:open draft:false` : 32 - - `is:pr is:open draft:false -author:anntzer` : 23 - -### PRs and issues - - -## Notes - -### forum for numfocus projects -- cross-project forum for discussion of intersecting problems. -- one monolithic place for users to ask for help. -- move our discourse there? -- Hannah let them know we are in favour, theoretically. - -### subfigures and dpi - -- dpi could be because not being passed down correctly. - -### constrained_layout at draw - -- @QuLogic will consider. - - -### colorbar work -- https://github.com/matplotlib/matplotlib/pull/19553 -- callback or weakrefs to the a list of colorbars... -- current behavior: - - ScalerMabble.set_clim() - - sets values on norms, - - change callback: notifies listeners that it's changed (draw, caches, etc) - - doesn't happen when you change norm, but passing in data does trigger SM.set_clim chain - - forward propagating happens in .set_clim, can also update the vmin/vmax norm passed into SM directly -- change in PR: - - adds change callback to norm so it doesn't need to be in set_clim - - benefit is listner gets moved to Norm -- suggestions: - - add tests to ensure that callback chain is correct - -https://github.com/matplotlib/matplotlib/pull/19515 -- should changing the min/max on the colorbar induce a change on the norms vmin/vmax - - if zoom on region, grab the x,y as your x/y lower limits, would autorelim the scale - - removed the ability to do that on contour sets - - in cbar init, set interactive on the axes depending on the mappable & the norm - - discrete norms don't have zoom -- still same zoom controls/behavior on axes -- colorbar ticks/labels (data) stay same but colors can be moved around - - -### add set_XYZ kwargs to FigureBase, SubFigure, Figure -- https://github.com/matplotlib/matplotlib/pull/20115 -- important change is adds **kwargs to `def __init__(self, **kwargs):` -- what is the scope of set? - - goes through every set_* in whatever artists it is being applied to - - set documentation rewrite looks for all .set_* methods too -- sidenote: is set rather than properties b/c many attributes have multiple properties - - ex: title has string, fontproperties, location, etc - - \ No newline at end of file diff --git a/meeting_notes/2022/q3.md b/meeting_notes/2022/q3.md index 895caac..8ce5714 100644 --- a/meeting_notes/2022/q3.md +++ b/meeting_notes/2022/q3.md @@ -25,752 +25,6 @@ Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectMan #### [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.... - - - -### 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 diff --git a/meeting_notes/2023/2023_01_jan.md b/meeting_notes/2023/2023_01_jan.md new file mode 100644 index 0000000..38c9c4d --- /dev/null +++ b/meeting_notes/2023/2023_01_jan.md @@ -0,0 +1,334 @@ +# Matplotlib Weekly Meeting: January 2023 + +###### tags: `2023 dev call` + +--- + +# 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 + +--- + +# 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 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 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 diff --git a/meeting_notes/2023/2023_02_feb.md b/meeting_notes/2023/2023_02_feb.md new file mode 100644 index 0000000..ad0e4d1 --- /dev/null +++ b/meeting_notes/2023/2023_02_feb.md @@ -0,0 +1,320 @@ +# Matplotlib Weekly Meeting: February 2023 + +###### tags: `2023 dev call` + +--- + +# 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 + +--- + +# 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.... + - + +### 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 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 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? diff --git a/meeting_notes/2023/2023_03_mar.md b/meeting_notes/2023/2023_03_mar.md new file mode 100644 index 0000000..e47bf35 --- /dev/null +++ b/meeting_notes/2023/2023_03_mar.md @@ -0,0 +1,494 @@ +# Matplotlib Weekly Meeting: March 2023 + +###### tags: `2023 dev call` + +--- + +# March 2, 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 + +--- + +# March 9, 2023 + +_attending_: + +## Agenda + +### Old business + +### New business +- [x] Next week Americas DST transition: + ``` + Europe/Berlin 2023-03-16 21:00 (+01:00 CET) + UTC 2023-03-16 20:00 (+00:00 UTC) + America/New_York 2023-03-16 16:00 (-04:00 EDT) + America/Vancouver 2023-03-16 13:00 (-07:00 PDT) + US/Hawaii 2023-03-16 10:00 (-10:00 HST) + ``` +- [x] RSE reports +- [x] 3.7.1 release? +- [x] Stale label? + +### Issues and PRs + +- [x] [name=@chahak13] Comments on https://github.com/matplotlib/matplotlib/pull/25259 (size for markers in scatter) +- [x] [name=@ksunden][initial typing implementation](https://github.com/matplotlib/matplotlib/pull/24976/) +- [x] [name=@jklymak][Tutorial and User doc overhaul](https://github.com/matplotlib/matplotlib/pull/25395) +- [ ] [name=@greglucas] Whether to add images that are knowingly bad for tests if they are a partial improvement? [#23199](https://github.com/matplotlib/matplotlib/pull/23199) +- [ ] [name=@greglucas] pcolor[mesh] proposal to return 2D array for data but 1D for get_facecolor? Issue: [#25162](https://github.com/matplotlib/matplotlib/issues/25162) PR: [#25027](https://github.com/matplotlib/matplotlib/pull/25027) +- [ ] MplGui (maybe next week) +- [ ] mplcairo (maybe next week) +- [ ] https://github.com/matplotlib/matplotlib/pull/25210 + + +## Notes + +### RSE reports + +- @ksunden: fresh issues (memory "leak"). Metatdata issue on figsave. Typing PR (sphinx warnings...) +- @QuLogic 3.7.1 release! Issue triage older ones closed. +- @melissawm: new contributor off time meeting. Two new people. @saranti @devrd attended. Very engaged... https://github.com/matplotlib/matplotlib/pull/25210 +- @tcaswell: issue triage. Testing images into separate place to move freetype. + +### 3.7.1 +- crtical bugs out. No new issues so far. + +### Stale +- maybe caught up to milestone changes... +- can we ignore milestones in stale bot? + + +### [markersize on scatter](https://github.com/matplotlib/matplotlib/pull/25259) +- 'markersize' instead of 's'. +- kwarg for scaling +- get_sizes? should return original or transformed size? + +### [initial typing implementation](https://github.com/matplotlib/matplotlib/pull/24976/) +- _many_ errors w/ mypy + - most explicable + - @ksunden has tool for doing this... + - sphinx warning... +- mark as ready for review + - independent of run-time + - editor integrations may be better +- does testing tell us if stubs get out of sync? +- compatibility with Microsoft stubs? + - choose one or other, which one? + - PR to Microsoft? + - or Microsoft will perhaps remove when we release? (panadas was removed) +- things that should get eyes on: + - anything that touches .py files (only thing will affect run time) + - `__init__.py` picked up a `__all__` + - pyplot has inline type hints (because it is partially auto-generated) + - change to boilerplate.py + - using black for autogenerated parts of the code + - adds black as a test + dev dependency + - added a typing module (provisional) + - importable top-level module to hold type aliases (e.g. color, linestye) + - makes users like a bit less annoying if they want to type hint their code using Matplotlib + - some types in test + - there to make it possible to run mypy on + - linked to Dask's guide lines + - we may want to adopt these, but not fully done yet + - run on examples? + + +### User guide re-org + - user guide is bare + - mostly just explaination + - one the other hand tutorials section had lots of user guide type things + - colors + - imshow extents + - text, annotation, ... + - the user guide is in rst, tutorials are in SG + - thus the material is organized by tools rather than by content + - worked with SG to make it possible to mix rst and .py in the same tree + - got this merged upstream + - SG used to use a custom README.txt to build the index, now can override this behavior by by having an index.rst to give you full control + - did re-organization + - including fixing all of the internal cross references + - Caswell executive decision to deletage merge authority on this to Jody to self-merge when he thinks it is ready + - at least 1 week more discussion + +--- + +# March 16, 2023 + +Note time this week and next week if in North America: +``` +Europe/Berlin 2023-03-16 21:00 (+01:00 CET) +UTC 2023-03-16 20:00 (+00:00 UTC) +America/New_York 2023-03-16 16:00 (-04:00 EDT) +America/Vancouver 2023-03-16 13:00 (-07:00 PDT) +US/Hawaii 2023-03-16 10:00 (-10:00 HST) + +Europe/Berlin 2023-03-23 21:00 (+01:00 CET) +UTC 2023-03-23 20:00 (+00:00 UTC) +America/New_York 2023-03-23 16:00 (-04:00 EDT) +America/Vancouver 2023-03-23 13:00 (-07:00 PDT) +US/Hawaii 2023-03-23 10:00 (-10:00 HST) +``` + +## Agenda + +### Old Business + +### New Business +- [x] RSE reports + + +### Issues and PRs +- [ ] [name=@greglucas] Whether to add images that are knowingly bad for tests if they are a partial improvement? [#23199](https://github.com/matplotlib/matplotlib/pull/23199) +- [ ] [name=@greglucas] pcolor[mesh] proposal to return 2D array for data but 1D for get_facecolor? Issue: [#25162](https://github.com/matplotlib/matplotlib/issues/25162) PR: [#25027](https://github.com/matplotlib/matplotlib/pull/25027) +- [ ] MplGui +- [x] mplcairo +- [ ] https://github.com/matplotlib/matplotlib/pull/25210 +- [x] [name=@chahak13] Old Issue: [PyAV movie writer](https://github.com/matplotlib/matplotlib/issues/4416) + +## Notes + +### RSE reports +- @tacaswell bug squashing (mem leak in font fallback); image regeneration prototype - test suite at external tree; will need tooling. Nice way of changing and adding a new image test + - discussed the workflow a bit this will entail + - checking when freetype changes? + - pytest-mpl has a website viewer of failing images +- @ksunden mypy over examples. + - Some errors that need fixing in examples themselves. mypy doesn't like re-using variable names for different things + - PR review + - planning for medium term projects +- @QuLogic + - PR review + - stale issues review + - draft PR backlog (webagg testing; browser or framework issues) + +### [PyAV movie writer](https://github.com/matplotlib/matplotlib/issues/4416) +- python interface to ffmpeg +- use only if you need to... +- probably a historical artifact when ffmpeg not as cohesive +- ship static wheels with ffmpeg +- maybe has threading? + - maybe a really simple multiprocessing example would be useful + - add comment with ffmpeg invocation... + +### mplcairo + +- C++ probably OK. +- Do we have maintenance expertise to keep going? + - a lot of the important code is probably C++ + - plumbing is in python +- getting within realm of possibility +- cairo and agg at similar levels of maintenance + - not sure about current agg + - cairo has few developers. + - GL backends maybe more popular... + - less concern about anti-aliasing these days due to higher res displays. + +### mplgui +- pyplot: + - keeps global state + - manages GUI event loop + - global registry of open figures +- mplgui does second without implicit global state + - can have `Figure` objects created separately, and push to GUI when we want. + - also has a Figure registry + - +- how to pull into main library? +- fig.show() ? Can't show multiple figures... +- mg.show(figs) would open many figures.... +- rewrite the pyplot interface on top of this? + +--- + +# March 23, 2023 + +``` +2023-03-23 20:00:00+00:00 +Europe/Berlin 2023-03-23 21:00:00+01:00 +UTC 2023-03-23 20:00:00+00:00 +America/New_York 2023-03-23 16:00:00-04:00 +America/Vancouver 2023-03-23 13:00:00-07:00 +US/Hawaii 2023-03-23 10:00:00-10:00 + +2023-03-30 19:00:00+00:00 +Europe/Berlin 2023-03-30 21:00:00+02:00 +UTC 2023-03-30 19:00:00+00:00 +America/New_York 2023-03-30 15:00:00-04:00 +America/Vancouver 2023-03-30 12:00:00-07:00 +US/Hawaii 2023-03-30 09:00:00-10:00 +``` + +## Agenda + +### Old Business + + +### New business + - [x] RSE reports + - [x] Do we want to participate in Grace Hopper Conference sprint again? + - [x] [name=Melissa] Plausible? + - https://plausible.io/ + - Requires an update to the pages layout template ([Example from SciPy](https://github.com/scipy/scipy/blob/main/doc/source/_templates/layout.html), [where this could go for Matplotlib](https://github.com/matplotlib/matplotlib/tree/main/doc/_templates)) + - [x] [name=Melissa] Submitting the proposal for GSoD (deadline tomorrow) + - https://hackmd.io/@matplotlib/gsod2023 + - Two technical writers interested already :tada: + - Need a contact email for folks interested + - [x] tag/index mechanics + - related to above, but somewhat orthogonal as well, as the GSoD probably won't do the technical part + +## Notes + +### RSE reports.... + +- @tacaswell: Busy with BNL work +- @ksunden: issues/pr reviews. Older units issues. Typing PR, CI works for stub test +- @QuLogic: documentation. theme; third-party-page needs to be updated. Need fixes 3.7.1 +- @melissawm: GSoD possible technical writers, 3 or 4 candidates. Need to submit project proposal. + +### GSoD +- put on wiki +- 3-4 possible candidates +- need an email for point-of-contact: organizational contact + - personal email address OK. + - CV, statment of interest + - did on public mailing list versus private + - can wait until if we know we are selected. +- clairfy that guidelines of how to tag future examples + how to decide we need a new tag is part of the diveralble. +- change budget to be a single technical writere + +### tags + +- @melissawm has a worked prototype of adding a tag directive to sphinx (https://github.com/melissawm/sphinx-tags) + - may move project under sphinx-gallery + +### GHC + +- lots of work +- maybe test coverage issues is good sprint work... + - figure out missing code paths w/o image tests + - missing tests for different data types... + - exercise different data types (dates, categorical, pandas), perhaps just smoketests, or when image testing infrastructure in place.... +- As "feature project" + - numpy did this ~70 people; ~40 had a pull request... +- September 2023 + +> Thank you for participating in the Grace Hopper Celebration’s Open Source Day 2022. Because of that submission and your overall contributions to the open source community, we would like to invite you to, again, partner with AnitaB.org for GHC’s Open Source Day 2023! +> +>Open Source Day is always an exciting opportunity for attendees to learn and become open source contributors. Trained mentors provide guidance to make contributions to listed projects. Projects that participate in the event not only gain visibility and same-day contributions, but also benefit by widening their pool of future contributors. In the past, we have seen how positively impactful OSD can be for both the attendees as well as the projects involved. +> +>Given your outstanding involvement in open source, we would be really excited for you to join us again this year. +> +>Same as last year, OSD projects must have at least one woman or non-binary core maintainer and provide mentors and triaged, technical-focused, good first issues for the event. Maintainer/mentor teams will introduce the project, answer questions, and support attendees in making contributions. OSD projects will gain visibility and same-day contributions, as well as help grow the pool of future contributors. +> +> +> +>Project maintainers require the following commitments: +> +>· Provide the minimum number of triaged issues (5+ for small projects, 30-100 for large projects) +> +>· Provide a short project overview +> +>· Attend full GHC 23 OSD event during the conference +> +>· Onboard three or more OSD-appointed mentors who will become contributors to your project, as well as guide participants on pull requests and troubleshooting and answer questions +> +>· Engage with and answer attendee questions on Slack and Zoom +> +>· Review and merge pull requests during OSD +> +>If you are interested in participating this year, please submit your project via the GHC CFP. The GHC CFP process ends on April 26th, 2023. +> +>If you are aware of or have any open source projects with female maintainers in your network whom you think are a great fit for this opportunity, please forward this email to them. We appreciate you helping us in this effort! +> +>We’re excited to work with you in 2023! + +### Plausible + +- https://plausible.io Google analytics replacement... +- more privacy respecting +- can run both at same time.... +- should get snapshot of google analytics, maybe not lose that... +- google analytics wants us to change tags? +- scientific python has a server that runs plausible... +- we also get cloudflare analytics +- @melissawm to put in PR with `conf.py` change (if possible) or template change. + +--- + +# March 30, 2023 + +``` +2023-03-30 19:00:00+00:00 +Europe/Berlin 2023-03-30 21:00:00+02:00 +UTC 2023-03-30 19:00:00+00:00 +America/New_York 2023-03-30 15:00:00-04:00 +America/Vancouver 2023-03-30 12:00:00-07:00 +US/Hawaii 2023-03-30 09:00:00-10:00 +``` + +## Agenda + +### Old Business + +- [x] Plausible [name=Melissa] No updates (my fault!) + +### New Business + +- [x] RSE Reports +- [x] semgrep https://semgrep.dev They have been emailing me if they can sponsor (give us a free account?). Does this look interesting enough to anyone to be worth responding to? +- [x] [name=Melissa] New contributor meeting next week (Tuesday, 5pm UTC). No agenda, maintainers welcome! +- [x] GSoC - how/where can candidates ask questions? + + +### Issues and PRs + +- [x] [name=@rcomer] Offset option in MultipleLocator: do we want this and if so is *offset* the best name for the parameter? [#25542](https://github.com/matplotlib/matplotlib/pull/25542) +- [x] [name=@chahak13] [#4672](https://github.com/matplotlib/matplotlib/issues/4672) Retrieve marker style info from scatter? If there isn't much interest, then can close this. +- [x] [name=@chahak13] [#6453](https://github.com/matplotlib/matplotlib/issues/6453) Small (_very_) size in scatter still has some sort of an overflow (at about e^-28 from a preliminary check). + +## Notes + +### RSE reports +- @tacaswell More work on test image refactor. Astropy pytest-mpl workflow. Hashes of images, and if hash fails, get image and do image comparison. But requires freetype to be pinned + - writing docs first to understand issues that need to be solved +- @ksunden + - typing PR merged. + - CI now run so should catch PRs that don't have stubs + - some things skipped in CI. eg axes artists methods! Devs should check that signature changes are added to the stub including expanded type. + - IDEs can do type checking using the stubs. Devs may want to use these. + - some docstrings improved (separate PRs generally) + - some return type inconsistencies that are to be done in follow-ups + - mypy doesn't check implementation to see if consistent with stubs + - questions about interfacing w/ external libraries: yes external libraries need to be consistent with our stubs, but internally we are not. + - internally examples should work with the stubs. + - stub files were used as first step... + - package installed, stub files installed as well + - try and test a few libraries? + - announce change on announce page at Discourse + - numpy type hinting w/ shape information? + - scientific python discourse? + - PDF Preview.app difference... +- @QuLogic + - working on mpl-sphinx-theme and other doc repos + - meson build tool instead of distutils. + - Working on porting to Matplotlib. Meant to be used w/ compiled projects. + - possibly different on windows +- @melissawm + - GSoD submitted (response tommorow). Hire by mid May if selected + - New contrib meet next week on Tuesday. Encourage new folks to come! + - GSoC questions? Who to talk to? Pointing to project page. Gitter channel exists, + - first issues + - Need follow-up on a couple of these... + +### Semgrep +- extra linting service +- https://semgrep.dev Follow up w/ @tacaswell if you think this is useful... + +### Offset option in MultipleLocator [#25542](https://github.com/matplotlib/matplotlib/pull/25542) + + - do we want this and if so is *offset* the best name for the parameter? + - maybe *shift*, *tick_offset*? Moving ticks... + - *offset* is fine. + - seems reasonable + - example of PR that will fail CI because of type stubs! + + ### [#4672](https://github.com/matplotlib/matplotlib/issues/4672) Retrieve marker style info from scatter? + - If there isn't much interest, then can close this. + - Yes close + +### [#6453](https://github.com/matplotlib/matplotlib/issues/6453) Overflow scatter +- Small (_very_) size in scatter still has some sort of an overflow (at about e^-28 from a preliminary check) that makes a large scatter? +- close as can't fix... stroking issue and depends heavily on the backend... +- link to other issue with donuts... diff --git a/meeting_notes/2023/2023_04_apr.md b/meeting_notes/2023/2023_04_apr.md new file mode 100644 index 0000000..1fd5810 --- /dev/null +++ b/meeting_notes/2023/2023_04_apr.md @@ -0,0 +1,438 @@ +# Matplotlib Weekly Meeting: April 2023 + +###### tags: `2023 dev call` + +--- + +# April 6, 2023 + +``` +2023-04-06 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 +``` + +## Agenda + +### Old Business + +### New Business + +- [ ] RSE reports + +### Issues and PRs + +- [x] [name=QuLogic] [Enable pre-commit for mpl-third-party?](https://github.com/matplotlib/mpl-third-party/pull/152) +- [x] [name=QuLogic] [mpl-sphinx-theme license?](https://github.com/matplotlib/mpl-sphinx-theme/issues/29) +- [ ] [name=QuLogic] [name=oscargus] eventplot corner cases [#22286](https://github.com/matplotlib/matplotlib/pull/22286) +- [ ] https://github.com/matplotlib/matplotlib/pull/25617 +- [ ] https://github.com/matplotlib/matplotlib/pull/25515 + +## Notes + +### Discussion of animitaion and figure sizing + +- using the transform + figure resize to expand figure without moving things + - scale the figure transform so that the top-right is no longer (1, 1) +- stick with being strict + +### how to manage user confusion between us and downstream + + +### RSE updates + - kyle + - follow ups to typing PR + - small detailed things + - new contributor meeting + - the align titles PR was discussed (#25591: https://github.com/matplotlib/matplotlib/pull/25591) + - gsoc management + - Investigate/address dependencies that broke our tests + - Pyside6 requires libxcb-cursor0 + - nbconvert release changed file names + - elliott + - meson and documentation work + - reviewing the typing PRs + - tom + - https://github.com/matplotlib/matplotlib/issues/25608 + - animation issue review + - ban just on streaming ffmpegs? + - just at grab-frame level + - GSoD +- melissa + - redirect GSoD stuff to a google group + - a lot of interest in GSoD + +### mpl-sphinx-theme +- License says BSD, but should be PSF.. +- pytoml one place for license +- Should use a general license like BSD +- @QuLogic to add PR to fix + +### pre-commit mpl-third-party +- recent style fixes, yaml-lint and json-schema +- enable pre-commit to check those. +- seems that yes! + +### eventplot corner cases +- [#22286](https://github.com/matplotlib/matplotlib/pull/22286) +- Wait for @oscargus + +### markersize PR +- needs rebase, but should be good... + +### rcParams +- [#25617](https://github.com/matplotlib/matplotlib/pull/25617) +- remove dict inheritence replace w/ ChainMapping... + - defautls temporarily replaced by user values in context, + - we use dict getters and setters for rcParams. + - want namespacing to work, adding to dict, its getting pretty complicated. + - iterator, `in` are hard to get right. Mostly like an dictionary, but... + - don't need rcDefault anymore. + - chain mapping allows undo one level deep or saved points. + - makes context managers easier + - default saved in chainmap + - pros: + - code simplified + - name-space access rcParams['text'] - can get keys w/o prefix + - need documenting and lay it out clearly because will be public API. + +--- + +# April 13, 2023 + +``` +2023-04-13 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 +``` + +@jklymak @chahak @ksunden @oscargus @melissawm @QWhXj01mSwmTjk5kN1H_qQ @timhoffm @tacaswell @QuLogic + +## Agenda + +### Old Business + +### New Business + +- [x] RSE reports +- [x] GHC day https://app.sessionboard.com/submit/grace-hopper-celebration-2023/f9ed4ea9-3e3e-4936-a112-c4f4af24dbfc need to submit by 4/26 +- [x] [name=Melissa] Docs on codespaces? https://github.com/matplotlib/matplotlib/issues/25398 + - May be very useful for sprints! + +### Issues and PRs + +- [x] [name=QuLogic] [name=oscargus] eventplot corner cases [#22286](https://github.com/matplotlib/matplotlib/pull/22286) +- [x] https://github.com/matplotlib/matplotlib/pull/25617 RcParams->ChainMap +- [ ] https://github.com/matplotlib/matplotlib/pull/25515 srcset for plot_directive. +- [ ] [name=oscargus] [#25642](https://github.com/matplotlib/matplotlib/pull/25642) opinions before adding tests and documentation (or closing)? +- [ ] [name=oscargus] artist property keyword argument documentation incl. rcParams [Option 1](https://github.com/matplotlib/matplotlib/pull/22699), [Option 2](https://github.com/matplotlib/matplotlib/pull/22749), [Option 3 (only a suggestion, can be combined with others)](https://github.com/matplotlib/matplotlib/issues/25644) +- [x] [name=jklymak] [bar/barh units meaning of height/width](https://github.com/matplotlib/matplotlib/pull/25667) + - eg does `bar([0, 1, 2], height=['cat', 'dog', 'cat'])` really get used, and why? +- Bump list (probably nothing to discuss) + - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) + - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) + - [mathbfit mathtext command](https://github.com/matplotlib/matplotlib/pull/25359) + - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) + - [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) +- [x] [name=Melissa] CircleCI token fix https://github.com/matplotlib/matplotlib/pull/25672 + - Maybe related? https://app.circleci.com/pipelines/github/matplotlib/matplotlib/23508 +## Notes + +### RSE updates +- @tacaswell more thinking about test image overhaul. + - text file gets made with list of files: + - filename version timestamp + - this will show up in the commit with git/blame + - SHA has issues with rebasing etc... + - images not hash-stable in general (have metadata) + - can get candidates for images that with or will not work. + - will have a test repo +- @ksunden: + - typing issues + - type checkers over dependencies (xarray, seaborn, plotnine) some errors on our end to fix. + - pandas: makes hard to check, no type hints plotting routines + - CI issues + - nbconvert, still buggy - PR on the way + - mypy moves fast - bug filed - pinned mypy + - GSOC: reviewd apps. Elliott and Kyle have two or three likely candidates. + - mathtext, bivariate colornorm + - data prototype work: + - Expanding Patch support + - Validating formatters/converter compatibility [#25662](https://github.com/matplotlib/matplotlib/pull/25662) +- @melissawm + - GSoD: feedback and information + - CircleCI token update + - other repos may need this too + - codecov removed on Circle + - Codespaces? + - how-to in our docs? + - vscode on browser... + - docker image pre-set dev environment + - but docker sunsetting? + - numpy/scipy decided to drop it + - useful for sprints + - need a json file for the environment + - xvfb for seeing figures... + - hard to get interactive figures in vscode + - @melissawm will see if there is any way to create windows and other blockers. + - how ephemeral? Can save multiple sessions. 30 days persistence. +- @QuLogic + - CI fixing, GSoC, typing + - Azure failing tk broken. Reported... + - old issue review and PRs + +### Grace Hopper +- 26 April: sprint +- increase test coverage - largely checking datetime64 + +### Event plot corner cases + +- https://github.com/matplotlib/matplotlib/pull/22286 + +### rcParams: ChainMap +- https://github.com/matplotlib/matplotlib/pull/25617 +- better protection of rcParam global +- defaults stored in base layer +- contexts more elegant +- need to check performance of ChainMap versus dict. +- some top-level names that don't get a sub namespace. +- introduces new API, but ideally back compatible + - maybe new API into a different PR? +- 3.7 we already had deprecators for `dict.__set_item__`. + - so 3.9 would be target if we followed this deprecation. + - but no one knows because we can't warn on it + - maybe not really public API + +--- + +# April 20, 2023 + +``` +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 +``` + +## Agenda + +Attending: @tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ @jklymak @pXw4hSgTQF2--OciPYwa1w @melissawm @oscargus @devrd @chahak @ksunden @QuLogic + +### Old Business + +### New Business + +- [x] RSE reports +- [x] GHC day https://app.sessionboard.com/submit/grace-hopper-celebration-2023/f9ed4ea9-3e3e-4936-a112-c4f4af24dbfc need to submit by 4/26 + - need 3 people willing to have their name + email listed as mentors +- [x] [name=oscargus] Add automatic comment on "Good first issue" with appropriate links to guidelines etc? https://github.com/marketplace/actions/create-or-update-comment https://docs.github.com/en/actions/managing-issues-and-pull-requests/commenting-on-an-issue-when-a-label-is-added +- [x] website TLS issues + +### Issues and PRs + +- [x] https://github.com/matplotlib/matplotlib/pull/25515 srcset for plot_directive. +- [x] [name=oscargus] [#25642](https://github.com/matplotlib/matplotlib/pull/25642) opinions before adding tests and documentation (or closing)? +- [ ] [name=oscargus] artist property keyword argument documentation incl. rcParams [Option 1](https://github.com/matplotlib/matplotlib/pull/22699), [Option 2](https://github.com/matplotlib/matplotlib/pull/22749), [Option 3 (only a suggestion, can be combined with others)](https://github.com/matplotlib/matplotlib/issues/25644) +- [x] [Figure repr](https://github.com/matplotlib/matplotlib/issues/9372) This should be closed I believe +- [x] [extended wilkinson method for tick locators](https://github.com/matplotlib/matplotlib/issues/9373) still intended? +- Bump list (probably nothing to discuss) + - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) + - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) + - [mathbfit mathtext command](https://github.com/matplotlib/matplotlib/pull/25359) + - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) + - [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) + +## Notes + +### RSE updates +- @tacaswell: Image set work, PR.. + - [PR](https://github.com/matplotlib/matplotlib/pull/25734) now open. Look at and discuss next week + - https://github.com/tacaswell/mpl-imageset-demo +- @ksunden + - PR review etc. + - data prototype work + - GSoC work + - typing in down-stream libraries +- @melissawm + - travel + - SGoD proposals ongoing; good candidates +- @QuLogic + - hiDPI work + - postscript work + +### Grace Hopper +- due 26 April: 3 names/addresses + +### Scipy tutorial +- accepted for tutorial (July) +- perhaps seek input + +### Good First Issue +- maybe add bot to add a comment to good first issue pointing to devdocs +- should be possible with current workflows +- method to better screen + - try to add short justification for why good first issue +- add info to PR template to make sure people link.. +- communicating crossed PRs + +### Website +- @QuLogic is fixing manually + +### [srcset for plot_directive](https://github.com/matplotlib/matplotlib/pull/25515). +- needs review + +### [rcParams for 3d](https://github.com/matplotlib/matplotlib/pull/25642) +- general idea + +### decorator for kwargs that have rcParams +- decorators for every function +- versus parsing the docstring of the setter/getter? + +### Wilkinson ticks +* maybe want, needs to be prototyped and evaluated, possibly as an external library + +--- + +# April 27, 2023 + +## Agenda + +### Old business +- [ ] GSOD + +### New Business + - [x] RSE reports (Weekly worklog not used?) + - [x] [name=tacaswell] pypi organization for mpl ? https://matrix.to/#/!BXmyZMTnRjWJldDRLV:gitter.im/$MJFPkcAmG4UHgOKC0dqpXCkVBm7EG4V-ihNHyh-2MMc?via=gitter.im&via=matrix.org&via=aria-net.org (brought up on gitter by @dopplershift ) + - [x] [name=oscargus] Should there be unused imports in the stub files? Example: `FT2Image` in `mathtext.pyi` + - [x] [name=oscargus] PS vs. EPS. Is PS still needed (basically PS expects a paper size, which is buggy, and most users probably expects a properly sized figure anyway)? + - [x] [name=QuLogic] Removing travis + - [x] [name=QuLogic] server-side redirects: mpl-third-party and examples + - [x] [name=story645] GSOD - closing applications and making short list tomorrow?- anyone want to participate in writer selection? + - [x] [name=story645] registering for an account on bluesky to squat name/general policy for registering accounts + +### Issues and PRs +- [ ] [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) Very likely to end up in rebase limbo. +- [x] [name=@chahak13] Added performance impact of using ChainMap for RcParams in description. ([#25617](https://github.com/matplotlib/matplotlib/pull/25617)) +- Bump list (probably nothing to discuss) + - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) + - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) - should it wait on implementing seed setting parameter, which has a proposed patch + - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) + + +## Notes + +### RSE updates + - Kyle: + - normal issue / PR work + - 2 versions of code validate formatters / converters, may need new API + - Tom + - nerd-snipped into fixing a CPython bug + - general issue / PR review + - Elliott + - continued work on post script + - resolved most of the PS bugs that are not spcefic to the PS format + - continued work on DPI refactor + - might be able to generalize the DPI handling across vector backends + - but we have a lot of hard-coded 72s in the backends + - tests seem to run, but worry about lots of edge cases + - not clear we really want / need to do this, but it is working + - might help with the pdf/ps issues with shifted lines and colorbars + - @jklymak is also working on the shifted (low-dpi) rasterized embeds in vector backends at low DPI + - part of the problem is that because there is a stroke on the border, the rasterize includes this boarder, but the computed bbox does not + - may need "true bounding box" + - worklog stopped being filled in, we should start doing this again + - https://hackmd.io/@matplotlib/HyVoUHlSo + - +### Pypi org +- pypi now has organizations + - still not a lot of information + - free for community projects, use to generate revenue + - consolidate our packages into one org + - expectation is that teams will lets us do better ACL +- do we want to ask for an org? + - go our own or a community wide one? +- decision: lets go ahead and get one @dopplershift will do + + +### unused imports in stub files +- multiple levels of imports in stub files + - everything in .py file + what is needed to do type + - just what you need + - not a clear community standard +- what (re)-imported things are considered part of the public API +- mympy only considerd things imports via `import Foo as Foo` to be publically exported +- may have to be case-by-case + - but in this case it should be removed + +### PS versus EPS +- papersize: + - https://github.com/matplotlib/matplotlib/issues/7551 + - automatic size picking does not quite work + - always picks something in the b-series + - b10 is near b1 not b9 so never get b10 + - do we actually _need_ paper size? + - we set the paper size, place the figure in the middle, and then crop to the figure + - if user specified a paper size respect, but drop "auto" behavior + - @oscargus notes PS needs a paper size, but @QuLogic 's understanding of the spec is that we do not + - think it is only used for media selection when sending straight to a printer +- propsoals + - deprecate the "auto" functionality + - default is currently "letter", switch to making the figure just the right size + - concerns + - people who are making PS _may_ be sending them straight to printers! + - deprecate the whole thing? + - basically the same code as eps so cost of keeping around is low + - slightly diffrent header / footer than eps + - can we get better results via pdf -> external distiller to eps + - some cases where it does not work perfectly (related to hatching) + - what does pdf -> eps via distiller do with transparency? + - +**decision** + +deprecate auto, punt on the rest + +### Travis + +notification: has been turned off for a year, will remove + +### server side re-directs + +- proposal: + - put in a server side re-direct to matplotlib.org/third-party from matplotlib/mpl-third-party to reduce redundency + - name needs some discussion + - used to be thirdpartypackages + - currently https://matplotlib.org/mpl-third-party/ + - 3pp is a propsoal + - discussion of getting really short re-directs + - decided on going back to thirdpartypackage + +- issues with gallery / examples naming + - examples get served under matplotlib.org/stable/gallery but come from gallery/examples + - propsoal: + - change where they are written to to matplotlib.org/stable/examples + - add server side re-direct from gallary -> examples + - probably want to keep the re-direct forever (but use 30-permenent redirect) + - configuration is in https://github.com/matplotlib/matplotlib.org + + +### GSOD +- got a lot of propsols, enough good candidates +- plan to short list tomorrow + - if you want to be involved ping @story645 and @melissawm +- google wants writer hired by May 10 +- project is about cataloging existing content not writing new content + - index gallery and develop tagging scheme + - write developer docs on how to tag new things in the future, how to add new tags + +### do we want to register on new platforms? + +- bluesky + - do it! diff --git a/meeting_notes/2023/2023_05_may.md b/meeting_notes/2023/2023_05_may.md new file mode 100644 index 0000000..60d8229 --- /dev/null +++ b/meeting_notes/2023/2023_05_may.md @@ -0,0 +1,301 @@ +# Matplotlib Weekly Meeting: May 2023 + +###### tags: `2023 dev call` + +--- + +# May 4, 2023 + +## Agenda + +### Old business + +### New business + - [x] RSE updates + - [x] [name=tacaswell] broken pypy39 wheels https://github.com/matplotlib/matplotlib/issues/25811 + - [x] GSOD + - [x] GSOC + +## Notes + +### GSOC + - we were accepted for GSOC with the Math Text proposal by devRD (just posted!) + +### GSOD + - currently doing interviews, part of the way through interview pool, should decide by Sat + - deadline to hire is May 10 (need to identify person and tell Google, not have contracts signed) + - working with NF to set up the IC contracts, money will come through open collective + +### RSE updates + - Caswell + - PR to CPython for input issue + - example PR for new image scheme + - PR review + - Kyle + - general issue / PR review + - tracking down fallout from numpy changing sin/cos computatitons + - single LUP changes broke 3 tests + - PR just open + - work on validating converters and formatters + + - Elliott + - laptop drive died, lost a bit of work + time + - stale bugs triage + - work on images + - bit of work on confusing PDF compression bug + - Melissa + - GSOD + - as part of grant, worked with DEI consultant who wrote a report + - report is now public, will put as news item on our home page + - starting Culture Labs + +### pull pypy39 wheels + +- +- https://github.com/numpy/numpy/pull/23528 may be related +- *we will yank the pypy39 wheel* +- won't remove from CI, just note to not upload + + +### image externalization work + +- (described) + +--- + +# May 11, 2023 + +## Agenda + +### Old business + - [x] [name=story645] in process of hiring GSOD writer [Eva](https://discourse.matplotlib.org/t/gsod-writer-hired/23796) + - [x] [name=story645] announce GSOD and GSOC hiring? on homepage + +### New business +- [x] RSE updates + +### Issues and PRs + +- [x] [name=@greglucas] Contourset as a single LineCollection/PatchCollection [25247](https://github.com/matplotlib/matplotlib/pull/25247) + - ~2 MB in image changes associated with this. Needs Mypy help. https://github.com/matplotlib/matplotlib/pull/25247#issuecomment-1537842858 +- [x] [name=@oscargus] [Shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) + - Also makes sense to merge the above before [#24666](https://github.com/matplotlib/matplotlib/pull/24666) (I can fix that if the author is not up for it) +- [x] [name=@greglucas] Memory leak testing [25853](https://github.com/matplotlib/matplotlib/pull/25853#pullrequestreview-1421626522). We currently check memory thresholds, but do we want to ensure objects aren't in the list of gc.get_objects() using objgraph as an optional test dependency on one of the runners? +- [ ] [name=@oscargus] [Minimum QT version](https://github.com/matplotlib/matplotlib/pull/25363) +- [x] [name=@chahak13] What is the usecase for `rcdefaults`? Is the idea to go back to the default "style" values or the values present in `matplotlibrc`? If I'm reading it right, `rcdefaults` is almost entirely wrong. [Link](https://github.com/matplotlib/matplotlib/blob/8faa835c81d9cf12342992521ddb95e9a645bc36/lib/matplotlib/__init__.py#L1068-L1091) +- [x] [name=@chahak13] Scaling markers in scatter. Needs review https://github.com/matplotlib/matplotlib/pull/25259 + +## Notes + +### introductions +### gsoc project + - mathtext improvements + - improved latex integrations + - mentors are Kyle and Elliott + +### gsoc/gsod + - we should put on web page + - @kyle will do GSOC + - @story645 or @melissawm please do GSOD + +### RSE updates + - Caswell + - vacation / busy with BNL + - engaging with upstream packgaing discussion + - Kyle + - general issue review + - started GSOC meetings + - attended packaging round table + - thinking about data-prototype + - Elliott + - still fighting with laptop + - orphaned PRs + +### Issues +#### contour changes + - [25247](https://github.com/matplotlib/matplotlib/pull/25247) + - massively speeds things + - changes a lot of test images (2M) + - hold off for ~a month~ two weeks? + - to give @tacaswell a chance to finish the image update work + - also requried for fixing alpha in contours in pdf + +#### shadow + pie + - seems reasonable, just needs review (gone idle) + - the linked PR should make use of new functionality for legend shadow + +#### mememory leak + +- had a number of bugs where we have long-lived cyclic references +- should we add tests to look for memory "leaks"? +- we do have ASV still sort of set up + - could set up a memory-based benchmarks + - but this also requires getting it setup again and running +- could do something like what we do for the callback stack leakage? + - Elliott will look at +- https://www.fugue.co/blog/diagnosing-and-fixing-memory-leaks-in-python.html +- https://pypi.org/project/pytest-leaks/ + +#### rcparams discussion +- `clear` is no op and should be replaced by resetting to defaults function + +#### GSOD +- put on next week agenda making a gitter channel for documentation +- communicate public work and update plan + +#### + +--- + +# May 18, 2023 + +@attendance: @kyle, @tacaswell, @efiring, @story645 , @melissawm, @Eva Sibinga, @Haoying Zhang, @Chahak Mehta. @Ratna, @ianthomas23 +## Agenda + +### Old business + - [x] [name=tacaswell] update on image testing overhaul + - [ ] [name=elliott] update on leak finding + +### New business + - [x] RSE updates + - [x] GSOC and GSOD updates + - [x] [name=story645] adding outside collaborators + - [x] [name=story645] general purpose docs gitter/matrix channel + - [x] [name=story645] github-matrix bridging + - [x] [name=melissawm] GSoD Update: Technical writer hiring in progress :tada: + - [x] [casting to numpy]( https://github.com/matplotlib/matplotlib/issues/25882#issuecomment-1553480984) + - [x] [name=mellissa] explaination pages moving + +### Issues and PRs +- [x] [name=story645] nav bar changes: + - [x] [develop->contribute](https://github.com/matplotlib/mpl-sphinx-theme/pull/71) - it was contribute first & not all contributions are code + - [x] [plot types - user guide - tutorials - examples - reference](https://github.com/matplotlib/mpl-sphinx-theme/pull/72) - overview to details + +## Notes + +### RSE and GSOC and GSoD: +- @ksunden SciPy summit. Data prototype work, issue review +- @tacaswell, image testing, admin, PR review etc +- @melissawm: doc issues. Inter-project working groups/culture labs (more info here: https://discourse.matplotlib.org/t/fostering-an-inclusive-culture-call-for-participation/23783) +- @ratna: GSOC: relation operators, some spinup meetings + - mathtext set of issues... +- @eva: starting next week with @melissawm and @story645 + - indexing gallery examples and information architecture... + +### Adding outside collaborators +- matplotlib-steering-council@numfocus.org + +### Gitter +- Currently no bridging between github and matrix/gitter +- new channel for docs? +- repurpose GSoD? or community? +- ask for incubator adds on the community channel? + +### Casting to numpy +- frequently hit issues where we have issue + - people try to pass us "array like thing" + - sometimes crashes + - in this case slow +- do we have a good documentation of exactly what we take + - push this up the Kyle's TODO list for 2 weeks +- xarray has ability to carry units as meta-data, but not programatically used +- numpy's new dtypes can in theory carry physical units + +### Moving example pages +- long discussion about what the right organization of the user guide is +- old organization had bad + - conceptual grouping + - depth of details grouping +- we should add a new "archiceture" top-level in the user guide + - move API and backend here + - put new short-versionof arch of open source software blurb (Mellissa is working on) +- maybe consider tagging these like examples +- should stay in users not dev because they really are for users not just for mpl devs + +--- + +# May 25, 2023 + +@attendance: + +## Agenda + +### Old business +- [x] [name=story645] gitter to matrix: + - spaces is the [official replacement](https://github.com/vector-im/roadmap/issues/26) + - spaces based authentication is a [WIP spec](https://github.com/matrix-org/matrix-spec-proposals/pull/2962) + - proposal: use spaces w/ manual registration until features are implemented + - activity side panel is [stalled pr](https://github.com/matrix-org/matrix-hookshot/issues/631) on matrix-hookshot (used for bridging) + +### New business + + - [x] RSE updates + - [x] GSOC and GSOD updates + - [x] @kolibril13 Short Matplotlib demo + +### Issues and PRs +- [x] [name=story645] [plot types - user guide - tutorials - examples - reference](https://github.com/matplotlib/mpl-sphinx-theme/pull/72) - overview to details +- [x] [name=tacaswell] how to document transXYZ attributes https://github.com/matplotlib/matplotlib/pull/25922 + +## Notes + +### RSE updates +- @tacaswell, some PR review +- @QuLogic meson work, working on windows issues, older orphaned PRs - reduce PR count. +- @Ratna: GSOC relational operator, PRs waiting on review... + - PR: https://github.com/matplotlib/matplotlib/pull/25933 +- GSOD: Met w/ Eva - making spreadsheet, working on timeline; some permission issues. + - work log: https://hackmd.io/uiu3amD3SpOFrGyFUOK07Q + +### Demo +- incorporate tldraw into Matplotlib https://github.com/kolibril13/jupyter-tldraw/tree/ff285974174189f34545be50f5dc71eb41302cb7/future_ideas/annotate_matplotlib +- demo of gallery searcher that narrows down the thumbnails to just those that have searchterms +https://discourse.matplotlib.org/t/the-matplotlib-gallery-with-dynamic-search/23826?u=kolibril13 + +### Gitter +- "spaces" replacement for setting permissions on rooms + - no linked authentication + - add new folks +- sidebar with status stalled PR +- pr on comms guide that mod access is by request + +### Navbars: +- dev->contribute +- do it! + +### rename exmaples +- rename +- re-directs + - need to add stable/gallery -> stable/examples 301 when we publish + +### transAxes/transData etc +- not documented on the objects +- https://github.com/matplotlib/matplotlib/pull/25922 +- Options: + - class variable: defaults None w/ docstring + - type unstable + - maybe use identity transfrom an default, but could lead to other confusing behivor + - properties + - better for interactive query + - can make read-only (though we may mutate internally) + - slower than attribute look up + - add to docstring + - risk getting out of sync + - more manual query + - class variable with just type + - but would start to leak typing information into the code +- make properties snake case (some of the only places that use camel case) + - have talked about this before but decided too much work + + +Consenus + - go with properties + - but do coarse bench marks to see if it matters + - option to look at read-only + - would need a deprecation cycle + - check how disruptive this would be + - consider renaming + - https://github.com/matplotlib/matplotlib/pull/11051 is prior art + - the docstrings are not yet clear + - need to be more explicit about source and target coordinate systems + - link to transform tutorial diff --git a/meeting_notes/2023/2023_06_jun.md b/meeting_notes/2023/2023_06_jun.md new file mode 100644 index 0000000..50ac9d5 --- /dev/null +++ b/meeting_notes/2023/2023_06_jun.md @@ -0,0 +1,381 @@ +# Matplotlib Weekly Meeting: June 2023 + +###### tags: `2023 dev call` + +--- + +# June 1, 2023 + +@attendance: @ksunden, @jklymak, @QuLogic, @efiring, Haoying Zhang (@stevezhang1999), @melissawm, @oscargus, Ratna(@devRD), @rcomer, @tacaswell, @story645 + +## Agenda + +### Old business + +### New business + + - [x] RSE updates + - [x] GSOC and GSOD updates + - [x] [name=tacaswell] 3.8.0 release schedule + +### Issues and PRs + - [x] [name=oscargus] [Data cursor](https://github.com/matplotlib/matplotlib/issues/9957) - should make a decision, not just let it become inactive. + - [Data tooltip](https://github.com/matplotlib/matplotlib/issues/23378) is a related approach that may be worth considering in the discussion. ([Related PR](https://github.com/matplotlib/matplotlib/pull/25831)) + - [x] [name=tacaswell] slimming down (or expanding) subpackage imports https://github.com/matplotlib/matplotlib/pull/26017 + - [ ] [name=jklymak] Issue expiry? https://github.com/matplotlib/matplotlib/pull/25938 + +## Notes + +### RSEs + +- @ksunden: At scipy maintenrs confab in Seattle. meeseeksbot being renamed to "lumberbot" (maybe). Nightly wheel location being cleaned up. + - units infrastructure, units dtype in numpy. With sebastien. + - Catching up +- @QuLogic: Old PR work. Meson work ready. Some CI issues broken last week fixed. +- @tacaswell: issue review; Breaking SciPy doc builds on multiple cores on a Mac. +- @melissawm: Old PRs that haven't been getting through. New contributor meeting Tuesday 1300-1400 EDT. Melissa can't do it - can anyone help? @tacaswell and @story645 can help. + +### GSOD: +- prototype of tagging. Draft of guidelines by end of summer. +- tagging 70%. + +### GSOC: +- @Ratna: operater in Mathtext. Relational operators, and new ones. @kyle and @QuLogic mentoring. @oscargus working on similar things. Prioritization? +- Maybe page to track the project? Mayeb GitHib Project +- just started this week. + +### 3.8 release +- July +- issues that might block + - Image testing overhaul + - type hints in docs. + - user explain / top level re-org +- RC last week June, release middle/end July + - before SciPy (at least RC) +- New features: + - type hints + - ECDF, figure titles, math things. + - a lot of API changes + +### Data Cursor: + - [Data cursor](https://github.com/matplotlib/matplotlib/issues/9957) - should make a decision, not just let it become inactive. + - [Data tooltip] + - Example of issue that expired. + - mplcursors exists; should stay thirdparty? + - native better? + - hover and click + - Native tooltips... + - https://github.com/matplotlib/matplotlib/pull/23378 + - tooltips themselves generally useful, which we don't have. + - Hover events? + - https://github.com/matplotlib/matplotlib/pull/25831 + - probably don't want hover events. + - Conclusion: + - #25831 probably discouraged (@tacaswell will comment) + - #23378 tooltips support needed + - #9957 close and not accept + +### importing `matplotlib` +- trying to strip things that don't need to be there. +- https://github.com/matplotlib/matplotlib/pull/26017 +- very small import time difference. +- SciPy is discussing lazy module importing +- maybe import `matplotlib.figure` by default + - you need `Figure` to do what it is we think it is you do with Matplotlib +- conclusion: + - close PR + - leave expanding it as food for thought + +### Speed of expiry bot + +- go faster or go slower + - keep same for now? + - should label more as "keep" actively. + +--- + +# June 8, 2023 + +@attendance: @efiring, @z5VMbcx5SRm9Et4RWXmJrA chahakmehta, @devRD(ratna), @greglucas, @ksunden, @brianholland, @ksunden, @qulogic, @tacaswell, @story645, @anntzer + +## Agenda + +### Old business +### New Business + - [x] RSE updates + - [x] GSOC and GSOD updates + +### Issues and PRs + - [x] namespace package issue https://github.com/matplotlib/matplotlib/pull/25381/files + - [x] bold symbol PR https://github.com/matplotlib/matplotlib/pull/25661 + + +## Notes + - RSE updates + - caswell: not as much as I want, but mostly issues + - Kyle: dev docs on how to handle typehints + deprecations, started work on scipy tutorial (need to push to github), data prototype work + - Elliott: fixed website. We have alerts, but they did not fire. Looking into making webhooks error. Working on older PRs (PDF images, re-viving arm testing, moving to pyproject.toml (in prep of move to meson)) + - GSOD + - Eva spent the week getting sphinx tagging working and getting setup for development + - should see public work in the next few weeks + - GSOC + - kick off meeting on Monday + - starting to prioritize issue + - working on Open PRs + - starting to look at accent and positioning + +### namespace packages + - https://github.com/matplotlib/matplotlib/pull/25381 + - name space packages need to have character-for-character identical __init__.py + - wheels have been stripping these for a while + - develwheel on widows has been putting (a different version) back + + + *decision* + + - merge the mpl PR + - @ksunden will put a PR into basemap to bring thing in line too + +### pyproject.toml move +- requires everything to be declarative +- we have a bunch of non-declarative stuff in our setup.py + - only require setuptools_scm when in a git repo + - may not be a way to do this auto-magically + - maybe move into [dev] + - and add pytest, change install instructions for dev to target `.[dev]` + - provide options to build against system freetype / qhull + - can probably handle that in the build process + - should we ship the test images or not in the wheels + - can do this with meson + +*decision* + + - @QuLogic will take over this PR and merge with meson work + +### mouse over on twinned axes + +https://github.com/matplotlib/matplotlib/pull/25556 + +discussion is over how to format + +criteria: + - not too much width + - be very clear to the mind + +preference to last version in https://github.com/matplotlib/matplotlib/pull/25556#discussion_r122297156 of + +x, y = (1, 2) | (2, 3) + +discussion about if we should change the non-twinned axes to also be + +x, y = (1, 2) + +--- + +# June 15, 2023 + +## Agenda +_attending_: @melissawm, @story645, @jklymak, @ksunden, @QuLogic, @tacaswell, @rcomer, @ianthomas23, @devRD, @greglucas, @efiring + +### Old business +### New business + +- [x] RSE updates +- [x] GSOC and GSOD updates +- [x] [name=tacaswell] stop building 32bit windows wheels [contourpy] +- [x] [name=QuLogic] also stop building `universal2` macOS wheels [#26125](https://github.com/matplotlib/matplotlib/pull/26125) +- [ ] [name=tacaswell] new contributor PRs + - [ ] https://github.com/matplotlib/matplotlib/pull/25839 + - [ ] https://github.com/matplotlib/matplotlib/pull/22761 + - [ ] If any maintainers have time, please take a look at the "Needs review" (and the "Needs decision") column on https://github.com/orgs/matplotlib/projects/1/views/3 +- [x] [name=tacaswell] 3.8 burn down +- [x] [name=tacaswell] progress on image test overhaul + +### PRs +- [x] [name=hannah] [python 3 setup note](https://github.com/matplotlib/matplotlib/pull/26084) +- [x] [name=greglucas] pcolor more meshlike https://github.com/matplotlib/matplotlib/pull/25027 +- [x] [name=greglucas] Contour rework merge? https://github.com/matplotlib/matplotlib/pull/25247 Was holding off for baseline image work + +## Notes + +### RSE updates + - kyle: scipy tutorial prep; current on personal account, will move to mpl when done. Lots of issue review. + - sprints at scipy? Maybe to mentored sprints + - July 15 and 16 + - using notebooks/ipympl for tutorial + - Tom: baseline imaging progress. Reviews + - Melissa: travelling; codespaces setup (versus local dev) + - Elliott: CI work - ARM build; Meson work; newer versions of TexLive etc. Update windows install instructions. +- Ratna (GSOC): Older mathtext issues and PRs +- GSOD: making progress + +### Win32 and ARM universal2 wheel builds: +- stop win32? +- cpython has 32bit builds +- numpy/scipy don't have 32 bit wheeels. +- pypy stats hard to believe (most CI) +- ARM universal2 + - already ship individual (ARM and Intel) + - universal installers can fuse them anyways if they need to + - numpy doesn't have these wheels + +### 3.8 burndown +- keep working on it? +- RC 30 June - what _needs_ to go in? +- rcParams update? + - dict subclass +- image tests may be optimistic... + - might make backporting a pain + - image tests may not be backported. + - +- push rcparams work to 3.9 + - do not do this under pressure + - gives a chance to extend it over time + - rcparams have historically been brittle, we should make sure we dog-food this. +- get subfigure_mosaic landed + - new ish contributor, waiting on tests +- pcolor->more mesh like + - pcolor more meshlike https://github.com/matplotlib/matplotlib/pull/25027 + - downstream broken? + - needs more API notes +- contour updates https://github.com/matplotlib/matplotlib/pull/25247/files + - good idea, should go in + - needs better API notes + +### Test images +- lots of progress +- command line interface to help with managing files or caches +- touch base with pytest-mpl + +--- + +# June 22, 2023 + +## Agenda +_attending_: @oscargus @efiring @ksunden @QuLogic @greglucas @melissawm @devRD @evasibinga @story645 + +### Old business +### New business +- [X] RSE updates +- [X] GSOC and GSOD updates +### PRs +- Non-draft, 3.8 milestone: https://github.com/matplotlib/matplotlib/pulls?page=1&q=is%3Aopen+is%3Apr+milestone%3Av3.8.0+draft%3Afalse +- [name=oscargus] Linestyle handing unification https://github.com/matplotlib/matplotlib/pull/23056 +- [name=Melissa] Please test out [codespaces](https://docs.github.com/codespaces) if you are interested and give feedback/ask for more features if you notice anything :) +- [name=oscargus] Performance improvements + - https://github.com/matplotlib/matplotlib/pull/26164 + - https://github.com/matplotlib/matplotlib/pull/26167 + - https://github.com/matplotlib/matplotlib/pull/26168 (not really performance but still a continuation) + +## Notes + +### RSE updates +- Kyle: Took a few days off this week, catching up afterwards +- Elliott: CI stuff, getting 3.12 working, checking Deprecations; some doc work, cleanup (e.g., images no longer in use) +- Melissa: got CodeSpaces working for mpl; embedded fluxbox desktop; ubuntu-based; available via button on github; some limits on computation usage. Note: does not automatically activate the conda environment. Try it; it is a work in progress. Requests for improvements have been submitted to CodeSpaces. [Tracking issue](https://github.com/matplotlib/matplotlib/issues/26169) + +### GSoC / GSoD updates +- Ratna: looking at older issues; working on PR on subscript stacking (e.g. multiple conditions on a summation). +- Eva: gallery tagging: spreadsheet. What tags make sense? Process for proposing new tags? Testing use of a GUI for image tagging. + +### PRs +- [name=oscargus] Linestyle handing unification [#23056](https://github.com/matplotlib/matplotlib/pull/23056). + - Suggestion: Add a "future warning"? + - Example of a similar case suggested by Elliott. + - [#12380](https://github.com/matplotlib/matplotlib/pull/12380) -> [#16474](https://github.com/matplotlib/matplotlib/pull/16474) -> [#23302](https://github.com/matplotlib/matplotlib/pull/23302) + - https://github.com/matplotlib/matplotlib/pull/12380#issuecomment-426683961 + - Does [#24257](https://github.com/matplotlib/matplotlib/pull/24257) provide a similar model? Not exactly the same, because it involves a change in attribute behavior, not the type of a returned object. + - Greg asked whether the use of a 2-cycle kwarg causes more pain than it relieves. + - What is the usage case for get_linestyle? Seaborn uses it in bar https://github.com/search?q=get_linestyle%28%29&type=code + - Possible solution: warn people to use "get_dashes" for collections. +- [name=oscargus] Performance improvements + - https://github.com/matplotlib/matplotlib/pull/26164 reduces unneeded calls to clear when Axes are created. + - What to do about "register_axis" calls (spines dictionary) + - https://github.com/matplotlib/matplotlib/pull/26167 (not controversial) + - https://github.com/matplotlib/matplotlib/pull/26168 (not really performance but still a continuation) + - Discussion about Ticking and optimizations: https://github.com/matplotlib/matplotlib/issues/5665 + - Need something like a text collection. + - Also consider grid. + +--- + +# June 29, 2023 + +## Agenda +_attending_: @rcomer, @devrd, @ksunden, @esibinga, @efiring, @melissawm, @tacaswell, @QuLogic, @story645, @ryliewei + +### Old business + +### New business + +- [x] RSE updates +- [x] GSOC and GSOD updates +- [x] 3.7.2 release +- [ ] 3.8 burn down +- [x] [name=hannah] start new notes because of lag + + +### PRs + +- Non-draft, 3.8 milestone: https://github.com/matplotlib/matplotlib/pulls?page=1&q=is%3Aopen+is%3Apr+milestone%3Av3.8.0+draft%3Afalse +- Location and rotation of offset text in 3D https://github.com/matplotlib/matplotlib/pull/26185 +- [name=story645] [sketch seed](https://github.com/matplotlib/matplotlib/pull/26050) + - [path randomness is repetative](https://github.com/matplotlib/matplotlib/issues/13479) + - needs consensus: same artists diff or same in seed=arbitrary +## Notes + +### RSE, GSOC, GSOD update + - Caswell: time off last week, some review work + - Kyle: + - pyparsing investigation, need changes to upstream to unbreak our test + - found a 25% improvement in parsing mathtext + - general review + - Elliott + - bit of documentation work + - follow up on py312 fallout + - mpl 3.8 burndown and backports for 3.7.2 + - Melissa + - documentation (code spaces and proposal for re-org of dev docs) + - Ratna + - working on PRs + - working on adding latin moden + - Eva + - drafting tag hiegharchise + - aiming for August 1 for docs on how to add new categories + - working on defining example vs tutorial + +### 3.7.2 +- all backports are created, but GHA was having issues last night +- a couple of still open PRs + - https://github.com/matplotlib/matplotlib/pull/25960 +## Pull Requsets +### offset texts in 3D +- offset alignment in Z/X axis: + - baseline of z is label is offset uncentered + - x label rotates/anchor changes on rotation of figure + decisions: + - orient relative to axis labels and center as specified in [3D offset example](https://matplotlib.org/stable/gallery/mplot3d/offset.html) + - https://github.com/matplotlib/matplotlib/pull/26185 only needs to be squashed. + +## 3.8 burndown + +- most of critical are merged +- pcolor more meshlike still outstanding https://github.com/matplotlib/matplotlib/pull/25027 +- subfigure_mosaic stil outstanding https://github.com/matplotlib/matplotlib/pull/26061 + +## random seed + +- make sure typing is 3 or 4 tuple +- implementation: move seed management to python + - make a private attribute on figure + - xkcd will get/set the rcparam seed + - render manages the seed update/does the incrementing + - reset the count on the renderer + +- add rcparams: + - sketch_seed: default 0 + - iter_seed: bool, will implement on request +- add top of Figure.draw it should reset render._draw_count: + +renderer = artist_seed if artist else rcparams +xkcd = set sketch_seed if seed else rcparam diff --git a/meeting_notes/2023/2023_07_jul.md b/meeting_notes/2023/2023_07_jul.md new file mode 100644 index 0000000..b290ea7 --- /dev/null +++ b/meeting_notes/2023/2023_07_jul.md @@ -0,0 +1,248 @@ +# Matplotlib Weekly Meeting: July 2023 + +###### tags: `2023 dev call` + +--- + +# July 6, 2023 + +## Agenda + +_attending_: @QuLogic, @jklymak, @ksunden, @efiring, @devrd, @story645 + +### Old business + +### New Business + +- [x] RSE updates +- [x] GSoC and GSoD +- [x] 3.7.2 released +- [x] [name=QuLogic] SciPy Tools Plenary talk +- [x] [name=hannah] new note page + +### PRs and issues +- note ~~81~~ 75 actionable PRs. +- [ ] [name=anntzer] https://github.com/matplotlib/matplotlib/pull/14943 xkcd python style file + +## Notes + +### RSE +- @ksunden: travel and holidays + - some 3.8 work. 3.7.2 out w/ @QuLogic + - pyparsing error message parsing working with upstream + - scipy next week: tutorial 8 AM monday. W-F main conference, S and Su, sprints. @QuLogic there as well +- @QuLogic + - 3.7.2 out + - bumped 3.7.3 things + - 3.8 review issues +- New contributor meeting + - maybe needs advertisement + +### GSoC GSoC +- @ratna: mathtext things + - Working on open PRs + - substack + - LatinModern font support +- GSoD: holidays + +### 3.7.2 released... +- No GPG signatures on PyPI - small affect on downstream developers. We won't sign any more + - not used on Fedora, for instance + +### Scipy Tools plenary talk +- project over past year. +- let @QuLogic if there are any highlights. +- <3 minutes, 2 slides +- there will be a repo for the talk.. +- https://github.com/QuLogic/scipy2023-mpl-update + +### New note page +- need to add one + +### xkcd python style file +- https://github.com/matplotlib/matplotlib/pull/14943 +- python OK for style files at all? +- python configuration library? restricted subset? +- import as normal python? +- exec instead of import... +- the PR refactors the seaborn styles for lack of repetition. + - common file? +- cycler another issue + +--- + +# July 13, 2023 + +No meeting this week. + +--- + +# July 20, 2023 + +## Agenda + +### Old business + +### New business + + - [x] RSE updates + - [x] GSOC / GSOD updates + - [x] scipy recap + - [x] Kyle is 3.8 Release Manager + - [x] New committer announcement + - [x] 3.8 burn down + - [x] GA is dead (well no longer collecting data) + + +## Notes + +### RSE update + - Kyle + - scipy last week! + - Tom + - issue and PR review + - +### GSOC +- going well +- working on Open PR + - adding middle delimiters + - meeting on monday with Elliott + +### GSOD +- draft of tagging guidelines exists + - defining what is gallery vs example vs tutorial +- started working through simple PRs + + +### scipy recap +Elliott, Kyle, and Melissa attended + + - sprints in big room with numpy, scipy, matplotlib, scientific Python + - code spaces documentation review from a new comer + - talked with dependent libraries to make sure they are aware type hints are coming + - more people than last year, 3 people with PRs + - seemed like people had a better time getting started + - codespaces helped with getting docs build on windows + - presented on CZI grant + - funding runs out on August 31 + - Melissa going back to being volunteer + - had a Matplotlib tutorial + - several people said it solved problems they had! + - from back of room people seemed happy + - array API presenetation + discussion + - effort to standardize API for the zoo of array libraries + - not clear how useful it will be to us + - we have c-code that work on the CPU memory array pointer so not clear how much gpu capabilities would help + - does not really help our "we take (almost) anything as input" problem + - numpy 2.0 is coming + - Kyle is tracking, should not be a big problem for us + - numpy 1.25 drops the need for "oldest supported numpy" + - faster c-python + - not clear it will directly affect us + - there may be some interesting issues coming from threading changes + - no one has really thought about Python threading so we may discover global caches we did not realize was being protected by the GIL + - lead by mbdoom (who gave a keynote) + +### announcements + - Kyle is 3.8 release manager + - Scott Shambaugh has accepted commit rights + +### GA is dead +- Melissa will reach out to scientific Python people to move to palusible + +### 3.8 burn down + - colorbrewer license + - has an approved PR + - pyparsing confilts + - PR upstream in flight + - contour aliased property issue + - pro to keep: easy to add + - con: different from everything else + - not perfectly equivolent due to single bool vs list of bool + - deal with by doing `all` on the way out, and up-casting on the way in + - setter already support the broadcasting + - currently no mixed `set_x` and attribute access in the wild because old version + did not have getter/setters + - *decision* : put in deprecated propery with `all` on the way out + - intend to branch as soon as release critical issues are sorted + - pyparsing depend on someone outside the project, proably the blocking issue + - issues + - https://github.com/matplotlib/matplotlib/pull/22347 + - decide to take it, but change to "system" instead of "auto" + - leave as macos specific for now, if we broaden later deal with deconfliting then + - 25966 + +### New Business + +--- + +# July 27, 2023 + +## Agenda + +_attending_: @efiring, @jklymak, @ksunden, @devRd, @RaphaelQuast, @haoyingZhang, @qulogic, @story645 + +### Old business + +### New business + + - [x] RSE updates + - [x] [name=hannah] [Simple Icons permission](https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746) + - [x] [name=hannah] [new docs labels](https://github.com/matplotlib/matplotlib/labels?q=document) + - [ ] 3.8 outstanding issues + +### PRs and Issues + +- [x] [name=ratna] Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 +- [ ] [name=raphael] pan/zoom of overlapping axes https://github.com/matplotlib/matplotlib/pull/22347 +- [ ] antialiasing in mathtext https://github.com/matplotlib/matplotlib/pull/26376 + + +## 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 +- Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 + - maybe clarify issue more + - contact @anntzer with write up of problem and potential repair paths + +### tiny icon +- https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746 + - trademark issue? + - numfocus? + - https://github.com/simple-icons/simple-icons/blob/develop/DISCLAIMER.md +- [x] @story645 emailed Numfocus & CCed steering-council + +### 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 +- https://github.com/matplotlib/matplotlib/pull/22347 + +### mathtext anti aliasing? +- needs review +- 3.8? +- https://github.com/matplotlib/matplotlib/pull/26376 diff --git a/meeting_notes/2023/2023_08_aug.md b/meeting_notes/2023/2023_08_aug.md new file mode 100644 index 0000000..a4726b1 --- /dev/null +++ b/meeting_notes/2023/2023_08_aug.md @@ -0,0 +1,291 @@ +# Matplotlib Weekly Meeting: August 2023 + +###### tags: `2023 dev call` + +--- + +# August 3, 2023 + +_attending: @efiring, @rcomer, @greglucas, @ksunden, @devRD, @tacaswell , @story645 + +## Agenda + +### Old business + +### New business + + - [x] RSE updates + - [x] GSOD / GSOC updates + - [x] 3.8 rc?! + - [ ] where to put the GSOD output: [organize docs devdocs](https://github.com/matplotlib/matplotlib/issues/26392) + +## 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 + +- one PR from @QuLogic with lots of little type hint fixes https://github.com/matplotlib/matplotlib/issues/26407 +- tonight or tomorrow + +### news + +- we have a pypi org now + +### orginize the docs + + - @story645 is going to start writing a documentation road map + +--- + +# August 10, 2023 + +_attending_: @efiring, @rcomer, @ksunden, @melissawm, @oscargus, @haoyingZhang, @devRD, @QuLogic, @story645, @chahakmehta, @anntzer, @tacaswell + +## Agenda + +### Old business + +### New business + +- [x] RSE updates +- [x] GSOC/GSOD updates +- [x] NF summit +- [x] 3.8rc1 is out! +- [x] 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 + +### + +--- + +# August 17, 2023 + +_attending_: @efiring, @ksunden, @haoyingZhang, @melissawm, +@chahakmehta, @oscargus, @devRD, @story645, @QuLogic, @rcomer + +## Agenda + +### Old business + +### New business + +- [X] RSE updates +- [X] GSOC/GSOD updates +- [X] 3.8rc +- [X] 3.9 +- [x] small dev grant https://numfocus.org/programs/small-development-grants + +## 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 + - Oscar: https://github.com/matplotlib/matplotlib/pull/26522 Do we need better validation? + +### 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 +- mpl-playback: https://github.com/matplotlib/matplotlib/pull/23441 + +--- + +# August 24, 2023 + +_attending_: @efiring, @rcomer, @haoyingZhang, @ksunden, Eva Sibinga, @story645, @devRD, @QuLogic + +## Agenda + +### Old business + +### New business + +- [x] RSE updates +- [x] GSOC/GSOD updates +- [x] 3.8rc +- [x] 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. + +--- + +# August 31, 2023 + +_attending_: @efiring, @IGuKs80UTJCig4yt6Zos7w @haoyingZhang, @story645 @QuLogic @devRD @timhoffm + +## Agenda + +### Old business + +### New business +- [x] RSE updates +- [x] GSOC/GSOD updates +- [x] 3.8rc +- [x] [name=hannah] pydata NYC, Nov 1-3 +- [x] [name=hannah] small dev grant, Sept 8 +- [x] [name=hannah] streamline approval of triage additions +- [ ] @qlogic PyCharm issue + +### Pull requests +- [ ][name=hannah] [barh dict key](https://github.com/matplotlib/matplotlib/pull/26577) + +## 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, spaced--looking 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. +- https://github.com/matplotlib/matplotlib/pull/23441 +- https://github.com/matplotlib/matplotlib/pull/22634 +- https://github.com/pyodide/matplotlib-pyodide + +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. + - https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA + +### 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. diff --git a/meeting_notes/2023/2023_09_sep.md b/meeting_notes/2023/2023_09_sep.md new file mode 100644 index 0000000..49f60cd --- /dev/null +++ b/meeting_notes/2023/2023_09_sep.md @@ -0,0 +1,304 @@ +# Matplotlib Weekly Meeting: September 2023 + +###### tags: `2023 dev call` + +--- + +# September 7, 2023 + +_attending_: @rcomer @devRD @jklymak @story645 @efiring @haoyingZhang @QuLogic + +### Old business +- [x] [name=hannah] [ipympl small dev grant](https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA) + +### New business +- [x] RSE updates +- [x] GSOC/GSOD updates +- [x] [name=hannah] [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) +- [x] add steering council [github team](https://github.com/orgs/matplotlib/teams) + - would allow for finer grained permissions on governance + +### pull requests +- [ ] MPL GUI: https://github.com/matplotlib/mpl-gui Perhaps move to integration soon? + + + +## Notes + +### ipympl small dev grant? +- $10k... +- ipympl more usable, and similar as possible to other backends. +- limitation now: can't act on previous plot? +- compare w/ other similar backends +- won't submit on this cycle, instead gather more info for submitting different round or as a larger grant +- https://github.com/pyodide/matplotlib-pyodide +- https://github.com/matplotlib/ipympl + +### 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 +- will want to go for that, as much as we can get. +- [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) +- https://chanzuckerberg.com/wp-content/uploads/2023/08/EOSS-6-RFA-Packet-Final.pdf +- Maintenance of the project +- Steering council will discuss plans going forward. + +--- + +# September 14, 2023 + +_attending_: @trygvrad, @jklymak, @ksunden, @IGuKs80UTJCig4yt6Zos7w (@greglucas), @QuLogic, @devRD , @haoyingzhang, @efiring, @story645 + +### Old business +- [x] Steering team? + +### New business +- [ ] RSE updates +- [ ] GSOD updates + +### Issues and Pull requests + +- [ ] [name=hannah] [move coc into users/project](https://github.com/matplotlib/matplotlib/pull/26702) + - motivation is new landing page [about us](https://matplotlib.org/devdocs/#about-us) +- [ ] [Multivariate colormapping](https://github.com/matplotlib/matplotlib/issues/14168#issuecomment-1719170227) + +## 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. + +--- + +# September 21, 2023 + +## Agenda +_attending_: @efiring, @ksunden, @tacaswell, @rcomer, @trygve, @haoyingzhanh, @jklymak, @devrd, @QuLogic, @story645 + +### Old business + +### New Business +- [x] RSE updates +- [x] GSOD updates + - https://github.com/matplotlib/matplotlib/pull/26851 +- [x] 3.8 release + - typing fallout? + - [pandas](https://github.com/matplotlib/matplotlib/issues/26858) +- [x] GHC OSD prep + - [ ] https://github.com/matplotlib/matplotlib/pull/26859 +- [x] [name=hannah] [merge with single review label](https://github.com/matplotlib/matplotlib/labels/status%3A%20merge%20with%20single%20review%3F) +- [x] numfocus summit comments + +### Issues and PRs +- [ ] meta-limits https://github.com/matplotlib/matplotlib/issues/26442 + + +## 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 + - 3.8 fallout + - CI automation + - trusted-publishing on cycler + - meson + - https://github.com/matplotlib/matplotlib/pull/26621 + - makes c-extension work way easier + - cirrus CI + - https://github.com/matplotlib/matplotlib/pull/24597 + - currently passing, but numpy has been hitting caps + - GHC OSD prep + - have a lot of "good first issue" PRs + - add issue for removing deprecations + +### 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 + +--- + +# September 28, 2023 + +## Agenda +_attending_: @tacaswell, @rcomer, @devRD, @oscargus, @haoyingzhang, @efiring, @theOehrly, @ananyadevarakonda, @ksunden, @jklymak, @story645, @qulogic, @rakshitsingh + +### Old Business +- [x] GHC + +### New Business +- [x] RSE reports +- [x] GSOD: https://github.com/matplotlib/matplotlib/pull/26851 +- [x] [name=hannah] hacktober + +### Issues and PR: + +- [x] [name=jklymak] [timedelta64 support](https://github.com/matplotlib/matplotlib/pull/19236) +- [ ] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? +- [ ] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) +- [ ] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui +- [x] [name=oscargus] Rename "topic: types" to "topic: typing"? + - Objections? +- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) + - Text converts to str independent of input data + - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) +- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) + - If I have time to prepare a presentation and @timhoffm is present +- [ ] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) + - Review needed, long waiting (make sure it is squash-merged) + +## 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? + - will help evaluate how the tags are understood + -``` .. tags:: tag1, tag2``` + - sample: https://napari.org/stable/gallery.html +### 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: +- useful to rethink ways to lock out Locators and Formatters that are incompatible with a given unit converter so users are not confused when locators and formatters don't work. +- https://github.com/matplotlib/matplotlib/issues/24951 diff --git a/meeting_notes/2023/2023_10_oct.md b/meeting_notes/2023/2023_10_oct.md new file mode 100644 index 0000000..917d4dc --- /dev/null +++ b/meeting_notes/2023/2023_10_oct.md @@ -0,0 +1,300 @@ +# Matplotlib Weekly Meeting: October 2023 + +###### tags: `2023 dev call` + +--- + +# October 5, 2023 + +## Agenda +_attending_: @tacaswell, @jklymak, @ksunden, @haoyingzhang, @efiring, @melissawm, @devRD, @trygve, @story645, @timhoffm, @QuLogic + +### Old Business + +### New Business +- [x] RSE reports +- [x] GSOD: + - https://github.com/matplotlib/matplotlib/pull/26851 + - https://pydata.org/nyc2023/about/ Oct 31st +- [x] [name=hannah] hacktober policy + +### Issues and PR: + +- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? +- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) +- [x] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui +- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) + - Text converts to str independent of input data + - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) +- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) + - If I have time to prepare a presentation and @timhoffm is present +- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) + - Review needed, long waiting (make sure it is squash-merged) +- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) +- [x] [name=hannah] [axisartist tables](https://github.com/matplotlib/matplotlib/pull/26754) + - grid tables vs list tables +- [ ] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) + - is this a viable direction to go in? +- [x] [name=ratna] Review needed.. [Stix table update](https://github.com/matplotlib/matplotlib/pull/26830/) +- [x] [name=haoying] [QuiverKey error](https://github.com/matplotlib/matplotlib/issues/26316/) + - Clarification of ``angle`` in [doc](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.quiverkey.html) + +## 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 +- refactoring based on feedback +- tagging sprint Oct 31. +general Matplotlib sprint pydata NY. +- https://github.com/matplotlib/matplotlib/pull/26851 review + +### 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... + +--- + +# October 12, 2023 + +_attending_: @rcomer, @tacaswell, @efiring, @ksunden, @jklymak, @devRD, @QuLogic, @trygve, @story645 + +### Agenda + + +### Old Business + +### New Business + +- [x] RSE reports +- [x] GSOD + +### Issues and PRs +- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? +- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) +- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) + - Text converts to str independent of input data + - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) +- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) + - If I have time to prepare a presentation and @timhoffm is present +- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) + - Review needed, long waiting (make sure it is squash-merged) +- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) + - was there consensus last week? +- [x] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) + - feedback on whether this is feasable +- [x] pytest + meson conflict? + + +## 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` + +--- + +# October 19, 2023 + +## Agenda + +_attending_: @rcomer, @ksunden, @chahak, @jklymak, devRD, @melissawm esibinga, @story645, @efiring, @QuLogic + +### New Business + +- [x] RSE reports +- [x] GSOD +- [x] Zenodo citation + +### Issues and PRs +- [x] [name=ksunden] [hexbin mincnt](https://github.com/matplotlib/matplotlib/issues/27103) +- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) + - 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? +- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) + - Text converts to str independent of input data + - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) +- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) + - If I have time to prepare a presentation and @timhoffm is present +- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) + - Review needed, long waiting (make sure it is squash-merged) +- [ ] [name=hannah] [standard internal variable name for transfroms](https://github.com/matplotlib/matplotlib/issues/22156) + - do we want to standardize? if so which names? document this? +- [x] [name=hannah] maybe sprint/good-first-issue project: [quoted rcParams](https://github.com/matplotlib/matplotlib/issues/3670) + +## 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 + +--- + +# October 26, 2023 + +## Agenda + +_attending_: @tacaswell @trygve @devRD @ksunden @rcomer @IGuKs80UTJCig4yt6Zos7w (greg?) @chahak, @timhoffm, @story645 + +### New Business + +- [x] RSE reports +- [x] GSOD +- [x] [name=QuLogic] Jupyter-RFB proof of concept + +### Issues and PRs + +- [x] [name=hannah] [standard internal variable name for transforms](https://github.com/matplotlib/matplotlib/issues/22156) + - do we want to standardize? if so which names? document this? + +## 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 + - going well + - need to get PR merged by Tuesday for the sprint (so we can point at devdocs) +- tagging guidelines: https://github.com/matplotlib/matplotlib/pull/26851 +- how tags look in gallery: https://github.com/matplotlib/matplotlib/pull/27083 + +### issues + - absolute pie values formatting + - not a 5 minute conversation because the holding point is naming / parameters + - standardize names diff --git a/meeting_notes/2023/2023_11_nov.md b/meeting_notes/2023/2023_11_nov.md new file mode 100644 index 0000000..c252e22 --- /dev/null +++ b/meeting_notes/2023/2023_11_nov.md @@ -0,0 +1,254 @@ +# Matplotlib Weekly Meeting: November 2023 + +###### tags: `2023 dev call` + +--- + +# November 2, 2023 + +## Agenda +_attending_ : @greglucas, @story645, @rcomer , @efiring, @tacaswell, @ksunden, @qulogic, + + +### New business + + - [x] RSE reports + - [x] GSOD update + - https://matplotlib.org/devdocs/devel/tag_guidelines.html + - https://matplotlib.org/devdocs/devel/tag_glossary.html + - [x] invited for full CZI EOSS6 propsoal + +### Old business + + - [x] RFB update + - [ ] [name=tacaswell] mpl-gui + +### Issues and PRs +- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) + - 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? +- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) + - Text converts to str independent of input data + - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) +- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) + - If I have time to prepare a presentation and @timhoffm is present +- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) + - Review needed, long waiting (make sure it is squash-merged) +- [ ] [name=rcomer] [Absolute values for pie](https://github.com/matplotlib/matplotlib/pull/25757) 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 + +--- + +# November 9, 2023 + +## Agenda +_attending_ : @tacaswell @ksunden @chahak @efiring, @raphaelquast, @story645, @devRD, + + +### New business + - [x] RSE reports + - [x] GSOD update + +### Old business + +### Issues and PRs +- [x] [name=raphaelquast] [overlapping axes](https://github.com/matplotlib/matplotlib/pull/27148) +- [ ] [name=raphaelquast] webagg improvements: [27160](https://github.com/matplotlib/matplotlib/pull/27160) +- [ ] [name=hannah] [humor sans to xkcd](https://github.com/matplotlib/matplotlib/pull/27299) + - fork font? https://github.com/dummy-index/xkcd-font/raw/brushup/xkcd-script/font/ <-unmaintained fork +- [ ] [name=hannah] [path/xkcd](https://github.com/matplotlib/matplotlib/pull/26854#issuecomment-1804098144) + - deperecate xkcd? interaction with [sketch seed](https://github.com/matplotlib/matplotlib/pull/26050) + +## 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 + +--- + +# November 16, 2023 + +_attending_: @tacaswell, @efiring, @ksunden, @QuLogic, @story645 + +## Agenda +- [x] RSE updates +- [x] 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) + +--- + +# November 23, 2023 + +## Agenda + - [ ] US thanksgiving + +--- + +# November 30, 2023 + +_attending_: @tacaswell @rcomer @chahak @ksunden @story645 @jklymak + +## Agenda +- [x] RSE reports +- [x] discussion about moving time of standing meeting +- [x] [name=hannah] [PyData Global](https://pydata.org/global2023) sprints Dec 6-8 + +### Issues and PRs +- [x] [name=hannah] [stix license](https://github.com/matplotlib/matplotlib/pull/27316) +- [x] [name=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) diff --git a/meeting_notes/2023/2023_12_dec.md b/meeting_notes/2023/2023_12_dec.md new file mode 100644 index 0000000..053cdc7 --- /dev/null +++ b/meeting_notes/2023/2023_12_dec.md @@ -0,0 +1,194 @@ +# Matplotlib Weekly Meeting: December 2023 + +###### tags: `2023 dev call` + +--- + +# December 7, 2023 + +## Agenda +@attending: @tacaswell @efiring @QuLogic @ksunden @jklymak @chahak @pXw4hSgTQF2--OciPYwa1w + +### Old Business +- [x] Meeting time discussion + - https://whenisgood.net/22qgxi3 +- [x] [name=QuLogic] Move `Contribute` to devdocs? + - Review for change is here: https://github.com/matplotlib/matplotlib.org/pull/36 + - Test server is at: https://mercury.matplotlib.org/stable/ + + +### New Business +- [x] RSE reports +- [x] how to inject units + +### Issues and PRs +- [x] [name=hannah] dev docs prs + - [x][move dependencies to install](https://github.com/matplotlib/matplotlib/pull/27395) + - [x][finish out reorganizing devdocs](https://github.com/matplotlib/matplotlib/pull/27265) + - [x][add collection-fontsrecommend](https://github.com/matplotlib/matplotlib/pull/27282) +- [x] [name=hannah] [matplotlib.org: make contributing more prominant](https://github.com/matplotlib/matplotlib/pull/27282) +- [x] [name=hannah] [patheffects rcParam + xkcd style](https://github.com/matplotlib/matplotlib/pull/26854) + +## 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 + +--- + +# December 14, 2023 + +attending: @ksunden @story645 @oscargus @jklymak, @QuLogic + +### Old Business +- [ ] Meeting time discussion + - https://whenisgood.net/22qgxi3/results/bb7san5 + - Thurs 2:00PM (EST) seems to be the current fave + +### New Business +- [ ] RSE reports +- [ ] [name=hannah] GSOC 20th anniversary + - https://opensource.googleblog.com/2023/11/google-summer-of-code-2024-celebrating-20th-year.html + - For the 2024 program, there will be three options for project scope: + - medium at ~175 hours + - large at ~350 hours + - new size: small at ~90 hours + +### Issues and Prs +- [name=hannah] [move {install/project/releases} out of users/](https://github.com/matplotlib/matplotlib/issues/27396) + - follows from [moving doc root](https://github.com/matplotlib/matplotlib/pull/26332), `match(folder structure, index)` + - as consequence user/ can be sphinx gallery containing explain & getting started, which means no more symlink (which creates confusion of what to edit) +- [name=hannah] https://github.com/matplotlib/matplotlib/pull/27265 + +## 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: +- https://opensource.googleblog.com/2023/11/google-summer-of-code-2024-celebrating-20th-year.html +- 20th anniversary +- New lowest 90h project level +- anyone interested in mentoring? + +### Meeting time: + +- 14:00 EST favourite time. + +### Issues and PRs +- move users/* up to doc/ + +--- + +# December 21, 2023 + +## Agenda + +### Old Business +- [x] Meeting time discussion + +### New Busines +- [x] RSE reports +- [x] data prototype slides +- [x] pydata armenia sprint? +- [x] 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 diff --git a/meeting_notes/2023/july_current.md b/meeting_notes/2023/july_current.md deleted file mode 100644 index 53d9a06..0000000 --- a/meeting_notes/2023/july_current.md +++ /dev/null @@ -1,1150 +0,0 @@ -# Matplotlib Weekly Meeting - -[![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. - -## 27 July 2023 -- - - -###### 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](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) - -``` -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 -``` -# 30 Nov 2023 -## Agenda - - [ ] discussion about moving time of standing meeting - -# 23 Nov 2023 - -## Agenda - - [ ] US thanksgiving - -# 16 Nov 2023 - -_attending_: @tacaswell, @efiring, @ksunden, @QuLogic, @story645 - -## Agenda -- [x] RSE updates -- [x] 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 - - [x] RSE reports - - [x] GSOD update - -### Old business - -### Issues and PRs -- [x] [name=raphaelquast] [overlapping axes](https://github.com/matplotlib/matplotlib/pull/27148) -- [ ] [name=raphaelquast] webagg improvements: [27160](https://github.com/matplotlib/matplotlib/pull/27160) -- [ ] [name=hannah] [humor sans to xkcd](https://github.com/matplotlib/matplotlib/pull/27299) - - fork font? https://github.com/dummy-index/xkcd-font/raw/brushup/xkcd-script/font/ <-unmaintained fork -- [ ] [name=hannah] [path/xkcd](https://github.com/matplotlib/matplotlib/pull/26854#issuecomment-1804098144) - - deperecate xkcd? interaction with [sketch seed](https://github.com/matplotlib/matplotlib/pull/26050) - -## 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 - - - [x] RSE reports - - [x] GSOD update - - https://matplotlib.org/devdocs/devel/tag_guidelines.html - - https://matplotlib.org/devdocs/devel/tag_glossary.html - - [x] invited for full CZI EOSS6 propsoal - -### Old business - - - [x] RFB update - - [ ] [name=tacaswell] mpl-gui - -### Issues and PRs -- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) - - 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? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [ ] [name=rcomer] [Absolute values for pie](https://github.com/matplotlib/matplotlib/pull/25757) 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 - -- [x] RSE reports -- [x] GSOD -- [x] [name=QuLogic] Jupyter-RFB proof of concept - -### Issues and PRs - -- [x] [name=hannah] [standard internal variable name for transforms](https://github.com/matplotlib/matplotlib/issues/22156) - - do we want to standardize? if so which names? document this? - -## 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 - - going well - - need to get PR merged by Tuesday for the sprint (so we can point at devdocs) -- tagging guidelines: https://github.com/matplotlib/matplotlib/pull/26851 -- how tags look in gallery: https://github.com/matplotlib/matplotlib/pull/27083 - -### 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 - -- [x] RSE reports -- [x] GSOD -- [x] Zenodo citation - -### Issues and PRs -- [x] [name=ksunden] [hexbin mincnt](https://github.com/matplotlib/matplotlib/issues/27103) -- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) - - 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? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [ ] [name=hannah] [standard internal variable name for transfroms](https://github.com/matplotlib/matplotlib/issues/22156) - - do we want to standardize? if so which names? document this? -- [x] [name=hannah] maybe sprint/good-first-issue project: [quoted rcParams](https://github.com/matplotlib/matplotlib/issues/3670) - -## 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 - -- [x] RSE reports -- [x] GSOD - -### Issues and PRs -- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) - - was there consensus last week? -- [x] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) - - feedback on whether this is feasable -- [x] pytest + meson conflict? - - -## 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 -- [x] RSE reports -- [x] GSOD: - - https://github.com/matplotlib/matplotlib/pull/26851 - - https://pydata.org/nyc2023/about/ Oct 31st -- [x] [name=hannah] hacktober policy - -### Issues and PR: - -- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [x] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) -- [x] [name=hannah] [axisartist tables](https://github.com/matplotlib/matplotlib/pull/26754) - - grid tables vs list tables -- [ ] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) - - is this a viable direction to go in? -- [x] [name=ratna] Review needed.. [Stix table update](https://github.com/matplotlib/matplotlib/pull/26830/) -- [x] [name=haoying] [QuiverKey error](https://github.com/matplotlib/matplotlib/issues/26316/) - - Clarification of ``angle`` in [doc](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.quiverkey.html) - -## 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 -- refactoring based on feedback -- tagging sprint Oct 31. +general Matplotlib sprint pydata NY. -- https://github.com/matplotlib/matplotlib/pull/26851 review - -### 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 -- [x] GHC - -### New Business -- [x] RSE reports -- [x] GSOD: https://github.com/matplotlib/matplotlib/pull/26851 -- [x] [name=hannah] hacktober - -### Issues and PR: - -- [x] [name=jklymak] [timedelta64 support](https://github.com/matplotlib/matplotlib/pull/19236) -- [ ] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [ ] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [ ] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui -- [x] [name=oscargus] Rename "topic: types" to "topic: typing"? - - Objections? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) - -## 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? - - will help evaluate how the tags are understood - -``` .. tags:: tag1, tag2``` - - sample: https://napari.org/stable/gallery.html -### 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: -- useful to rethink ways to lock out Locators and Formatters that are incompatible with a given unit converter so users are not confused when locators and formatters don't work. -- https://github.com/matplotlib/matplotlib/issues/24951 - -------- - -# 21 September 2023 - -## Agenda -_attending_: @efiring, @ksunden, @tacaswell, @rcomer, @trygve, @haoyingzhanh, @jklymak, @devrd, @QuLogic, @story645 - -### Old business - -### New Business -- [x] RSE updates -- [x] GSOD updates - - https://github.com/matplotlib/matplotlib/pull/26851 -- [x] 3.8 release - - typing fallout? - - [pandas](https://github.com/matplotlib/matplotlib/issues/26858) -- [x] GHC OSD prep - - [ ] https://github.com/matplotlib/matplotlib/pull/26859 -- [x] [name=hannah] [merge with single review label](https://github.com/matplotlib/matplotlib/labels/status%3A%20merge%20with%20single%20review%3F) -- [x] numfocus summit comments - -### Issues and PRs -- [ ] meta-limits https://github.com/matplotlib/matplotlib/issues/26442 - - -## 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 - - 3.8 fallout - - CI automation - - trusted-publishing on cycler - - meson - - https://github.com/matplotlib/matplotlib/pull/26621 - - makes c-extension work way easier - - cirrus CI - - https://github.com/matplotlib/matplotlib/pull/24597 - - currently passing, but numpy has been hitting caps - - GHC OSD prep - - have a lot of "good first issue" PRs - - add issue for removing deprecations - -### 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 -- [x] Steering team? - -### New business -- [ ] RSE updates -- [ ] GSOD updates - -### Issues and Pull requests - -- [ ] [name=hannah] [move coc into users/project](https://github.com/matplotlib/matplotlib/pull/26702) - - motivation is new landing page [about us](https://matplotlib.org/devdocs/#about-us) -- [ ] [Multivariate colormapping](https://github.com/matplotlib/matplotlib/issues/14168#issuecomment-1719170227) - -## 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 -- [x] [name=hannah] [ipympl small dev grant](https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA) - -### New business -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] [name=hannah] [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) -- [x] add steering council [github team](https://github.com/orgs/matplotlib/teams) - - would allow for finer grained permissions on governance - -### pull requests -- [ ] MPL GUI: https://github.com/matplotlib/mpl-gui Perhaps move to integration soon? - - - -## Notes - -### ipympl small dev grant? -- $10k... -- ipympl more usable, and similar as possible to other backends. -- limitation now: can't act on previous plot? -- compare w/ other similar backends -- won't submit on this cycle, instead gather more info for submitting different round or as a larger grant -- https://github.com/pyodide/matplotlib-pyodide -- https://github.com/matplotlib/ipympl - -### 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 -- will want to go for that, as much as we can get. -- [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) -- https://chanzuckerberg.com/wp-content/uploads/2023/08/EOSS-6-RFA-Packet-Final.pdf -- Maintenance of the project -- Steering council will discuss plans going forward. - - - - ----- -# 31 August 2023 - -_attending_: @efiring, @IGuKs80UTJCig4yt6Zos7w @haoyingZhang, @story645 @QuLogic @devRD @timhoffm - -## Agenda - -### Old business - -### New business -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] 3.8rc -- [x] [name=hannah] pydata NYC, Nov 1-3 -- [x] [name=hannah] small dev grant, Sept 8 -- [x] [name=hannah] streamline approval of triage additions -- [ ] @qlogic PyCharm issue - -### Pull requests -- [ ][name=hannah] [barh dict key](https://github.com/matplotlib/matplotlib/pull/26577) - -## 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, spaced--looking 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. -- https://github.com/matplotlib/matplotlib/pull/23441 -- https://github.com/matplotlib/matplotlib/pull/22634 -- https://github.com/pyodide/matplotlib-pyodide - -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. - - https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA - -### 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 - -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] 3.8rc -- [x] 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 - -- [X] RSE updates -- [X] GSOC/GSOD updates -- [X] 3.8rc -- [X] 3.9 -- [x] small dev grant https://numfocus.org/programs/small-development-grants - -## 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 - - Oscar: https://github.com/matplotlib/matplotlib/pull/26522 Do we need better validation? - -### 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 -- mpl-playback: https://github.com/matplotlib/matplotlib/pull/23441 - - -# 10 August 2023 - -_attending_: @efiring, @rcomer, @ksunden, @melissawm, @oscargus, @haoyingZhang, @devRD, @QuLogic, @story645, @chahakmehta, @anntzer, @tacaswell - -## Agenda - -### Old business - -### New business - -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] NF summit -- [x] 3.8rc1 is out! -- [x] 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 - - - [x] RSE updates - - [x] GSOD / GSOC updates - - [x] 3.8 rc?! - - [ ] where to put the GSOD output: [organize docs devdocs](https://github.com/matplotlib/matplotlib/issues/26392) - -## 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 - -- one PR from @QuLogic with lots of little type hint fixes https://github.com/matplotlib/matplotlib/issues/26407 -- tonight or tomorrow - -### 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 - - - [x] RSE updates - - [x] [name=hannah] [Simple Icons permission](https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746) - - [x] [name=hannah] [new docs labels](https://github.com/matplotlib/matplotlib/labels?q=document) - - [ ] 3.8 outstanding issues - -### PRs and Issues - -- [x] [name=ratna] Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 -- [ ] [name=raphael] pan/zoom of overlapping axes https://github.com/matplotlib/matplotlib/pull/22347 -- [ ] antialiasing in mathtext https://github.com/matplotlib/matplotlib/pull/26376 - - -## 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 -- Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 - - maybe clarify issue more - - contact @anntzer with write up of problem and potential repair paths - -### tiny icon -- https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746 - - trademark issue? - - numfocus? - - https://github.com/simple-icons/simple-icons/blob/develop/DISCLAIMER.md -- [x] @story645 emailed Numfocus & CCed steering-council - -### 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 -- https://github.com/matplotlib/matplotlib/pull/22347 - -### mathtext anti aliasing? -- needs review -- 3.8? -- https://github.com/matplotlib/matplotlib/pull/26376 - - - - diff --git a/meeting_notes/2023/march_july.md b/meeting_notes/2023/march_july.md deleted file mode 100644 index fecbb81..0000000 --- a/meeting_notes/2023/march_july.md +++ /dev/null @@ -1,1693 +0,0 @@ -# Matplotlib Weekly Meeting - -[![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. - -## 9 March 2023 -- 20 July 2023 - - -###### 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](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) - -``` -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 -``` -# 20 July 2023 - -## Agenda - -### Old business - -### New business - - - [x] RSE updates - - [x] GSOC / GSOD updates - - [x] scipy recap - - [x] Kyle is 3.8 Release Manager - - [x] New committer announcement - - [x] 3.8 burn down - - [x] GA is dead (well no longer collecting data) - - -## Notes - -### RSE update - - Kyle - - scipy last week! - - Tom - - issue and PR review - - -### GSOC -- going well -- working on Open PR - - adding middle delimiters - - meeting on monday with Elliott - -### GSOD -- draft of tagging guidelines exists - - defining what is gallery vs example vs tutorial -- started working through simple PRs - - -### scipy recap -Elliott, Kyle, and Melissa attended - - - sprints in big room with numpy, scipy, matplotlib, scientific Python - - code spaces documentation review from a new comer - - talked with dependent libraries to make sure they are aware type hints are coming - - more people than last year, 3 people with PRs - - seemed like people had a better time getting started - - codespaces helped with getting docs build on windows - - presented on CZI grant - - funding runs out on August 31 - - Melissa going back to being volunteer - - had a Matplotlib tutorial - - several people said it solved problems they had! - - from back of room people seemed happy - - array API presenetation + discussion - - effort to standardize API for the zoo of array libraries - - not clear how useful it will be to us - - we have c-code that work on the CPU memory array pointer so not clear how much gpu capabilities would help - - does not really help our "we take (almost) anything as input" problem - - numpy 2.0 is coming - - Kyle is tracking, should not be a big problem for us - - numpy 1.25 drops the need for "oldest supported numpy" - - faster c-python - - not clear it will directly affect us - - there may be some interesting issues coming from threading changes - - no one has really thought about Python threading so we may discover global caches we did not realize was being protected by the GIL - - lead by mbdoom (who gave a keynote) - -### announcements - - Kyle is 3.8 release manager - - Scott Shambaugh has accepted commit rights - -### GA is dead -- Melissa will reach out to scientific Python people to move to palusible - -### 3.8 burn down - - colorbrewer license - - has an approved PR - - pyparsing confilts - - PR upstream in flight - - contour aliased property issue - - pro to keep: easy to add - - con: different from everything else - - not perfectly equivolent due to single bool vs list of bool - - deal with by doing `all` on the way out, and up-casting on the way in - - setter already support the broadcasting - - currently no mixed `set_x` and attribute access in the wild because old version - did not have getter/setters - - *decision* : put in deprecated propery with `all` on the way out - - intend to branch as soon as release critical issues are sorted - - pyparsing depend on someone outside the project, proably the blocking issue - - issues - - https://github.com/matplotlib/matplotlib/pull/22347 - - decide to take it, but change to "system" instead of "auto" - - leave as macos specific for now, if we broaden later deal with deconfliting then - - 25966 - -### New Business - -# 13 July 2023 -No meeting this week. - -# 6 July 2023 - -## Agenda - -_attending_: @QuLogic, @jklymak, @ksunden, @efiring, @devrd, @story645 - -### Old business - -### New Business - -- [x] RSE updates -- [x] GSoC and GSoD -- [x] 3.7.2 released -- [x] [name=QuLogic] SciPy Tools Plenary talk -- [x] [name=hannah] new note page - -### PRs and issues -- note ~~81~~ 75 actionable PRs. -- [ ] [name=anntzer] https://github.com/matplotlib/matplotlib/pull/14943 xkcd python style file - -## Notes - -### RSE -- @ksunden: travel and holidays - - some 3.8 work. 3.7.2 out w/ @QuLogic - - pyparsing error message parsing working with upstream - - scipy next week: tutorial 8 AM monday. W-F main conference, S and Su, sprints. @QuLogic there as well -- @QuLogic - - 3.7.2 out - - bumped 3.7.3 things - - 3.8 review issues -- New contributor meeting - - maybe needs advertisement - -### GSoC GSoC -- @ratna: mathtext things - - Working on open PRs - - substack - - LatinModern font support -- GSoD: holidays - -### 3.7.2 released... -- No GPG signatures on PyPI - small affect on downstream developers. We won't sign any more - - not used on Fedora, for instance - -### Scipy Tools plenary talk -- project over past year. -- let @QuLogic if there are any highlights. -- <3 minutes, 2 slides -- there will be a repo for the talk.. -- https://github.com/QuLogic/scipy2023-mpl-update - -### New note page -- need to add one - -### xkcd python style file -- https://github.com/matplotlib/matplotlib/pull/14943 -- python OK for style files at all? -- python configuration library? restricted subset? -- import as normal python? -- exec instead of import... -- the PR refactors the seaborn styles for lack of repetition. - - common file? -- cycler another issue -- - ---------------------- -# 29 June 2023 -## Agenda -_attending_: @rcomer, @devrd, @ksunden, @esibinga, @efiring, @melissawm, @tacaswell, @QuLogic, @story645, @ryliewei - -### Old business - -### New business - -- [x] RSE updates -- [x] GSOC and GSOD updates -- [x] 3.7.2 release -- [ ] 3.8 burn down -- [x] [name=hannah] start new notes because of lag - - -### PRs - -- Non-draft, 3.8 milestone: https://github.com/matplotlib/matplotlib/pulls?page=1&q=is%3Aopen+is%3Apr+milestone%3Av3.8.0+draft%3Afalse -- Location and rotation of offset text in 3D https://github.com/matplotlib/matplotlib/pull/26185 -- [name=story645] [sketch seed](https://github.com/matplotlib/matplotlib/pull/26050) - - [path randomness is repetative](https://github.com/matplotlib/matplotlib/issues/13479) - - needs consensus: same artists diff or same in seed=arbitrary -## Notes - -### RSE, GSOC, GSOD update - - Caswell: time off last week, some review work - - Kyle: - - pyparsing investigation, need changes to upstream to unbreak our test - - found a 25% improvement in parsing mathtext - - general review - - Elliott - - bit of documentation work - - follow up on py312 fallout - - mpl 3.8 burndown and backports for 3.7.2 - - Melissa - - documentation (code spaces and proposal for re-org of dev docs) - - Ratna - - working on PRs - - working on adding latin moden - - Eva - - drafting tag hiegharchise - - aiming for August 1 for docs on how to add new categories - - working on defining example vs tutorial - -### 3.7.2 -- all backports are created, but GHA was having issues last night -- a couple of still open PRs - - https://github.com/matplotlib/matplotlib/pull/25960 -## Pull Requsets -### offset texts in 3D -- offset alignment in Z/X axis: - - baseline of z is label is offset uncentered - - x label rotates/anchor changes on rotation of figure - decisions: - - orient relative to axis labels and center as specified in [3D offset example](https://matplotlib.org/stable/gallery/mplot3d/offset.html) - - https://github.com/matplotlib/matplotlib/pull/26185 only needs to be squashed. - -## 3.8 burndown - -- most of critical are merged -- pcolor more meshlike still outstanding https://github.com/matplotlib/matplotlib/pull/25027 -- subfigure_mosaic stil outstanding https://github.com/matplotlib/matplotlib/pull/26061 - -## random seed - -- make sure typing is 3 or 4 tuple -- implementation: move seed management to python - - make a private attribute on figure - - xkcd will get/set the rcparam seed - - render manages the seed update/does the incrementing - - reset the count on the renderer - -- add rcparams: - - sketch_seed: default 0 - - iter_seed: bool, will implement on request -- add top of Figure.draw it should reset render._draw_count: - -renderer = artist_seed if artist else rcparams -xkcd = set sketch_seed if seed else rcparam - - ---------------------- -# 22 June 2023 -## Agenda -_attending_: @oscargus @efiring @ksunden @QuLogic @greglucas @melissawm @devRD @evasibinga @story645 - -### Old business -### New business -- [X] RSE updates -- [X] GSOC and GSOD updates -### PRs -- Non-draft, 3.8 milestone: https://github.com/matplotlib/matplotlib/pulls?page=1&q=is%3Aopen+is%3Apr+milestone%3Av3.8.0+draft%3Afalse -- [name=oscargus] Linestyle handing unification https://github.com/matplotlib/matplotlib/pull/23056 -- [name=Melissa] Please test out [codespaces](https://docs.github.com/codespaces) if you are interested and give feedback/ask for more features if you notice anything :) -- [name=oscargus] Performance improvements - - https://github.com/matplotlib/matplotlib/pull/26164 - - https://github.com/matplotlib/matplotlib/pull/26167 - - https://github.com/matplotlib/matplotlib/pull/26168 (not really performance but still a continuation) - -## Notes - -### RSE updates -- Kyle: Took a few days off this week, catching up afterwards -- Elliott: CI stuff, getting 3.12 working, checking Deprecations; some doc work, cleanup (e.g., images no longer in use) -- Melissa: got CodeSpaces working for mpl; embedded fluxbox desktop; ubuntu-based; available via button on github; some limits on computation usage. Note: does not automatically activate the conda environment. Try it; it is a work in progress. Requests for improvements have been submitted to CodeSpaces. [Tracking issue](https://github.com/matplotlib/matplotlib/issues/26169) - -### GSoC / GSoD updates -- Ratna: looking at older issues; working on PR on subscript stacking (e.g. multiple conditions on a summation). -- Eva: gallery tagging: spreadsheet. What tags make sense? Process for proposing new tags? Testing use of a GUI for image tagging. - -### PRs -- [name=oscargus] Linestyle handing unification [#23056](https://github.com/matplotlib/matplotlib/pull/23056). - - Suggestion: Add a "future warning"? - - Example of a similar case suggested by Elliott. - - [#12380](https://github.com/matplotlib/matplotlib/pull/12380) -> [#16474](https://github.com/matplotlib/matplotlib/pull/16474) -> [#23302](https://github.com/matplotlib/matplotlib/pull/23302) - - https://github.com/matplotlib/matplotlib/pull/12380#issuecomment-426683961 - - Does [#24257](https://github.com/matplotlib/matplotlib/pull/24257) provide a similar model? Not exactly the same, because it involves a change in attribute behavior, not the type of a returned object. - - Greg asked whether the use of a 2-cycle kwarg causes more pain than it relieves. - - What is the usage case for get_linestyle? Seaborn uses it in bar https://github.com/search?q=get_linestyle%28%29&type=code - - Possible solution: warn people to use "get_dashes" for collections. -- [name=oscargus] Performance improvements - - https://github.com/matplotlib/matplotlib/pull/26164 reduces unneeded calls to clear when Axes are created. - - What to do about "register_axis" calls (spines dictionary) - - https://github.com/matplotlib/matplotlib/pull/26167 (not controversial) - - https://github.com/matplotlib/matplotlib/pull/26168 (not really performance but still a continuation) - - Discussion about Ticking and optimizations: https://github.com/matplotlib/matplotlib/issues/5665 - - Need something like a text collection. - - Also consider grid. - ---------------------- -# 15 June 2023 -## Agenda -_attending_: @melissawm, @story645, @jklymak, @ksunden, @QuLogic, @tacaswell, @rcomer, @ianthomas23, @devRD, @greglucas, @efiring - -### Old business -### New business - -- [x] RSE updates -- [x] GSOC and GSOD updates -- [x] [name=tacaswell] stop building 32bit windows wheels [contourpy] -- [x] [name=QuLogic] also stop building `universal2` macOS wheels [#26125](https://github.com/matplotlib/matplotlib/pull/26125) -- [ ] [name=tacaswell] new contributor PRs - - [ ] https://github.com/matplotlib/matplotlib/pull/25839 - - [ ] https://github.com/matplotlib/matplotlib/pull/22761 - - [ ] If any maintainers have time, please take a look at the "Needs review" (and the "Needs decision") column on https://github.com/orgs/matplotlib/projects/1/views/3 -- [x] [name=tacaswell] 3.8 burn down -- [x] [name=tacaswell] progress on image test overhaul - -### PRs -- [x] [name=hannah] [python 3 setup note](https://github.com/matplotlib/matplotlib/pull/26084) -- [x] [name=greglucas] pcolor more meshlike https://github.com/matplotlib/matplotlib/pull/25027 -- [x] [name=greglucas] Contour rework merge? https://github.com/matplotlib/matplotlib/pull/25247 Was holding off for baseline image work - -## Notes - -### RSE updates - - kyle: scipy tutorial prep; current on personal account, will move to mpl when done. Lots of issue review. - - sprints at scipy? Maybe to mentored sprints - - July 15 and 16 - - using notebooks/ipympl for tutorial - - Tom: baseline imaging progress. Reviews - - Melissa: travelling; codespaces setup (versus local dev) - - Elliott: CI work - ARM build; Meson work; newer versions of TexLive etc. Update windows install instructions. -- Ratna (GSOC): Older mathtext issues and PRs -- GSOD: making progress - -### Win32 and ARM universal2 wheel builds: -- stop win32? -- cpython has 32bit builds -- numpy/scipy don't have 32 bit wheeels. -- pypy stats hard to believe (most CI) -- ARM universal2 - - already ship individual (ARM and Intel) - - universal installers can fuse them anyways if they need to - - numpy doesn't have these wheels - -### 3.8 burndown -- keep working on it? -- RC 30 June - what _needs_ to go in? -- rcParams update? - - dict subclass -- image tests may be optimistic... - - might make backporting a pain - - image tests may not be backported. - - -- push rcparams work to 3.9 - - do not do this under pressure - - gives a chance to extend it over time - - rcparams have historically been brittle, we should make sure we dog-food this. -- get subfigure_mosaic landed - - new ish contributor, waiting on tests -- pcolor->more mesh like - - pcolor more meshlike https://github.com/matplotlib/matplotlib/pull/25027 - - downstream broken? - - needs more API notes -- contour updates https://github.com/matplotlib/matplotlib/pull/25247/files - - good idea, should go in - - needs better API notes - -### Test images -- lots of progress -- command line interface to help with managing files or caches -- touch base with pytest-mpl -- - ------------ -# 8 June 2023 -@attendance: @efiring, @z5VMbcx5SRm9Et4RWXmJrA chahakmehta, @devRD(ratna), @greglucas, @ksunden, @brianholland, @ksunden, @qulogic, @tacaswell, @story645, @anntzer - -## Agenda - -### Old business -### New Business - - [x] RSE updates - - [x] GSOC and GSOD updates - -### Issues and PRs - - [x] namespace package issue https://github.com/matplotlib/matplotlib/pull/25381/files - - [x] bold symbol PR https://github.com/matplotlib/matplotlib/pull/25661 - - -## Notes - - RSE updates - - caswell: not as much as I want, but mostly issues - - Kyle: dev docs on how to handle typehints + deprecations, started work on scipy tutorial (need to push to github), data prototype work - - Elliott: fixed website. We have alerts, but they did not fire. Looking into making webhooks error. Working on older PRs (PDF images, re-viving arm testing, moving to pyproject.toml (in prep of move to meson)) - - GSOD - - Eva spent the week getting sphinx tagging working and getting setup for development - - should see public work in the next few weeks - - GSOC - - kick off meeting on Monday - - starting to prioritize issue - - working on Open PRs - - starting to look at accent and positioning - -### namespace packages - - https://github.com/matplotlib/matplotlib/pull/25381 - - name space packages need to have character-for-character identical __init__.py - - wheels have been stripping these for a while - - develwheel on widows has been putting (a different version) back - - - *decision* - - - merge the mpl PR - - @ksunden will put a PR into basemap to bring thing in line too - -### pyproject.toml move -- requires everything to be declarative -- we have a bunch of non-declarative stuff in our setup.py - - only require setuptools_scm when in a git repo - - may not be a way to do this auto-magically - - maybe move into [dev] - - and add pytest, change install instructions for dev to target `.[dev]` - - provide options to build against system freetype / qhull - - can probably handle that in the build process - - should we ship the test images or not in the wheels - - can do this with meson - -*decision* - - - @QuLogic will take over this PR and merge with meson work - -### mouse over on twinned axes - -https://github.com/matplotlib/matplotlib/pull/25556 - -discussion is over how to format - -criteria: - - not too much width - - be very clear to the mind - -preference to last version in https://github.com/matplotlib/matplotlib/pull/25556#discussion_r122297156 of - -x, y = (1, 2) | (2, 3) - -discussion about if we should change the non-twinned axes to also be - -x, y = (1, 2) - - - -# 1 June 2023 -@attendance: @ksunden, @jklymak, @QuLogic, @efiring, Haoying Zhang (@stevezhang1999), @melissawm, @oscargus, Ratna(@devRD), @rcomer, @tacaswell, @story645 - -## Agenda - -### Old business - -### New business - - - [x] RSE updates - - [x] GSOC and GSOD updates - - [x] [name=tacaswell] 3.8.0 release schedule - -### Issues and PRs - - [x] [name=oscargus] [Data cursor](https://github.com/matplotlib/matplotlib/issues/9957) - should make a decision, not just let it become inactive. - - [Data tooltip](https://github.com/matplotlib/matplotlib/issues/23378) is a related approach that may be worth considering in the discussion. ([Related PR](https://github.com/matplotlib/matplotlib/pull/25831)) - - [x] [name=tacaswell] slimming down (or expanding) subpackage imports https://github.com/matplotlib/matplotlib/pull/26017 - - [ ] [name=jklymak] Issue expiry? https://github.com/matplotlib/matplotlib/pull/25938 - -## Notes - -### RSEs - -- @ksunden: At scipy maintenrs confab in Seattle. meeseeksbot being renamed to "lumberbot" (maybe). Nightly wheel location being cleaned up. - - units infrastructure, units dtype in numpy. With sebastien. - - Catching up -- @QuLogic: Old PR work. Meson work ready. Some CI issues broken last week fixed. -- @tacaswell: issue review; Breaking SciPy doc builds on multiple cores on a Mac. -- @melissawm: Old PRs that haven't been getting through. New contributor meeting Tuesday 1300-1400 EDT. Melissa can't do it - can anyone help? @tacaswell and @story645 can help. - -### GSOD: -- prototype of tagging. Draft of guidelines by end of summer. -- tagging 70%. - -### GSOC: -- @Ratna: operater in Mathtext. Relational operators, and new ones. @kyle and @QuLogic mentoring. @oscargus working on similar things. Prioritization? -- Maybe page to track the project? Mayeb GitHib Project -- just started this week. - -### 3.8 release -- July -- issues that might block - - Image testing overhaul - - type hints in docs. - - user explain / top level re-org -- RC last week June, release middle/end July - - before SciPy (at least RC) -- New features: - - type hints - - ECDF, figure titles, math things. - - a lot of API changes - -### Data Cursor: - - [Data cursor](https://github.com/matplotlib/matplotlib/issues/9957) - should make a decision, not just let it become inactive. - - [Data tooltip] - - Example of issue that expired. - - mplcursors exists; should stay thirdparty? - - native better? - - hover and click - - Native tooltips... - - https://github.com/matplotlib/matplotlib/pull/23378 - - tooltips themselves generally useful, which we don't have. - - Hover events? - - https://github.com/matplotlib/matplotlib/pull/25831 - - probably don't want hover events. - - Conclusion: - - #25831 probably discouraged (@tacaswell will comment) - - #23378 tooltips support needed - - #9957 close and not accept - -### importing `matplotlib` -- trying to strip things that don't need to be there. -- https://github.com/matplotlib/matplotlib/pull/26017 -- very small import time difference. -- SciPy is discussing lazy module importing -- maybe import `matplotlib.figure` by default - - you need `Figure` to do what it is we think it is you do with Matplotlib -- conclusion: - - close PR - - leave expanding it as food for thought - -### Speed of expiry bot - -- go faster or go slower - - keep same for now? - - should label more as "keep" actively. - - ---------------------- -# 25 May 2023 -@attendance: - -## Agenda - -### Old business -- [x] [name=story645] gitter to matrix: - - spaces is the [official replacement](https://github.com/vector-im/roadmap/issues/26) - - spaces based authentication is a [WIP spec](https://github.com/matrix-org/matrix-spec-proposals/pull/2962) - - proposal: use spaces w/ manual registration until features are implemented - - activity side panel is [stalled pr](https://github.com/matrix-org/matrix-hookshot/issues/631) on matrix-hookshot (used for bridging) - -### New business - - - [x] RSE updates - - [x] GSOC and GSOD updates - - [x] @kolibril13 Short Matplotlib demo - -### Issues and PRs -- [x] [name=story645] [plot types - user guide - tutorials - examples - reference](https://github.com/matplotlib/mpl-sphinx-theme/pull/72) - overview to details -- [x] [name=tacaswell] how to document transXYZ attributes https://github.com/matplotlib/matplotlib/pull/25922 - -## Notes - -### RSE updates -- @tacaswell, some PR review -- @QuLogic meson work, working on windows issues, older orphaned PRs - reduce PR count. -- @Ratna: GSOC relational operator, PRs waiting on review... - - PR: https://github.com/matplotlib/matplotlib/pull/25933 -- GSOD: Met w/ Eva - making spreadsheet, working on timeline; some permission issues. - - work log: https://hackmd.io/uiu3amD3SpOFrGyFUOK07Q - -### Demo -- incorporate tldraw into Matplotlib https://github.com/kolibril13/jupyter-tldraw/tree/ff285974174189f34545be50f5dc71eb41302cb7/future_ideas/annotate_matplotlib -- demo of gallery searcher that narrows down the thumbnails to just those that have searchterms -https://discourse.matplotlib.org/t/the-matplotlib-gallery-with-dynamic-search/23826?u=kolibril13 - -### Gitter -- "spaces" replacement for setting permissions on rooms - - no linked authentication - - add new folks -- sidebar with status stalled PR -- pr on comms guide that mod access is by request - -### Navbars: -- dev->contribute -- do it! - -### rename exmaples -- rename -- re-directs - - need to add stable/gallery -> stable/examples 301 when we publish - -### transAxes/transData etc -- not documented on the objects -- https://github.com/matplotlib/matplotlib/pull/25922 -- Options: - - class variable: defaults None w/ docstring - - type unstable - - maybe use identity transfrom an default, but could lead to other confusing behivor - - properties - - better for interactive query - - can make read-only (though we may mutate internally) - - slower than attribute look up - - add to docstring - - risk getting out of sync - - more manual query - - class variable with just type - - but would start to leak typing information into the code -- make properties snake case (some of the only places that use camel case) - - have talked about this before but decided too much work - - -Consenus - - go with properties - - but do coarse bench marks to see if it matters - - option to look at read-only - - would need a deprecation cycle - - check how disruptive this would be - - consider renaming - - https://github.com/matplotlib/matplotlib/pull/11051 is prior art - - the docstrings are not yet clear - - need to be more explicit about source and target coordinate systems - - link to transform tutorial - ------------------------------- -# 18 May 2023 -@attendance: @kyle, @tacaswell, @efiring, @story645 , @melissawm, @Eva Sibinga, @Haoying Zhang, @Chahak Mehta. @Ratna, @ianthomas23 -## Agenda - -### Old business - - [x] [name=tacaswell] update on image testing overhaul - - [ ] [name=elliott] update on leak finding - -### New business - - [x] RSE updates - - [x] GSOC and GSOD updates - - [x] [name=story645] adding outside collaborators - - [x] [name=story645] general purpose docs gitter/matrix channel - - [x] [name=story645] github-matrix bridging - - [x] [name=melissawm] GSoD Update: Technical writer hiring in progress :tada: - - [x] [casting to numpy]( https://github.com/matplotlib/matplotlib/issues/25882#issuecomment-1553480984) - - [x] [name=mellissa] explaination pages moving - -### Issues and PRs -- [x] [name=story645] nav bar changes: - - [x] [develop->contribute](https://github.com/matplotlib/mpl-sphinx-theme/pull/71) - it was contribute first & not all contributions are code - - [x] [plot types - user guide - tutorials - examples - reference](https://github.com/matplotlib/mpl-sphinx-theme/pull/72) - overview to details - -## Notes - -### RSE and GSOC and GSoD: -- @ksunden SciPy summit. Data prototype work, issue review -- @tacaswell, image testing, admin, PR review etc -- @melissawm: doc issues. Inter-project working groups/culture labs (more info here: https://discourse.matplotlib.org/t/fostering-an-inclusive-culture-call-for-participation/23783) -- @ratna: GSOC: relation operators, some spinup meetings - - mathtext set of issues... -- @eva: starting next week with @melissawm and @story645 - - indexing gallery examples and information architecture... - -### Adding outside collaborators -- matplotlib-steering-council@numfocus.org - -### Gitter -- Currently no bridging between github and matrix/gitter -- new channel for docs? -- repurpose GSoD? or community? -- ask for incubator adds on the community channel? - -### Casting to numpy -- frequently hit issues where we have issue - - people try to pass us "array like thing" - - sometimes crashes - - in this case slow -- do we have a good documentation of exactly what we take - - push this up the Kyle's TODO list for 2 weeks -- xarray has ability to carry units as meta-data, but not programatically used -- numpy's new dtypes can in theory carry physical units - -### Moving example pages -- long discussion about what the right organization of the user guide is -- old organization had bad - - conceptual grouping - - depth of details grouping -- we should add a new "archiceture" top-level in the user guide - - move API and backend here - - put new short-versionof arch of open source software blurb (Mellissa is working on) -- maybe consider tagging these like examples -- should stay in users not dev because they really are for users not just for mpl devs - --------------- -# 11 May 2023 - -## Agenda - -### Old business - - [x] [name=story645] in process of hiring GSOD writer [Eva](https://discourse.matplotlib.org/t/gsod-writer-hired/23796) - - [x] [name=story645] announce GSOD and GSOC hiring? on homepage - -### New business -- [x] RSE updates - -### Issues and PRs - -- [x] [name=@greglucas] Contourset as a single LineCollection/PatchCollection [25247](https://github.com/matplotlib/matplotlib/pull/25247) - - ~2 MB in image changes associated with this. Needs Mypy help. https://github.com/matplotlib/matplotlib/pull/25247#issuecomment-1537842858 -- [x] [name=@oscargus] [Shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) - - Also makes sense to merge the above before [#24666](https://github.com/matplotlib/matplotlib/pull/24666) (I can fix that if the author is not up for it) -- [x] [name=@greglucas] Memory leak testing [25853](https://github.com/matplotlib/matplotlib/pull/25853#pullrequestreview-1421626522). We currently check memory thresholds, but do we want to ensure objects aren't in the list of gc.get_objects() using objgraph as an optional test dependency on one of the runners? -- [ ] [name=@oscargus] [Minimum QT version](https://github.com/matplotlib/matplotlib/pull/25363) -- [x] [name=@chahak13] What is the usecase for `rcdefaults`? Is the idea to go back to the default "style" values or the values present in `matplotlibrc`? If I'm reading it right, `rcdefaults` is almost entirely wrong. [Link](https://github.com/matplotlib/matplotlib/blob/8faa835c81d9cf12342992521ddb95e9a645bc36/lib/matplotlib/__init__.py#L1068-L1091) -- [x] [name=@chahak13] Scaling markers in scatter. Needs review https://github.com/matplotlib/matplotlib/pull/25259 - -## Notes - -### introductions -### gsoc project - - mathtext improvements - - improved latex integrations - - mentors are Kyle and Elliott - -### gsoc/gsod - - we should put on web page - - @kyle will do GSOC - - @story645 or @melissawm please do GSOD - -### RSE updates - - Caswell - - vacation / busy with BNL - - engaging with upstream packgaing discussion - - Kyle - - general issue review - - started GSOC meetings - - attended packaging round table - - thinking about data-prototype - - Elliott - - still fighting with laptop - - orphaned PRs - -### Issues -#### contour changes - - [25247](https://github.com/matplotlib/matplotlib/pull/25247) - - massively speeds things - - changes a lot of test images (2M) - - hold off for ~a month~ two weeks? - - to give @tacaswell a chance to finish the image update work - - also requried for fixing alpha in contours in pdf - -#### shadow + pie - - seems reasonable, just needs review (gone idle) - - the linked PR should make use of new functionality for legend shadow - -#### mememory leak - -- had a number of bugs where we have long-lived cyclic references -- should we add tests to look for memory "leaks"? -- we do have ASV still sort of set up - - could set up a memory-based benchmarks - - but this also requires getting it setup again and running -- could do something like what we do for the callback stack leakage? - - Elliott will look at -- https://www.fugue.co/blog/diagnosing-and-fixing-memory-leaks-in-python.html -- https://pypi.org/project/pytest-leaks/ - -#### rcparams discussion -- `clear` is no op and should be replaced by resetting to defaults function - -#### GSOD -- put on next week agenda making a gitter channel for documentation -- communicate public work and update plan - -#### - -# 04 May 2023 - -## Agenda - -### Old business - -### New business - - [x] RSE updates - - [x] [name=tacaswell] broken pypy39 wheels https://github.com/matplotlib/matplotlib/issues/25811 - - [x] GSOD - - [x] GSOC - -## Notes - -### GSOC - - we were accepted for GSOC with the Math Text proposal by devRD (just posted!) - -### GSOD - - currently doing interviews, part of the way through interview pool, should decide by Sat - - deadline to hire is May 10 (need to identify person and tell Google, not have contracts signed) - - working with NF to set up the IC contracts, money will come through open collective - -### RSE updates - - Caswell - - PR to CPython for input issue - - example PR for new image scheme - - PR review - - Kyle - - general issue / PR review - - tracking down fallout from numpy changing sin/cos computatitons - - single LUP changes broke 3 tests - - PR just open - - work on validating converters and formatters - - - Elliott - - laptop drive died, lost a bit of work + time - - stale bugs triage - - work on images - - bit of work on confusing PDF compression bug - - Melissa - - GSOD - - as part of grant, worked with DEI consultant who wrote a report - - report is now public, will put as news item on our home page - - starting Culture Labs - -### pull pypy39 wheels - -- -- https://github.com/numpy/numpy/pull/23528 may be related -- *we will yank the pypy39 wheel* -- won't remove from CI, just note to not upload - - -### image externalization work - -- (described) -- - - -# 27 Apr 2023 - -## Agenda - -### Old business -- [ ] GSOD - -### New Business - - [x] RSE reports (Weekly worklog not used?) - - [x] [name=tacaswell] pypi organization for mpl ? https://matrix.to/#/!BXmyZMTnRjWJldDRLV:gitter.im/$MJFPkcAmG4UHgOKC0dqpXCkVBm7EG4V-ihNHyh-2MMc?via=gitter.im&via=matrix.org&via=aria-net.org (brought up on gitter by @dopplershift ) - - [x] [name=oscargus] Should there be unused imports in the stub files? Example: `FT2Image` in `mathtext.pyi` - - [x] [name=oscargus] PS vs. EPS. Is PS still needed (basically PS expects a paper size, which is buggy, and most users probably expects a properly sized figure anyway)? - - [x] [name=QuLogic] Removing travis - - [x] [name=QuLogic] server-side redirects: mpl-third-party and examples - - [x] [name=story645] GSOD - closing applications and making short list tomorrow?- anyone want to participate in writer selection? - - [x] [name=story645] registering for an account on bluesky to squat name/general policy for registering accounts - -### Issues and PRs -- [ ] [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) Very likely to end up in rebase limbo. -- [x] [name=@chahak13] Added performance impact of using ChainMap for RcParams in description. ([#25617](https://github.com/matplotlib/matplotlib/pull/25617)) -- Bump list (probably nothing to discuss) - - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) - - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) - should it wait on implementing seed setting parameter, which has a proposed patch - - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) - - -## Notes - -### RSE updates - - Kyle: - - normal issue / PR work - - 2 versions of code validate formatters / converters, may need new API - - Tom - - nerd-snipped into fixing a CPython bug - - general issue / PR review - - Elliott - - continued work on post script - - resolved most of the PS bugs that are not spcefic to the PS format - - continued work on DPI refactor - - might be able to generalize the DPI handling across vector backends - - but we have a lot of hard-coded 72s in the backends - - tests seem to run, but worry about lots of edge cases - - not clear we really want / need to do this, but it is working - - might help with the pdf/ps issues with shifted lines and colorbars - - @jklymak is also working on the shifted (low-dpi) rasterized embeds in vector backends at low DPI - - part of the problem is that because there is a stroke on the border, the rasterize includes this boarder, but the computed bbox does not - - may need "true bounding box" - - worklog stopped being filled in, we should start doing this again - - https://hackmd.io/@matplotlib/HyVoUHlSo - - -### Pypi org -- pypi now has organizations - - still not a lot of information - - free for community projects, use to generate revenue - - consolidate our packages into one org - - expectation is that teams will lets us do better ACL -- do we want to ask for an org? - - go our own or a community wide one? -- decision: lets go ahead and get one @dopplershift will do - - -### unused imports in stub files -- multiple levels of imports in stub files - - everything in .py file + what is needed to do type - - just what you need - - not a clear community standard -- what (re)-imported things are considered part of the public API -- mympy only considerd things imports via `import Foo as Foo` to be publically exported -- may have to be case-by-case - - but in this case it should be removed - -### PS versus EPS -- papersize: - - https://github.com/matplotlib/matplotlib/issues/7551 - - automatic size picking does not quite work - - always picks something in the b-series - - b10 is near b1 not b9 so never get b10 - - do we actually _need_ paper size? - - we set the paper size, place the figure in the middle, and then crop to the figure - - if user specified a paper size respect, but drop "auto" behavior - - @oscargus notes PS needs a paper size, but @QuLogic 's understanding of the spec is that we do not - - think it is only used for media selection when sending straight to a printer -- propsoals - - deprecate the "auto" functionality - - default is currently "letter", switch to making the figure just the right size - - concerns - - people who are making PS _may_ be sending them straight to printers! - - deprecate the whole thing? - - basically the same code as eps so cost of keeping around is low - - slightly diffrent header / footer than eps - - can we get better results via pdf -> external distiller to eps - - some cases where it does not work perfectly (related to hatching) - - what does pdf -> eps via distiller do with transparency? - - -**decision** - -deprecate auto, punt on the rest - -### Travis - -notification: has been turned off for a year, will remove - -### server side re-directs - -- proposal: - - put in a server side re-direct to matplotlib.org/third-party from matplotlib/mpl-third-party to reduce redundency - - name needs some discussion - - used to be thirdpartypackages - - currently https://matplotlib.org/mpl-third-party/ - - 3pp is a propsoal - - discussion of getting really short re-directs - - decided on going back to thirdpartypackage - -- issues with gallery / examples naming - - examples get served under matplotlib.org/stable/gallery but come from gallery/examples - - propsoal: - - change where they are written to to matplotlib.org/stable/examples - - add server side re-direct from gallary -> examples - - probably want to keep the re-direct forever (but use 30-permenent redirect) - - configuration is in https://github.com/matplotlib/matplotlib.org - - -### GSOD -- got a lot of propsols, enough good candidates -- plan to short list tomorrow - - if you want to be involved ping @story645 and @melissawm -- google wants writer hired by May 10 -- project is about cataloging existing content not writing new content - - index gallery and develop tagging scheme - - write developer docs on how to tag new things in the future, how to add new tags - -### do we want to register on new platforms? - -- bluesky - - do it! - ----------------- -# 20 Apr 2023 - -``` -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 -``` - -## Agenda - -Attending: @tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ @jklymak @pXw4hSgTQF2--OciPYwa1w @melissawm @oscargus @devrd @chahak @ksunden @QuLogic - -### Old Business - -### New Business - -- [x] RSE reports -- [x] GHC day https://app.sessionboard.com/submit/grace-hopper-celebration-2023/f9ed4ea9-3e3e-4936-a112-c4f4af24dbfc need to submit by 4/26 - - need 3 people willing to have their name + email listed as mentors -- [x] [name=oscargus] Add automatic comment on "Good first issue" with appropriate links to guidelines etc? https://github.com/marketplace/actions/create-or-update-comment https://docs.github.com/en/actions/managing-issues-and-pull-requests/commenting-on-an-issue-when-a-label-is-added -- [x] website TLS issues - -### Issues and PRs - -- [x] https://github.com/matplotlib/matplotlib/pull/25515 srcset for plot_directive. -- [x] [name=oscargus] [#25642](https://github.com/matplotlib/matplotlib/pull/25642) opinions before adding tests and documentation (or closing)? -- [ ] [name=oscargus] artist property keyword argument documentation incl. rcParams [Option 1](https://github.com/matplotlib/matplotlib/pull/22699), [Option 2](https://github.com/matplotlib/matplotlib/pull/22749), [Option 3 (only a suggestion, can be combined with others)](https://github.com/matplotlib/matplotlib/issues/25644) -- [x] [Figure repr](https://github.com/matplotlib/matplotlib/issues/9372) This should be closed I believe -- [x] [extended wilkinson method for tick locators](https://github.com/matplotlib/matplotlib/issues/9373) still intended? -- Bump list (probably nothing to discuss) - - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) - - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) - - [mathbfit mathtext command](https://github.com/matplotlib/matplotlib/pull/25359) - - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) - - [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) - -## Notes - -### RSE updates -- @tacaswell: Image set work, PR.. - - [PR](https://github.com/matplotlib/matplotlib/pull/25734) now open. Look at and discuss next week - - https://github.com/tacaswell/mpl-imageset-demo -- @ksunden - - PR review etc. - - data prototype work - - GSoC work - - typing in down-stream libraries -- @melissawm - - travel - - SGoD proposals ongoing; good candidates -- @QuLogic - - hiDPI work - - postscript work - -### Grace Hopper -- due 26 April: 3 names/addresses - -### Scipy tutorial -- accepted for tutorial (July) -- perhaps seek input - -### Good First Issue -- maybe add bot to add a comment to good first issue pointing to devdocs -- should be possible with current workflows -- method to better screen - - try to add short justification for why good first issue -- add info to PR template to make sure people link.. -- communicating crossed PRs - -### Website -- @QuLogic is fixing manually - -### [srcset for plot_directive](https://github.com/matplotlib/matplotlib/pull/25515). -- needs review - -### [rcParams for 3d](https://github.com/matplotlib/matplotlib/pull/25642) -- general idea - -### decorator for kwargs that have rcParams -- decorators for every function -- versus parsing the docstring of the setter/getter? - -### Wilkinson ticks -* maybe want, needs to be prototyped and evaluated, possibly as an external library - - - ---------------------- -# 13 Apr 2023 - -``` -2023-04-13 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 -``` - -@jklymak @chahak @ksunden @oscargus @melissawm @QWhXj01mSwmTjk5kN1H_qQ @timhoffm @tacaswell @QuLogic - -## Agenda - -### Old Business - -### New Business - -- [x] RSE reports -- [x] GHC day https://app.sessionboard.com/submit/grace-hopper-celebration-2023/f9ed4ea9-3e3e-4936-a112-c4f4af24dbfc need to submit by 4/26 -- [x] [name=Melissa] Docs on codespaces? https://github.com/matplotlib/matplotlib/issues/25398 - - May be very useful for sprints! - -### Issues and PRs - -- [x] [name=QuLogic] [name=oscargus] eventplot corner cases [#22286](https://github.com/matplotlib/matplotlib/pull/22286) -- [x] https://github.com/matplotlib/matplotlib/pull/25617 RcParams->ChainMap -- [ ] https://github.com/matplotlib/matplotlib/pull/25515 srcset for plot_directive. -- [ ] [name=oscargus] [#25642](https://github.com/matplotlib/matplotlib/pull/25642) opinions before adding tests and documentation (or closing)? -- [ ] [name=oscargus] artist property keyword argument documentation incl. rcParams [Option 1](https://github.com/matplotlib/matplotlib/pull/22699), [Option 2](https://github.com/matplotlib/matplotlib/pull/22749), [Option 3 (only a suggestion, can be combined with others)](https://github.com/matplotlib/matplotlib/issues/25644) -- [x] [name=jklymak] [bar/barh units meaning of height/width](https://github.com/matplotlib/matplotlib/pull/25667) - - eg does `bar([0, 1, 2], height=['cat', 'dog', 'cat'])` really get used, and why? -- Bump list (probably nothing to discuss) - - [shadow and pie shadow](https://github.com/matplotlib/matplotlib/pull/25389) - - [sketch pathcollection](https://github.com/matplotlib/matplotlib/pull/25645) - - [mathbfit mathtext command](https://github.com/matplotlib/matplotlib/pull/25359) - - [minimum Qt5 version for mpl 3.8](https://github.com/matplotlib/matplotlib/pull/25363) - - [Draw 3D gridlines below axis lines, labels, text, and ticks](https://github.com/matplotlib/matplotlib/pull/25482) -- [x] [name=Melissa] CircleCI token fix https://github.com/matplotlib/matplotlib/pull/25672 - - Maybe related? https://app.circleci.com/pipelines/github/matplotlib/matplotlib/23508 -## Notes - -### RSE updates -- @tacaswell more thinking about test image overhaul. - - text file gets made with list of files: - - filename version timestamp - - this will show up in the commit with git/blame - - SHA has issues with rebasing etc... - - images not hash-stable in general (have metadata) - - can get candidates for images that with or will not work. - - will have a test repo -- @ksunden: - - typing issues - - type checkers over dependencies (xarray, seaborn, plotnine) some errors on our end to fix. - - pandas: makes hard to check, no type hints plotting routines - - CI issues - - nbconvert, still buggy - PR on the way - - mypy moves fast - bug filed - pinned mypy - - GSOC: reviewd apps. Elliott and Kyle have two or three likely candidates. - - mathtext, bivariate colornorm - - data prototype work: - - Expanding Patch support - - Validating formatters/converter compatibility [#25662](https://github.com/matplotlib/matplotlib/pull/25662) -- @melissawm - - GSoD: feedback and information - - CircleCI token update - - other repos may need this too - - codecov removed on Circle - - Codespaces? - - how-to in our docs? - - vscode on browser... - - docker image pre-set dev environment - - but docker sunsetting? - - numpy/scipy decided to drop it - - useful for sprints - - need a json file for the environment - - xvfb for seeing figures... - - hard to get interactive figures in vscode - - @melissawm will see if there is any way to create windows and other blockers. - - how ephemeral? Can save multiple sessions. 30 days persistence. -- @QuLogic - - CI fixing, GSoC, typing - - Azure failing tk broken. Reported... - - old issue review and PRs - -### Grace Hopper -- 26 April: sprint -- increase test coverage - largely checking datetime64 - -### Event plot corner cases - -- https://github.com/matplotlib/matplotlib/pull/22286 - -### rcParams: ChainMap -- https://github.com/matplotlib/matplotlib/pull/25617 -- better protection of rcParam global -- defaults stored in base layer -- contexts more elegant -- need to check performance of ChainMap versus dict. -- some top-level names that don't get a sub namespace. -- introduces new API, but ideally back compatible - - maybe new API into a different PR? -- 3.7 we already had deprecators for `dict.__set_item__`. - - so 3.9 would be target if we followed this deprecation. - - but no one knows because we can't warn on it - - maybe not really public API -- - ---------------------- -# 6 Apr 2023 - -``` -2023-04-06 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 -``` - -## Agenda - -### Old Business - -### New Business - -- [ ] RSE reports - -### Issues and PRs - -- [x] [name=QuLogic] [Enable pre-commit for mpl-third-party?](https://github.com/matplotlib/mpl-third-party/pull/152) -- [x] [name=QuLogic] [mpl-sphinx-theme license?](https://github.com/matplotlib/mpl-sphinx-theme/issues/29) -- [ ] [name=QuLogic] [name=oscargus] eventplot corner cases [#22286](https://github.com/matplotlib/matplotlib/pull/22286) -- [ ] https://github.com/matplotlib/matplotlib/pull/25617 -- [ ] https://github.com/matplotlib/matplotlib/pull/25515 - -## Notes - -### Discussion of animitaion and figure sizing - -- using the transform + figure resize to expand figure without moving things - - scale the figure transform so that the top-right is no longer (1, 1) -- stick with being strict - -### how to manage user confusion between us and downstream - - -### RSE updates - - kyle - - follow ups to typing PR - - small detailed things - - new contributor meeting - - the align titles PR was discussed (#25591: https://github.com/matplotlib/matplotlib/pull/25591) - - gsoc management - - Investigate/address dependencies that broke our tests - - Pyside6 requires libxcb-cursor0 - - nbconvert release changed file names - - elliott - - meson and documentation work - - reviewing the typing PRs - - tom - - https://github.com/matplotlib/matplotlib/issues/25608 - - animation issue review - - ban just on streaming ffmpegs? - - just at grab-frame level - - GSoD -- melissa - - redirect GSoD stuff to a google group - - a lot of interest in GSoD - -### mpl-sphinx-theme -- License says BSD, but should be PSF.. -- pytoml one place for license -- Should use a general license like BSD -- @QuLogic to add PR to fix - -### pre-commit mpl-third-party -- recent style fixes, yaml-lint and json-schema -- enable pre-commit to check those. -- seems that yes! - -### eventplot corner cases -- [#22286](https://github.com/matplotlib/matplotlib/pull/22286) -- Wait for @oscargus - -### markersize PR -- needs rebase, but should be good... - -### rcParams -- [#25617](https://github.com/matplotlib/matplotlib/pull/25617) -- remove dict inheritence replace w/ ChainMapping... - - defautls temporarily replaced by user values in context, - - we use dict getters and setters for rcParams. - - want namespacing to work, adding to dict, its getting pretty complicated. - - iterator, `in` are hard to get right. Mostly like an dictionary, but... - - don't need rcDefault anymore. - - chain mapping allows undo one level deep or saved points. - - makes context managers easier - - default saved in chainmap - - pros: - - code simplified - - name-space access rcParams['text'] - can get keys w/o prefix - - need documenting and lay it out clearly because will be public API. - - - - ---------------------- -# 30 Mar 2023 - -``` -2023-03-30 19:00:00+00:00 -Europe/Berlin 2023-03-30 21:00:00+02:00 -UTC 2023-03-30 19:00:00+00:00 -America/New_York 2023-03-30 15:00:00-04:00 -America/Vancouver 2023-03-30 12:00:00-07:00 -US/Hawaii 2023-03-30 09:00:00-10:00 -``` - -## Agenda - -### Old Business - -- [x] Plausible [name=Melissa] No updates (my fault!) - -### New Business - -- [x] RSE Reports -- [x] semgrep https://semgrep.dev They have been emailing me if they can sponsor (give us a free account?). Does this look interesting enough to anyone to be worth responding to? -- [x] [name=Melissa] New contributor meeting next week (Tuesday, 5pm UTC). No agenda, maintainers welcome! -- [x] GSoC - how/where can candidates ask questions? - - -### Issues and PRs - -- [x] [name=@rcomer] Offset option in MultipleLocator: do we want this and if so is *offset* the best name for the parameter? [#25542](https://github.com/matplotlib/matplotlib/pull/25542) -- [x] [name=@chahak13] [#4672](https://github.com/matplotlib/matplotlib/issues/4672) Retrieve marker style info from scatter? If there isn't much interest, then can close this. -- [x] [name=@chahak13] [#6453](https://github.com/matplotlib/matplotlib/issues/6453) Small (_very_) size in scatter still has some sort of an overflow (at about e^-28 from a preliminary check). - -## Notes - -### RSE reports -- @tacaswell More work on test image refactor. Astropy pytest-mpl workflow. Hashes of images, and if hash fails, get image and do image comparison. But requires freetype to be pinned - - writing docs first to understand issues that need to be solved -- @ksunden - - typing PR merged. - - CI now run so should catch PRs that don't have stubs - - some things skipped in CI. eg axes artists methods! Devs should check that signature changes are added to the stub including expanded type. - - IDEs can do type checking using the stubs. Devs may want to use these. - - some docstrings improved (separate PRs generally) - - some return type inconsistencies that are to be done in follow-ups - - mypy doesn't check implementation to see if consistent with stubs - - questions about interfacing w/ external libraries: yes external libraries need to be consistent with our stubs, but internally we are not. - - internally examples should work with the stubs. - - stub files were used as first step... - - package installed, stub files installed as well - - try and test a few libraries? - - announce change on announce page at Discourse - - numpy type hinting w/ shape information? - - scientific python discourse? - - PDF Preview.app difference... -- @QuLogic - - working on mpl-sphinx-theme and other doc repos - - meson build tool instead of distutils. - - Working on porting to Matplotlib. Meant to be used w/ compiled projects. - - possibly different on windows -- @melissawm - - GSoD submitted (response tommorow). Hire by mid May if selected - - New contrib meet next week on Tuesday. Encourage new folks to come! - - GSoC questions? Who to talk to? Pointing to project page. Gitter channel exists, - - first issues - - Need follow-up on a couple of these... - -### Semgrep -- extra linting service -- https://semgrep.dev Follow up w/ @tacaswell if you think this is useful... - -### Offset option in MultipleLocator [#25542](https://github.com/matplotlib/matplotlib/pull/25542) - - - do we want this and if so is *offset* the best name for the parameter? - - maybe *shift*, *tick_offset*? Moving ticks... - - *offset* is fine. - - seems reasonable - - example of PR that will fail CI because of type stubs! - - ### [#4672](https://github.com/matplotlib/matplotlib/issues/4672) Retrieve marker style info from scatter? - - If there isn't much interest, then can close this. - - Yes close - -### [#6453](https://github.com/matplotlib/matplotlib/issues/6453) Overflow scatter -- Small (_very_) size in scatter still has some sort of an overflow (at about e^-28 from a preliminary check) that makes a large scatter? -- close as can't fix... stroking issue and depends heavily on the backend... -- link to other issue with donuts... - - ---------------------- -# 23 Mar 2023 - -``` -2023-03-23 20:00:00+00:00 -Europe/Berlin 2023-03-23 21:00:00+01:00 -UTC 2023-03-23 20:00:00+00:00 -America/New_York 2023-03-23 16:00:00-04:00 -America/Vancouver 2023-03-23 13:00:00-07:00 -US/Hawaii 2023-03-23 10:00:00-10:00 - -2023-03-30 19:00:00+00:00 -Europe/Berlin 2023-03-30 21:00:00+02:00 -UTC 2023-03-30 19:00:00+00:00 -America/New_York 2023-03-30 15:00:00-04:00 -America/Vancouver 2023-03-30 12:00:00-07:00 -US/Hawaii 2023-03-30 09:00:00-10:00 -``` - -## Agenda - -### Old Business - - -### New business - - [x] RSE reports - - [x] Do we want to participate in Grace Hopper Conference sprint again? - - [x] [name=Melissa] Plausible? - - https://plausible.io/ - - Requires an update to the pages layout template ([Example from SciPy](https://github.com/scipy/scipy/blob/main/doc/source/_templates/layout.html), [where this could go for Matplotlib](https://github.com/matplotlib/matplotlib/tree/main/doc/_templates)) - - [x] [name=Melissa] Submitting the proposal for GSoD (deadline tomorrow) - - https://hackmd.io/@matplotlib/gsod2023 - - Two technical writers interested already :tada: - - Need a contact email for folks interested - - [x] tag/index mechanics - - related to above, but somewhat orthogonal as well, as the GSoD probably won't do the technical part - -## Notes - -### RSE reports.... - -- @tacaswell: Busy with BNL work -- @ksunden: issues/pr reviews. Older units issues. Typing PR, CI works for stub test -- @QuLogic: documentation. theme; third-party-page needs to be updated. Need fixes 3.7.1 -- @melissawm: GSoD possible technical writers, 3 or 4 candidates. Need to submit project proposal. - -### GSoD -- put on wiki -- 3-4 possible candidates -- need an email for point-of-contact: organizational contact - - personal email address OK. - - CV, statment of interest - - did on public mailing list versus private - - can wait until if we know we are selected. -- clairfy that guidelines of how to tag future examples + how to decide we need a new tag is part of the diveralble. -- change budget to be a single technical writere - -### tags - -- @melissawm has a worked prototype of adding a tag directive to sphinx (https://github.com/melissawm/sphinx-tags) - - may move project under sphinx-gallery - -### GHC - -- lots of work -- maybe test coverage issues is good sprint work... - - figure out missing code paths w/o image tests - - missing tests for different data types... - - exercise different data types (dates, categorical, pandas), perhaps just smoketests, or when image testing infrastructure in place.... -- As "feature project" - - numpy did this ~70 people; ~40 had a pull request... -- September 2023 - -> Thank you for participating in the Grace Hopper Celebration’s Open Source Day 2022. Because of that submission and your overall contributions to the open source community, we would like to invite you to, again, partner with AnitaB.org for GHC’s Open Source Day 2023! -> ->Open Source Day is always an exciting opportunity for attendees to learn and become open source contributors. Trained mentors provide guidance to make contributions to listed projects. Projects that participate in the event not only gain visibility and same-day contributions, but also benefit by widening their pool of future contributors. In the past, we have seen how positively impactful OSD can be for both the attendees as well as the projects involved. -> ->Given your outstanding involvement in open source, we would be really excited for you to join us again this year. -> ->Same as last year, OSD projects must have at least one woman or non-binary core maintainer and provide mentors and triaged, technical-focused, good first issues for the event. Maintainer/mentor teams will introduce the project, answer questions, and support attendees in making contributions. OSD projects will gain visibility and same-day contributions, as well as help grow the pool of future contributors. -> -> -> ->Project maintainers require the following commitments: -> ->· Provide the minimum number of triaged issues (5+ for small projects, 30-100 for large projects) -> ->· Provide a short project overview -> ->· Attend full GHC 23 OSD event during the conference -> ->· Onboard three or more OSD-appointed mentors who will become contributors to your project, as well as guide participants on pull requests and troubleshooting and answer questions -> ->· Engage with and answer attendee questions on Slack and Zoom -> ->· Review and merge pull requests during OSD -> ->If you are interested in participating this year, please submit your project via the GHC CFP. The GHC CFP process ends on April 26th, 2023. -> ->If you are aware of or have any open source projects with female maintainers in your network whom you think are a great fit for this opportunity, please forward this email to them. We appreciate you helping us in this effort! -> ->We’re excited to work with you in 2023! - -### Plausible - -- https://plausible.io Google analytics replacement... -- more privacy respecting -- can run both at same time.... -- should get snapshot of google analytics, maybe not lose that... -- google analytics wants us to change tags? -- scientific python has a server that runs plausible... -- we also get cloudflare analytics -- @melissawm to put in PR with `conf.py` change (if possible) or template change. - -------------------- -# 16 Mar 2023 - -Note time this week and next week if in North America: -``` -Europe/Berlin 2023-03-16 21:00 (+01:00 CET) -UTC 2023-03-16 20:00 (+00:00 UTC) -America/New_York 2023-03-16 16:00 (-04:00 EDT) -America/Vancouver 2023-03-16 13:00 (-07:00 PDT) -US/Hawaii 2023-03-16 10:00 (-10:00 HST) - -Europe/Berlin 2023-03-23 21:00 (+01:00 CET) -UTC 2023-03-23 20:00 (+00:00 UTC) -America/New_York 2023-03-23 16:00 (-04:00 EDT) -America/Vancouver 2023-03-23 13:00 (-07:00 PDT) -US/Hawaii 2023-03-23 10:00 (-10:00 HST) -``` - -## Agenda - -### Old Business - -### New Business -- [x] RSE reports - - -### Issues and PRs -- [ ] [name=@greglucas] Whether to add images that are knowingly bad for tests if they are a partial improvement? [#23199](https://github.com/matplotlib/matplotlib/pull/23199) -- [ ] [name=@greglucas] pcolor[mesh] proposal to return 2D array for data but 1D for get_facecolor? Issue: [#25162](https://github.com/matplotlib/matplotlib/issues/25162) PR: [#25027](https://github.com/matplotlib/matplotlib/pull/25027) -- [ ] MplGui -- [x] mplcairo -- [ ] https://github.com/matplotlib/matplotlib/pull/25210 -- [x] [name=@chahak13] Old Issue: [PyAV movie writer](https://github.com/matplotlib/matplotlib/issues/4416) - -## Notes - -### RSE reports -- @tacaswell bug squashing (mem leak in font fallback); image regeneration prototype - test suite at external tree; will need tooling. Nice way of changing and adding a new image test - - discussed the workflow a bit this will entail - - checking when freetype changes? - - pytest-mpl has a website viewer of failing images -- @ksunden mypy over examples. - - Some errors that need fixing in examples themselves. mypy doesn't like re-using variable names for different things - - PR review - - planning for medium term projects -- @QuLogic - - PR review - - stale issues review - - draft PR backlog (webagg testing; browser or framework issues) - -### [PyAV movie writer](https://github.com/matplotlib/matplotlib/issues/4416) -- python interface to ffmpeg -- use only if you need to... -- probably a historical artifact when ffmpeg not as cohesive -- ship static wheels with ffmpeg -- maybe has threading? - - maybe a really simple multiprocessing example would be useful - - add comment with ffmpeg invocation... - -### mplcairo - -- C++ probably OK. -- Do we have maintenance expertise to keep going? - - a lot of the important code is probably C++ - - plumbing is in python -- getting within realm of possibility -- cairo and agg at similar levels of maintenance - - not sure about current agg - - cairo has few developers. - - GL backends maybe more popular... - - less concern about anti-aliasing these days due to higher res displays. - -### mplgui -- pyplot: - - keeps global state - - manages GUI event loop - - global registry of open figures -- mplgui does second without implicit global state - - can have `Figure` objects created separately, and push to GUI when we want. - - also has a Figure registry - - -- how to pull into main library? -- fig.show() ? Can't show multiple figures... -- mg.show(figs) would open many figures.... -- rewrite the pyplot interface on top of this? - - - - - - --------------------- - -# 9 March 2023 - -_attending_: - -## Agenda - -### Old business - -### New business -- [x] Next week Americas DST transition: - ``` - Europe/Berlin 2023-03-16 21:00 (+01:00 CET) - UTC 2023-03-16 20:00 (+00:00 UTC) - America/New_York 2023-03-16 16:00 (-04:00 EDT) - America/Vancouver 2023-03-16 13:00 (-07:00 PDT) - US/Hawaii 2023-03-16 10:00 (-10:00 HST) - ``` -- [x] RSE reports -- [x] 3.7.1 release? -- [x] Stale label? - -### Issues and PRs - -- [x] [name=@chahak13] Comments on https://github.com/matplotlib/matplotlib/pull/25259 (size for markers in scatter) -- [x] [name=@ksunden][initial typing implementation](https://github.com/matplotlib/matplotlib/pull/24976/) -- [x] [name=@jklymak][Tutorial and User doc overhaul](https://github.com/matplotlib/matplotlib/pull/25395) -- [ ] [name=@greglucas] Whether to add images that are knowingly bad for tests if they are a partial improvement? [#23199](https://github.com/matplotlib/matplotlib/pull/23199) -- [ ] [name=@greglucas] pcolor[mesh] proposal to return 2D array for data but 1D for get_facecolor? Issue: [#25162](https://github.com/matplotlib/matplotlib/issues/25162) PR: [#25027](https://github.com/matplotlib/matplotlib/pull/25027) -- [ ] MplGui (maybe next week) -- [ ] mplcairo (maybe next week) -- [ ] https://github.com/matplotlib/matplotlib/pull/25210 - - -## Notes - -### RSE reports - -- @ksunden: fresh issues (memory "leak"). Metatdata issue on figsave. Typing PR (sphinx warnings...) -- @QuLogic 3.7.1 release! Issue triage older ones closed. -- @melissawm: new contributor off time meeting. Two new people. @saranti @devrd attended. Very engaged... https://github.com/matplotlib/matplotlib/pull/25210 -- @tcaswell: issue triage. Testing images into separate place to move freetype. - -### 3.7.1 -- crtical bugs out. No new issues so far. - -### Stale -- maybe caught up to milestone changes... -- can we ignore milestones in stale bot? - - -### [markersize on scatter](https://github.com/matplotlib/matplotlib/pull/25259) -- 'markersize' instead of 's'. -- kwarg for scaling -- get_sizes? should return original or transformed size? - -### [initial typing implementation](https://github.com/matplotlib/matplotlib/pull/24976/) -- _many_ errors w/ mypy - - most explicable - - @ksunden has tool for doing this... - - sphinx warning... -- mark as ready for review - - independent of run-time - - editor integrations may be better -- does testing tell us if stubs get out of sync? -- compatibility with Microsoft stubs? - - choose one or other, which one? - - PR to Microsoft? - - or Microsoft will perhaps remove when we release? (panadas was removed) -- things that should get eyes on: - - anything that touches .py files (only thing will affect run time) - - `__init__.py` picked up a `__all__` - - pyplot has inline type hints (because it is partially auto-generated) - - change to boilerplate.py - - using black for autogenerated parts of the code - - adds black as a test + dev dependency - - added a typing module (provisional) - - importable top-level module to hold type aliases (e.g. color, linestye) - - makes users like a bit less annoying if they want to type hint their code using Matplotlib - - some types in test - - there to make it possible to run mypy on - - linked to Dask's guide lines - - we may want to adopt these, but not fully done yet - - run on examples? - - -### User guide re-org - - user guide is bare - - mostly just explaination - - one the other hand tutorials section had lots of user guide type things - - colors - - imshow extents - - text, annotation, ... - - the user guide is in rst, tutorials are in SG - - thus the material is organized by tools rather than by content - - worked with SG to make it possible to mix rst and .py in the same tree - - got this merged upstream - - SG used to use a custom README.txt to build the index, now can override this behavior by by having an index.rst to give you full control - - did re-organization - - including fixing all of the internal cross references - - Caswell executive decision to deletage merge authority on this to Jody to self-merge when he thinks it is ready - - at least 1 week more discussion \ No newline at end of file diff --git a/meeting_notes/2024/2024_01_jan.md b/meeting_notes/2024/2024_01_jan.md new file mode 100644 index 0000000..30486d0 --- /dev/null +++ b/meeting_notes/2024/2024_01_jan.md @@ -0,0 +1,266 @@ +# Matplotlib Weekly Meeting: January 2024 + +###### tags: `2024 dev call` + +--- + +# January 4, 2024 + +@tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ (@efiring) @IGuKs80UTJCig4yt6Zos7w (@greglucas) @QuLogic +## Agenda + +### Old Business +- [x] Meeting time discussion + +### New Busines + - [x] RSE reports + - [x] 3.9 target date + - [ ] +### Issues and PRs + +- [x] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/27310 +- [x] [name=Hannah] [Content guidelines](https://github.com/matplotlib/matplotlib/pull/26389) +- [ ] [name=greglucas] [QuadMesh nan vertices](https://github.com/matplotlib/mplcairo/pull/54) Different backends treat the quads differently. Would we want to assert anything in how this is handled? + +## 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 + - https://github.com/numpy/numpy/issues/24300 + - do a 3.8.x along with numpy's 2.0 rc to drop the pin + - this lets us de-couple mpl3.9 from numpy2.0 + - 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 + +--- + +# January 11, 2024 + +__attending__: +## Agenda + +### Old Business + +### New Busines + - [] RSE reports + - [] 3.9 target date + +### Issues and PRs +- [ ] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/27310 +- [ ] [name=greglucas] [QuadMesh nan vertices](https://github.com/matplotlib/mplcairo/pull/54) Different backends treat the quads differently. Would we want to assert anything in how this is handled? + +## 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 + - https://github.com/matplotlib/matplotlib/pull/22699 + - merged +- https://github.com/matplotlib/matplotlib/pull/27310 + - meant to leave comment last week, now posted +- https://github.com/matplotlib/mplcairo/pull/54 + - we should let quadmesh and the functions that call them take `np.nan` in x/y + - should poison entire quad that the nan is in +- https://github.com/matplotlib/matplotlib/pull/27563 + - merged +- https://github.com/matplotlib/matplotlib/pull/27624 + - needs a bit more work +- https://github.com/matplotlib/matplotlib/pull/27618/ + - switch back to py39 + - remove broken to prove broken commit +- https://github.com/matplotlib/matplotlib/pull/27552 + - need to add note about how to run with `python -m pytest` +- https://github.com/matplotlib/matplotlib/pull/27230 + - @IGuKs80UTJCig4yt6Zos7w will look at +- discussion about managing font caches + - ensure that cache is generated docs + - add a CLI to font manager to help with cache genartion / clearing / locating + - maybe add a mode to only use fonts we shpsic + +--- + +# January 18, 2024 + +_attending_: @QuLogic, @ksunden, @tacaswell, @ianthomas23, @greglucas, @anntzer + +## Agenda + +### Old business +- [x] RSE reports +- [x] 3.9 progress report + +### new business + +- [x] backend + ipython https://github.com/matplotlib/matplotlib/issues/27663 +- [x] adopt EffVer https://jacobtomlinson.dev/effver/ +- [x] [name=hannah] [violinplot color parameters](https://github.com/matplotlib/matplotlib/pull/27304) +- [x] [name=hannah] [stream plot n_arrow](https://github.com/matplotlib/matplotlib/pull/27617) +- [ ] [name=greglucas] macos warning out of our control? ([27389](https://github.com/matplotlib/matplotlib/issues/27389)) +- [ ] start next weeks note -> date + field at end of meeting + +## 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 + +--- + +# January 25, 2024 + +_attending_: @rcomer, @ksunden, @qulogic, @tacaswell, @story645 + +### Old business +- [x] RSE reports +- [x] 3.9 progress report + +### New business +- [x] GSOC: numfocus deadline is Feb 5th + - [ ] https://github.com/numfocus/gsoc/tree/master/2024 + - [ ] https://summerofcode.withgoogle.com/programs/2024 +### Issues and PRs +- [x] [Make singular colorbars consistent with single-value mappables.](https://github.com/matplotlib/matplotlib/pull/26307) +- [x] [Add `U`, `V` and `C` setter to `Quiver`](https://github.com/matplotlib/matplotlib/pull/26410) - API question on setter for UVC/data/offsets +- [x] [Add widths, heights and angles setter to EllipseCollection](https://github.com/matplotlib/matplotlib/pull/26375) - getters? +- [ ] [Added optional props argument to Lasso Widget `__init__` to customize Lasso line](https://github.com/matplotlib/matplotlib/pull/26594) +- [ ] [Fix + +legend entries](https://github.com/matplotlib/matplotlib/pull/27568) +- [ ] [Fix behaviour of Figure.clear() for SubplotParams](https://github.com/matplotlib/matplotlib/pull/27183) +- [ ] [Allow linear scaling for marker sizes in scatter](https://github.com/matplotlib/matplotlib/pull/25259) + +## 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 diff --git a/meeting_notes/2024/2024_02_feb.md b/meeting_notes/2024/2024_02_feb.md new file mode 100644 index 0000000..7fc5cf1 --- /dev/null +++ b/meeting_notes/2024/2024_02_feb.md @@ -0,0 +1,307 @@ +# Matplotlib Weekly Meeting: February 2024 + +###### tags: `2024 dev call` + +--- + +# February 1, 2024 + +_attending_: +@tacaswell @ksunden @story645 @QuLogic + + +## Agenda + +### Old business + +- [x] final decision on GSOC +- [x] RSE reports +- [x] 3.9 progress reports + +### New business +- [x] [name=hannah] [using labels for "don't merge"](https://github.com/matplotlib/matplotlib/pull/27668) + +### Issues and PRs +- [ ] [name=QuLogic] [bump minimum NumPy requirement](https://github.com/matplotlib/matplotlib/pull/26800) (to next week) +- [x] [name=hannah] [user/project to project](https://github.com/matplotlib/matplotlib/pull/27560) +- [ ] [name=hannah] [usage content guide](https://github.com/matplotlib/matplotlib/pull/26389) (to next week) + + +## 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" + +--- + +# February 8, 2024 + +_attending_: @ksunden, @tacaswell, @efiring, @timhoffm, @IGuKs80UTJCig4yt6Zos7w (greglucas), @story645, @shriyakalakata, @QuLogic + + +## Agenda + +### Old business + +- [x] RSE reports +- [x] 3.9 progress reports + +### New business +- [x] [name=ksunden] Locking down/deleting the Github wiki +- [x] [name=greglucas] Scipy plans https://www.scipy2024.scipy.org/ + +### Issues and PRs +- [x] [name=QuLogic] [bump minimum NumPy requirement](https://github.com/matplotlib/matplotlib/pull/26800) +- [ ] [name=hannah] [using labels for "don't merge"](https://github.com/matplotlib/matplotlib/pull/27668) +- [ ] [name=hannah] [usage content guide](https://github.com/matplotlib/matplotlib/pull/26389) + - [rendered page](https://output.circle-artifacts.com/output/job/4770a68d-dcb5-446e-8ca5-b58000f4e974/artifacts/0/doc/build/html/devel/document_content.html) + + +## 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 + +--- + +# February 15, 2024 + +_attending_: @tacaswell, @ksunden, @story645, @timhoffm, @QuLogic + +## Agenda + +### Old business + +- [x] RSE reports +- [x] 3.9 progress +- [x] scipy tutorial planning + +### new business + + - [x] 3.7 and 3.8 micro release + +### PRs + - [ ] [name=hannah] [violinplot color API](https://github.com/matplotlib/matplotlib/pull/27304) + +## 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 + - https://github.com/matplotlib/interactive_tutorial exists and likly still works + - 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 + +--- + +# February 22, 2024 + +_attending_: @efiring, @ksunden, @QuLogic, @greglucas, @story645 + +## Agenda + +### Old business + +- [x] RSE reports +- [x] 3.9 progress +- [x] scipy tutorial planning + +### new business + +## notes + + + +### PRs +- [x] [name=hannah] [seperate edgecolor + hatchcolor](https://github.com/matplotlib/matplotlib/pull/26993) +## notes + +### RSE reports +- ksunden: macOS, data prototype, general issue & PR review +- qulogic: pr review, finished animation->vid in docs (needs sphinx gallery reviews) + +### separate edge + hatch + +- setting hatch.color to 'inherit' from edgecolor + - needs an API behavior note probably +- use facecolor tracking edgecolor as model +- on set alpha adjust hatch color? + - needs an API behavior note probably +- setting alpha after setting edgecolor will overwrite current, preserve with users hatchcolor +- Check for parallel behavior, if possible, between Patch and Collection. + +### side convo on hatch api +- figuring out which customizations to allow - color, density, etc + - https://github.com/leejjoon/mpl-pe-pattern-usgs + - https://github.com/leejjoon/mpl-pe-pattern-monster +- custom registry to allow strings but avoiding naming conflicts +- similar to MarkerStyle -> HatchStyle +- SDG scope/level project + +### pybind11 review +- can we go through w/ one proficient in pybind11 reviewer? + - can we just get through with "is this ported correctly?" +- benchmarking? + +--- + +# February 29, 2024 + +_attending_: @ksunden, @QuLogic, @tacaswell, @story645 + +## Agenda + +### old business +- [x] RSE reports +- [x] 3.9 progress + +### new business + +## Notes + +### RSE report +- Tom: swamped with other work +- Kyle: + - preparing for scipy submissions + - getting examples in data-prototype working again + - issue triage / PR review +- Elliott: + - on vacation + - made progress on pybind11 work, no PR yet + + +### 3.9 + +- Still looking on target for RC in March +- currently 73 open things in milestone + +### numpy 2.0 + +- things are going slowly +- do micro release when rc to drop upper pin diff --git a/meeting_notes/2024/2024_03_mar.md b/meeting_notes/2024/2024_03_mar.md new file mode 100644 index 0000000..90254e2 --- /dev/null +++ b/meeting_notes/2024/2024_03_mar.md @@ -0,0 +1,267 @@ +# Matplotlib Weekly Meeting: March 2024 + +###### tags: `2024 dev call` + +--- + +# March 7, 2024 + +_attending_: @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ (efiring), @rcomer, @ksunden, @story645, @QuLogic, @timhoffm + +## Agenda + +### old business +- [x] RSE +- [x] 3.9 + +### new business +- [x] [name=tacaswell] grant updates +- [x] [name=hannah] triage team + +### Issues and PRs + +## Notes + + +### RSE updates + +Kyle: + - putting is scipy talk propsoal (on dataproto type) + - data prototype work, thinking about Artist class tree + - QoL improvements in repo to make less verbose + - issue and PR review + - pushing on yet more mac OSX segfaults / objectiveC level exceptions + - new or pre-existing? Hard to go back to old versions of OSX so very hard to debug + - behavior is as documented, but did not notice this behavior before + - only see when running as a subprocess, test was marked xfail because flaky, lightly tested / under used feature (singleshot timers), test sometimes passes before object crashes + - subtle interaction with Python GC to produce an invalid pointer +Elliott: + - Catching up from forced vacation + - bit more pybind11 work (waiting for cgywin test to pass (just merged!)) + - started to work on performance benchmarks + - working on windows + arm box + +Tom: + - some issue review + scipy talk discussions + +### 3.9 updates + +- worked on clearing out milestone yesterday +- no major items that should get a madrush to get in +- RC in 2 weeks + - how does this interact with numpy 2.0 + - do not hold our RC for numpy beta + - do another RC as soon as they have an RC + - hold our 3.9 final for numpy2.0 rc +- david got new pydata sphinx theme working, please look at devdocs due to big changes in upstream themes + - use social to drive eyeballs at this + +### numpy 2.0 + +https://github.com/numpy/numpy/issues/25918#issuecomment-1980214917 + +- asking for sequence of: + - numpy beta + - mpl/scipy/... rc (of _something_) + - numpy rc + - mpl/scipy/... finals (of something) + +### grant updates + +### triage team + +SC needs to be prompt or delegate authority + +### repo to hold API automation from social + +- good idea, start in @story645 's account and migrate when working + + +### DST is coming + +Remember we follow the German schedule. + +### rgba nan handling + extra copies + +https://github.com/matplotlib/matplotlib/pull/27848 + + +Conclusion: only copy if we have to mutate the user input + +--- + +# March 14, 2024 + +_attending_: @tacaswell, @efiring, @timhoffm, @QuLogic, @ksunden, @rcomer, @story645, @artemkislovskiy + +## Agenda + +### old business + +- [x] RSE updates +- [ ] [name=hannah] steering council deadlines/turnaround + - discuss at end of call + +### new business +- [x] numpy 2.0 status +- [x] 3.8.4 release? +- [x] 3.9 status +- [x] [name=QuLogic] [Cursor coordinates on twinned Axes](https://github.com/matplotlib/matplotlib/pull/25556) +- [x] [name=QuLogic] [Avoiding levels in AutoDateLocator](https://github.com/matplotlib/matplotlib/issues/26363) +- [x] [name=QuLogic] [Decide what to do with `cycler` duplicates](https://github.com/matplotlib/matplotlib/issues/26868) +- [x] [name=QuLogic] [Return filename from save_figure](https://github.com/matplotlib/matplotlib/pull/27766) +- [x] [name=Hannah] [branch protection w/ labels](https://github.com/matplotlib/matplotlib/pull/27668) +- [x] [name=Tim] [Revert renaming labels to tick_labels in boxplot_stats()](https://github.com/matplotlib/matplotlib/pull/27916) + +## Notes + +### Intros + +### RSE updates + +- Elliott + - mostly getting ready for 3.9 + - macos M1 CI jobs (lots of low tolerance image failures) + - big triage push of 3.9 issues/PRs + - took out 1/3, lots of docs left so not blockers for branching + - pushed updates / rebases to existing PRs +- Kyle + - 3.9 wrap up work + - continuing work on data prototype work + - numpy 2.0 fallout + - mostly via pybind11, but may need to add a #define + - some waiting on dependencies + - in trianuglation and non-default contouring modes +- Tom + - 3.9 help + - issue/PR review + +### numpy 2.0 status + +- holding pattern for now + +### 3.8.4 release + +- main reason is for numpy +- waiting for pybind11 to sort some stuff out for 3.8.4rc + +### PR review + +- twinned axes cursors + - https://github.com/matplotlib/matplotlib/pull/25556 + - last discussed 8mo ago + - call likes the examples, will merge when test pass +- internals of autodatelocator logic + - issue is if one of the levels is empty skip + - API wise it makes sense to be able to skip levels + - take propsoed patch, look into fallout in this particualr case off call +- two cyclers + - we re-export `cycler` from `cycler` and we have a custom wrapper of `cycler` that does extra validation + - also have a PR that cleans up imports and removes aliases + - questions + 1. should we still have both? + 2. should we expose either + - we do not use `plt.cycler` internally + - is in a whats-new + - our trend is to simplify so don't import + - but pyplot should be mostly self-contained and a cycler is useful for setting rcparams + - set_propcycle will make the cycler for you + - on net, deprecate + - consensus + - deprecate, but be willing to back off if disruptive +- return value of toolbar.save_fig + - nice way to do this (matches most dialog implementations): + - `None` -> No file saved + - SENTENIL -> can't tell if a file was saved + - happy-path -> string to path + - implementation (backwards compatible paranoid safe) + - `None` -> don't know if a file was savef + - SENTINEL -> actively did not save + - happy-path -> string to path + - currently return `None` everywhere + - proposed implemenatio n + - one usecase + - https://github.com/kivy-garden/garden.matplotlib/blob/024d5c47f86577873de0939c169f369dd46ba595/backend_kivy.py#L939-L940\ + - consenus + - go with the "nice way" + - make sure API change note is clear that thrid-party backends will have to implement this + - open an issue with Kivy backend when merged + +- branch label rules + - consenus + - try it out + - previously talked about on call and we agreed to do it + - no user facing impact, low risk and we can always turn it off if we hate it +- bxp tick label revert + - https://github.com/matplotlib/matplotlib/pull/27916 + - the parameter name and then key in the returned dict no longer match + - attempt was made to replace dict with DataClass, but gets messy in this case + - propsoal: + - leave bxp_stats alone + - migrate to something more static in the future + - consenus + - go with this + - also change the docstring to be clearer what it is + +### SC timeline +- one week response window then ping once a week + +--- + +# March 21, 2024 + +_attending_: @efiring, @ksunden, @QuLogic, @trygvard, @story645 + +## Agenda + +### old business + +- [ ] RSE updates + +### new business + +- [ ] [name=timhoffm] https://github.com/matplotlib/matplotlib/pull/26307 + +## Notes + +### RSE +- qulogic: m1, pybind11, wrapping up 3.9, bouncing tasks to 3.10 +- ksunden: + - pybind11, numpy 2.0, m1 (ksunden has it locally), + - dataprototype - dijkstra's algorithm & visualizing graph +- 3.9 : beta/rc soft deadline is next week +- 3.8.4: numpy2.0 compliance, is on numpy timeline + +### singular colorbars +- milestoned to 3.9, needs a decision from @tacaswell and @timhoffm + +### multivariate colorbars +- gsoc proposal draft, scope of project & components + +### 3.9 followups +- follow up about sphinx-tags multiline + +--- + +# March 28, 2024 + +_attending_: @efiring, @ksunden, @story645, @trygvard, @QuLogic, + +## Agenda + +### old business + +- [X] RSE updates +- [x] [name=hannah] GSOC apps due April 2nd, 1800UTC (next Tuesday) + +### new business + +- [ ] [name=ksunden] Last item I'd like for 3.8.4 [#27955](https://github.com/matplotlib/matplotlib/pull/27955) + +## Notes + +### RSE +- qulogic: working on Mac bugs; other PR reviews to finish off 3.9 +- ksunden: also working on Mac bugs; tracking numpy 2; pybind11 fix for np2 released; all of blockers are gone for np2 micro-release; Ian released contourpy for np2; work on data prototype (lines, clipping, images); thinking about next NASA grant. + +### New business diff --git a/meeting_notes/2024/2024_04_apr.md b/meeting_notes/2024/2024_04_apr.md new file mode 100644 index 0000000..f0b36f6 --- /dev/null +++ b/meeting_notes/2024/2024_04_apr.md @@ -0,0 +1,222 @@ +# Matplotlib Weekly Meeting: April 2024 + +###### tags: `2024 dev call` + +--- + +# April 4, 2024 + +_attending_: @efiring, @ksunden, @tacaswell, @rcomer, @story645, @timhoffm, @QuLogic + +## Agenda +### Old business +- [x] RSE updates +- [x] GSOC / GSOD updates + +### New business + +- [x] 3.8.4 out! +- [x] 3.9.0 status? +- [x] NASA ROSES 2024 F7 +- [ ] Colorbar snapping https://github.com/matplotlib/matplotlib/pull/26307 + +## Notes + +### old +#### RSE updates + +Kyle: + - got 3.8.4 out + - general review + - data-prototype work + - thinking about next NASA grant + +Tom: + - NASA grant + - issue / bug review + +Elliott: + - prep for 3.9 + +#### GSOC / GSOD + - missed GSOD deadline + - GSOC + - have 6 propsoals, look good + - (not including detailed notes as these are public and do not want to break GSOC rules) + - need more mentors + +### new +#### 3.9.0rc status + - was waiting on 3.8.x mergeup + - should branch and tag today + +#### NASA funding +- trying to make formal friends +- looking for citations from all SMD +- looking for reviewers +- cartopy may also may be putting one in + +#### singular colorbars + - https://github.com/matplotlib/matplotlib/pull/26307#issuecomment-2038181561 + +--- + +# April 11, 2024 + +_attending_: @tacaswell @jklymak @pXw4hSgTQF2--OciPYwa1w @QWhXj01mSwmTjk5kN1H_qQ (Anntzer), @IGuKs80UTJCig4yt6Zos7w (Efiring) @ksunden @QWhXj01mSwmTjk5kN1H_qQ + +## Agenda + +### Old business +- [x] RSE updates +- [x] GSOC/GSOD + +### New business +- [x] [name=tacaswell] default to RGBA stage interpolation https://github.com/matplotlib/matplotlib/issues/21167 +- [ ] [name=saranti] [orientation parameter to violinplot](https://github.com/matplotlib/matplotlib/pull/27998) + +## Notes +### grant recap +### RSE updates + - Kyle + - data prototype + - clipping and images in new system + - some 3.9 + - GSOC + - Tom + - grant stuff + - review + +### GSOC updates + - reviews mostly done + +### RGBA interpolation +- should remove clipping anyway +- should look Antony's suggestion of how to filter AA's data to clean up "fuzz" on constant data +- look into making the deault interplotaion stage depend on ratio between data pixels and screen pixels +- conclusion: + - we will look at how to add an 'antialiased' interpolation stage + - use same criteria as current antilaised flip + - data space when upsampling + - RGBA spacing when down sampling + +--- + +# April 18, 2024 + +_attending_: @tacaswell @ksunden @QWhXj01mSwmTjk5kN1H_qQ (Efiring) @story645 + +## Agenda + +### Old business +- [ ] RSE + +### New Business +- [x] [name=hannah] noting meeting attendance +- [ ] [name=hannah] [dedup hatch validation](https://github.com/matplotlib/matplotlib/pull/28076) + +## Notes +### RSE + - Tom: + - grant work + - issues review + - Kyle + - little bit of issues review + - data prototype work + +### attendance +Please remember to take attendance at meetings + +### hatch validation +* https://github.com/matplotlib/matplotlib/pull/28076 + + +### Data prototype + +Just in time data + encoding and transform graph = visualizing large high dimensional multivariate datasets more consistently in less lines of code. + +just in time computation: +1. computational graph w/ delayed evaluation +2. querying and subsampling such that: + 1. computational datasets can be shown at various resolutions + 1. only subset needs to be loaded in memory/visualized + +dynamic encoding: +1. more consistent way to give mappings in multiple artists ([Hullman & Qu](https://ieeexplore.ieee.org/abstract/document/8017651/)) +2. treats the data fields more consistently with respect to encodings + +property syncing on artist: +1. artists can be reused +2. don't need to be manually updated individually + +why graph: +1. doing transformations, need to maintain/keep track of order for consistency +2. its inspectable in a way current isn't +3. can be broken down into smaller chunks, can add custom mapping +4. moves current implementation graph to data structure + +tradeoff: +1. lots of encodings across different axes and artists - easier to reuse/share be + * it's currently named different things in different artists + * attaching the encoding function/mapping/$\nu$ to the artist + * ex: color coding by category in line and scatter plot + +Draw time querying + reducing the amount of info artists need to know about themselves facilitates real time data and reusing parts of the visualization. + +--- + +# April 25, 2024 + +_attending_: @tacaswell @QWhXj01mSwmTjk5kN1H_qQ (Eric) @QuLogic @ksunden @story645 + +## Agenda +### Old Business +- [x] RSE updates +- [x] GSOC updates + +### New Business +- [x] NASA propsoal +- [x] 3.9 status +- [ ] 3.10 piorities + +## Notes +### RSE updates +- Kyle: + - data prototype work, pushing on interactivity and contains + - issue / PR work + - some 3.9 issues down stream w/ Elliott +- Elliott: + - catch up from vacation + - no 3.9rc reports + - do we know if it actually being tested? + - ran rebuild in fedora + - https://copr.fedorainfracloud.org/coprs/qulogic/mpl39/builds/ vs https://copr.fedorainfracloud.org/coprs/qulogic/mpl39.checker/builds/ + - only 10/130 new failures due to our RC + - use of mpl.cm.get_cmap which was removed + - use of plt.cm.get_cmap + - new warning in python-mne (on legend with no entry) + - mplcursors text changed, fixed upstream need a release + - animatplot-ng sees effects of 3D limits change + - may have broken pandas (preexisting unrelated failure on fedora, so did not test) + - seaborn looks good with 3.9! + - https://www.pepy.tech/projects/matplotlib?versions=3.8.4&versions=3.8.3&versions=3.8.2&versions=3.9.0rc2 +- Tom + - more progress on NASA grant + +### GSOC + +- have submited our ranking +- not heard anything back + +### NASA + - headline projects + - cartopy to new data/artist model + - work into how to integrate into existing structued data in that space + - go all-in on pyodide (https://github.com/matplotlib/matplotlib/issues/27870) + - https://github.com/pyodide/matplotlib-pyodide both agg and htmlCanvas backends exist + - partner with a NASA mission to wrap interesting data + - lots of maintence and support + + +### 3.10 priorities + - colormapping work diff --git a/meeting_notes/2024/2024_05_may.md b/meeting_notes/2024/2024_05_may.md new file mode 100644 index 0000000..bea4445 --- /dev/null +++ b/meeting_notes/2024/2024_05_may.md @@ -0,0 +1,265 @@ +# Matplotlib Weekly Meeting: May 2024 + +###### tags: `2024 dev call` + +--- + +# May 2, 2024 + +_attending_: @tacaswell @story645 Ian Thomas @ksunden @QuLogic + +## Agenda +### Old Business +- [x] RSE +- [x] 3.9 +- [ ] 3.10 + +### New Business + +## Notes +### old business +#### RSE + - Kyle + - writing new NASA grant work + - continuing interacitvity and contains in dataprototype + - GSOC has been annouced, got 1 slot, need to reach out to start work + - Elliott + - reviewing Ian's PR + - went through all the 3.9rc failures and opened issues or PRs for everything + - working on getting api changes / whats new rolled up + - do we want rc3? + - IPython is happy without one + - so no RC + - planning meeting for scientific python developers summit tomorrwo + - Tom + - some issue/PR review + - work on NASA grant. + +### New business + +#### anyone going to pycon +- Pavel (social media) and Chahak + +#### IPython integration + - almost done + - last thing for 3.9 final + +#### appveyor failures due to sphinx gallery +- due to upstream changes in sphinx/sphinx-gallery +- only see on appveyor because other CI systems do not install sphinx+sphinx-gallery + - install from conda environment file +- PR existing to fix it (#28103) + +--- + +# May 9, 2024 + +_attending_: @tacaswell, @greglucas, @QuLogic, @ksunden, @story645, @trygve + +## Agenda +### Old Business +- [x] RSE +- [x] 3.9 +- [ ] 3.10 + +### New Business +- [ ] [name=hannah][numfocus small dev grant](https://numfocus.typeform.com/to/mbtH7w) due May 31st + +## Notes +### old business + - Kyle + - planning meeting for developer summit + - meet with a NASA project on Monday + - working on data prototype + - helping with on 3.9 wrapup + - Elliott + - developer summit meeting + - array protocol, supply chain validation work + - 3.9 doc wrapup + - mpl-sphinx-theme tagging + - waiting for backports + - maybe bug with old (>1yr) IPythons + - tag today or tomorrow + - Tom + - mostly off + +### small development grants +- Hannah will talk to Jni about feasibility of visual search +- hatches +- RFB work +- pull small/medium projects from CZI grant + - saving alt text in image metadata + - needs a plan for figuring out how screen readers read images + - Elliot is drafting proposal + +--- + +# May 16, 2024 + +_attending_: @efiring, @QuLogic, @tacaswell, @ksunden, @story645 +## Agenda +### Old business +- [ ] RSE updates +- [x] GSOC update + +### new business + +- [x] 3.9 is out! +- [x] SDG followup + + +## Notes +### 3.9 + - we added an import that seems to break, but we think that is a local install issue. +- promote `:mpltype:` to be public (otherwise downstream packages that inherit our docstrings will break) + - what else do we need to make public? + - The set of thing that look like roles the show up in our source (generated via ``set($(ack ':[^:]*:`' -o -h --python).split())`` ) +``` +{'::`', + ':align:`', + ':alt:`', + ':attr:`', + ':caption:`', + ':class:`', + ':context:`', + ':data:`', + ':doc:`', + ':download:`', + ':envvar:`', + ':file:`', + ':format:`', + ':func:`', + ':height:`', + ':include-source:`', + ':math:`', + ':mathmpl:`', + ':meth:`', + ':mod:`', + ':mpltype:`', + ':nofigs:`', + ':program:`', + ':rc:`', + ':ref:`', + ':scale:`', + ':show-source-link:`', + ':sup:`', + ':target:`', + ':width:`'} +``` + +We think only rc, or mpltype need to be moved up. (@qulogic will do). + +## GSOC + +- Had kickoff meeting before start of main coding period (starts week after next) +- need plan for how to get in +- maybe do not do auto inference at all +- how to handle complex data? +- sequencing + - first PR: 1 norm, 1 colormap + - follow on PR: additional colormaps + - follow on PR: complex support + - follow on PR: add more norms + - follow on PR: how to combine VectorMappable and ScalarMappable? +- open questions + - don't have "over" and "under" but still need "in bounds" vs "bad" + - to handle out of bounds: + - fixed color + - pick "closest" point and use that + - cartesian or polar coordinates in color space? + - how to handle categorical + - legend/colorbar + + +## SDG + +- still being drafted +- focus on accessibility + - embedding alt text into output meta-data (as discussed last week) + - font overhaul work + + +## RSE update + - Tom + - grant work + avoiding grantwork by doing issue review + - Kyle + - some grant work, data prototype stuff + - Elliott + - Jury duty selectiono + - 3.9 release + +--- + +# May 23, 2024 + +_attending_: @efiring, @ksunden @tacaswell @story645 @QuLogic + +## Agenda +### Old business +- [x] RSE updates +- [ ] SDG state +- [ ] ROSES state + +### New business +- [ ] 3.9 release fallout? + + +## Notes +### RSE updates + - Tom + - avoid writing grants by responding to issues on GH + - Kyle + - also working on grant + - issues on github + +--- + +# May 30, 2024 + +_attending_: @efiring, @oceanwolf @QuLogic @tacaswell @story645 @IGuKs80UTJCig4yt6Zos7w (gregluca) @rcomer @ksunden + +## Agenda +### Old business +- [x] RSE +- [x] GSOC +- [x] SDG - due tomorrow 31st + +### New Business +### Issues & PRs +- [ ] [name=hannah][homepage translation](https://github.com/matplotlib/mpl-brochure-site/issues/93) + +## Notes +### RSE +- Elliott + - SDG writing + - reveiwing stalled new contributor PRs + - finish some high-dpi fixes for cairo +- Kyle + - thinking about grant stuff + - some review + - GSOC has started +- Tom + - grant stuff + - some issue review + - work on grant reports + +### GSOC +- breaking up current big PR into smaller chunks +- looking at git + rebasing tools to help with breaking up into parts + +### SDG + - has draft + - adobe is adding support to add alttext to images + - do what they do! + - discussion of details of raqm / freetype interaction + +### issues / PR + - translating the brochure page + - questions about how the tooling works + - how do the translations get maintained going forward? + - what is exit strategy? + - is this actually of value to anyone? + - @story645 will take point on sorting it out + +### CF +- work still needs to be done for 3.9 diff --git a/meeting_notes/2024/2024_06_jun.md b/meeting_notes/2024/2024_06_jun.md new file mode 100644 index 0000000..5ceb008 --- /dev/null +++ b/meeting_notes/2024/2024_06_jun.md @@ -0,0 +1,163 @@ +# Matplotlib Weekly Meeting: June 2024 + +###### tags: `2024 dev call` + +--- + +# June 6, 2024 + +**CANCELED** + +--- + +# June 13, 2024 + +_attending_: + +## Agenda + +### Old business +- [x] RSE +- [x] GSOC +- [x] SDG +- [ ][name=hannah][homepage translation](https://github.com/matplotlib/mpl-brochure-site/issues/93) + - do we want to instead pilot the tooling on cheatsheets cause [demand](https://github.com/matplotlib/cheatsheets/pull/132) + +### new business + - [x] report from dev summit + - [ ] plan for 3.9.1 + + +## Notes + +### dev summit + +- about 40 people in Seattle +- lots of discussion about SPECs + - https://scientific-python.org/specs/ + - endorsed the two we already do (timeline + uploading nightly wheels) + - supply-chain related work relevant for us + - other are not relevant +- talked with Thomas Fan about WASM builds + - pyodide has updated build system so that projects can build + - have it working again, but font loading is broken + - our optimaztion settings make debugging hard (no symbols names) + - cibuldwheel can build wasm "wheels" without patches (but does not work) + - may need to be aware of filesystem sandbox + +### RSE + - SDG went + - data prototype + +### GSOC + - have a plan for how to organize PR in to work + - ongoing discussions of code organizations + +### 3.9.1 + - a TK bug which has been fixed + - sticky edges on bar bug (PR soon) + - add back cm.get_cmap + - some users did not see warning + - Tim has a PR to put it back + - Greg and Tom say to put back temporarily + - question about why users didn't see + - Tom: is this due to the warning class we use that users never saw it + - Greg: is this users jumping a bunch of versions + - other color related questions (behavior of color maps with int intputs) https://github.com/matplotlib/matplotlib/issues/28198 + - should we also add `lut=` to the mapping registry version? + +--- + +# June 20, 2024 + +_attending_: @trygve, @QuLogic, @ksunden, @story645 + +### Old business + +- [ ] RSE +- [x] GSOC + +## Notes + +### GSOC +- can add testing by introducing colorbar/norm first +- package $n \times m \times l$ array as a $n\times m$ array with dtype tuple of length l + - pro: reduces input to 2D arrays for purpose of manipulation + - con: may require extra copies + - check: how data space interpolation is handled + +### translation: +#### cheatsheets: +- translating in a way where layout is respected +- how do I? construction not universal +- possibly examples or plot type gallery instead (for tooling) + +#### brochure: +- refactor into translation friendly version + +#### contribute: +- maybe write a short version: https://numpy.org/contribute/ + +### brochure site +- news section: revive https://github.com/matplotlib/mpl-brochure-site/pull/17 + - only show entries w/ a publish tag? + - do we want to keep discourse? + +--- + +# June 27, 2024 + +_attending_: @efiring, @tacaswell, @ksunden, @story645, @QuLogic + +## Agenda +### Old business +- [x] RSE +- [x] GSOC + - Colormaps: https://github.com/matplotlib/matplotlib/pull/28454 + - VectorMappable: https://github.com/matplotlib/matplotlib/pull/28428 +### New business +- [x] 3.9.1 schedule +- [ ] 3.10 priorities + +## Notes +### GSOC +- PRs have been opened + - discusions about the API + - do we want to keep `ScalarMappable` around as anything other than a back-compat shim? + - keeping vector and scalar versions independent leads to duplicated / parallel classes (like old Qt4/Qt5 classes) + - some things that are currently ScalarMappable do not have sensible VectorMappable counter parts (e.g. contour) +- Try to get 's review of VectorMappable, otherwise normal PR rules + +### RSE +- Kyle: + - data prototype stuff, mostly fixed the units example + - GSOC work + - PR review +- Elliott: + - mostly 3.9.1 things + - moved some things from 3.9.2 to 3.9-doc + - review 3.9.1 PRs, looking at axvspan autolimit regression + - looked at CF build issues +- Tom + - on vacation last week, catching up this week + - some review, need to finish writing a grant report + +### 3.10 + +- target early October 24 +- goals + - GSOC work landing (Kyle and Hannah) + - image testing framework overhaul (Tom) + - work on mplgui (Tom) + - jupyter rfb backend landed (Elliott) + - Elliott has a list of PRs + - https://github.com/matplotlib/matplotlib/pull/23056 + - https://github.com/matplotlib/matplotlib/pull/23085 + - https://github.com/matplotlib/matplotlib/pull/24554 + - https://github.com/matplotlib/matplotlib/pull/24626 + - https://github.com/matplotlib/matplotlib/pull/24744 + - + + +### 3.9.1 target +- tomorrow (June 28) target date diff --git a/meeting_notes/2024/2024_07_jul.md b/meeting_notes/2024/2024_07_jul.md new file mode 100644 index 0000000..c0038a8 --- /dev/null +++ b/meeting_notes/2024/2024_07_jul.md @@ -0,0 +1,96 @@ +# Matplotlib Weekly Meeting: July 2024 + +###### tags: `2024 dev call` + +--- + +# July 18, 2024 + +_attending_: @efiring, @ksunden, @QuLogic, @trygvrad, @story645, @rcomer + + +## Agenda +### old business +- [x] RSE +- [x] GSOC + +### New business +- [ ] scipy + +### Issues +- [ ] [mpl-playback](https://github.com/matplotlib/matplotlib/pull/23441#issuecomment-2233128336) + +## Notes +### GSOC +- is at 2/4 PRs for mvp + - [colormaps](https://github.com/matplotlib/matplotlib/pull/28454) + - [vectormappable](https://github.com/matplotlib/matplotlib/pull/28428) + - next: imshow w/ examples +- if `NormAndColor` mappable encapsulating color goes in (waiting on chat w/ @timhoffm) then can potentially hook in data and rgb interpolations + - find better names + +### Scipy + +--- + +# July 25, 2024 + +_attending_: @trygve @efiring @ksunden @story645 @tacaswell, @QuLogic + +## Agenda +### Old business +- [x] RSE +- [x] GSOC + +### New business + +### Issues + +## Notes + +### GSOC + - waiting on review + - https://github.com/matplotlib/matplotlib/pull/28428 +- second PR, introduces VectorMappable to replace ScalarMappbale +- suggestion to have a higher-level wrapper that holds both the mappable and the colormap so that we can do coordinated updates + - also gives an escape hatch to do direct data -> color (without being forced through our norm concept) +- if we are going to go this route, doing it now seems good + - conflicts between availabilty vs GSOC timeline +- needs to do some review + + +### RSE +- Caswell + - starting to do review again +- Kyle + - start of text in the new system + - text has a lot of options, most are missing + - starting to think about documentation + - reviews +- Elliott + - working through open PRs + - 3.13 wheel PR is mostly ready + - working on Agg pybind11 + - reviews + +### SDG + CZI + - got it, will start work soon + - given no-cost extension from CZI + +### mplplaybook + +- down to adding 4 minutes to docs build +- [mpl-playback](https://github.com/matplotlib/matplotlib/pull/23441#issuecomment-2233128336) +- needs to not add to much time (less than 10 minutes) + - docs CI should not become the bottle neck +- needs to not add too much weight to output +- should hook into the "release mode" machinery +- hold off on waiting for SG to release with their fix + +### doc building + - discussion of why we build docs with the oldest version of Python we support + - will move to newest and see if we get speed ups + +### tag protection rules + - restirct push tags to (to-be-created release manager team) + - have already added a manual review step before wheels are uploaded to pypi diff --git a/meeting_notes/2024/2024_08_aug.md b/meeting_notes/2024/2024_08_aug.md new file mode 100644 index 0000000..7d99251 --- /dev/null +++ b/meeting_notes/2024/2024_08_aug.md @@ -0,0 +1,281 @@ +# Matplotlib Weekly Meeting: August 2024 + +###### tags: `2024 dev call` + +--- + +# August 1, 2024 + +_attending_: @efiring, @tacaswell, @ksunden, @QuLogic, @trygve, @timhoffm, @ianthomas23, @story645 + +## Agenda +### Old business +- [ ] RSE +- [ ] GSOC + - [ ] [data->color pipeline](https://github.com/matplotlib/matplotlib/pull/28428) changes/rearch +### New business + - [ ] windows 3.9.1 + nightly wheels broken https://github.com/matplotlib/matplotlib/issues/28551 + - [ ] +## Notes + +### Windows 3.9.1 + nightly (contourpy) +- try windows 3.9.0 w/ nightly wheels + +### GSOC: colormapping pipeline +- proposal is transition from $scalermappable: norm \circ cmap \circ data$ model to $mappable : data -> color$ model +- questions on how do we roll this out: + - vector_* methods: changes are mostly at the backing artist layer (AxesImage, PatchCollection, etc...) so would require writing/maintaining shadow API of Axes.* methods and scalarmappable aware artists + - putting in a scalarmappable shim so that layer of public API is still available + - pulling out an initial interface layer PR w/ minimal implementation + shims + - POC that shows that the new pipeline slots into the existing workflow cleanly + - shepherded by @tacaswell and @timhoffm + - fold in colorbar in a later PR +- colorbar pointing to artist? [adding cbar to ScalerMappable](https://github.com/matplotlib/matplotlib/issues/25880) + +--- + +# August 8, 2024 + +_attending_: @IGuKs80UTJCig4yt6Zos7w (greglucas), @story645, @tacaswell, @ksunden, @QuLogic, @QWhXj01mSwmTjk5kN1H_qQ(efiring), @trygvrad + +## Agenda +### Old business +- [ ] RSE +- [ ] GSOC + - ScalarMappable|shim|Colorizer boundaries/ seperation of concerns + +### New business +- [name=story645] docs meeting: + - access to analytics + - new user survey +- windows wheel issue +- +### Pull requests: +- [Build for musllinux on ARM](https://github.com/matplotlib/matplotlib/pull/28592) - feedback requested (@oscargus: I know that we may not want to build for every combination of platforms, but not how it is determined. Also, currently it takes 97 minutes. If I join the call, will try to remember that, I can provide feedback. If not, I'd appreciate if someone can.) + +## Notes + +### Windows wheel issue +- think we understand the issue and have a draft PR to fix it +- think we understand: + - GHA runners have a bunch of different dlls + - the one that came up first in the PATH found the wrong dll + - by specifying a path to delvewheel we should be able to fix it +- bad timing on a devlewheel problem where things changed between when we tested and when we released + - delevwheel did a release between .post0 and .post1 +- Ian has a draft PR in that needs to be tested +- Reached out to Steve Dower + - reccomended that we statically link msvc40.dll + - should only be done for wheels (not CF) +- may be wider issue as and it may come back later in other places, may want a shared wheel for this dll? +- issue with not finding dll + - one way to fix is set `--vsenv` but it assumes that msvc is installed and what you want to use + - meson tries to find any complier, falls back to looking for msvc (which is how it works for most dev machines) + - if something happens to be on the path, meson uses that BUT those dlls are not on path at run time + +TODO: + - get static linking set up on CI + - get those wheels tested + - do 3.9.2 or 3.9.1.post2 + - enable py3.13 if 3.9.2 route, not if 3.9.1.post2 release + - target close of business Friday + +### musl arm +- OP followed up +- Kyle posted summary, inculding asking for volunteer + - OP agreed to take role + - please add comment to yaml +- delaying speed up until follow up PR + - if it is a problem, we can evaluate how to fix it +- do we want to pay for native arm? + - currently no, but maybe if we find a sponsor for it + +### GSOC/colorizer + +- has implemented new colorizer class +- need to agree on some names +- need typing +- need tests for new functionality +- put new class in new file +- do we want to move norms to `norms.py` + - pro: better names + - con: either deal with deprecation dance (and cost to other) or accept it lives in 2 places (forever?) + - consenus is to do the move and keep the forwarding forever, but we need to get buy-in from Tim + - de-document, do not type hint, maybe drop from `__all__` + - [EDIT]: An issue has been opened here https://github.com/matplotlib/matplotlib/issues/28690 + +color +- put property forwarders on ColorizingArtist + +colorizingartist + forwarding functions class (scalarmappbleshim?colorizershim/interface) + +moving norm and cmap attributes from an artist to a colorizer +- if you set a norm/cmap on artist, then sets it on colorizer + - when we deprecate scalarmappble, + - will either remove the ability to set or +- silently overwrite setting properties -> only happens if you explicitly opt into colorizer + +-> set_norm: add *arg* for new colorizer, or use `set_colorizer` + +--- + +# August 15, 2024 + +_attending_: @efiring, @ksunden, @QuLogic, @story645, @trygvrad, @tgmiller5 + +### Old business +- [ ] RSE +- [ ] GSOC: deadline is aug 26th, is waiting on + - [ ] new pipeline: https://github.com/matplotlib/matplotlib/pull/28658 + - [ ] colormaps: https://github.com/matplotlib/matplotlib/pull/28454 + +### New business +- [x] [name=story645] docs meeting: + - [access to analytics](https://github.com/matplotlib/matplotlib/issues/28696) + - new user survey ran by Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) +- [x] NF Project summit + - Cambridge Mass, Sep 5-7 +- [x] Small dev grant CFP - due Sep 30, 2024 + - possibly survey + doc reorg + +### Pull requests + +## Notes + +### user surve + analytics +- [x] follow-up email sent to steering council + +### GSOC +- multivariate/bivariate needs approval +- pipeline: address reviews then changes +- potential tracking issue for rest of transition + +### RSE +- fixing CI + getting 3.9.2 + pybind + +--- + +# August 22, 2024 + +_attending_: @greglucas, @efiring, @ksunden, @QuLogic, @story645, @trygvrad, @tacaswell, @litchi + +### Old business +- [x] RSE +- [x] GSOC: deadline is aug 26th, is waiting on + - [x] new pipeline: https://github.com/matplotlib/matplotlib/pull/28658 + - [x] colormaps: https://github.com/matplotlib/matplotlib/pull/28454 +- [x] [name=story645] docs: + - [access to analytics](https://github.com/matplotlib/matplotlib/issues/28696) + - new user survey ran by Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) +- [x] NF Project summit + - Cambridge Mass, Sep 5-7 +- [x] Small dev grant CFP - due Sep 30, 2024 + - possibly survey + doc reorg + +### New business + +- [name=story645][seperate hatch and egde color](https://github.com/matplotlib/matplotlib/pull/28104) +- [name=QuLogic] home page translations: [reST-ification](https://github.com/matplotlib/mpl-brochure-site/pull/96), [enable sphinx-intl](https://github.com/matplotlib/mpl-brochure-site/pull/97) +- [name=QuLogic] asyncio-based backends [PyGObject MR](https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/189) + +## Notes +### GSOC +#### dev docs not building/updating +- known bug with a unit example +- quick fix is to ban numpy2.1.0 + +#### new pipeline + - has PR to @trygve's branch to adjust inheretance so to avoid breaking user code + - will merge + add some more comment + - when ScalarMappable is removed, methods can move down to `ColorizingArtist` + +#### color map PR + +#### Current state of things + + - https://trygvrad.github.io/gsoc-2024-bivariate-colormaps-summary/ + - need first 2 steps are there PRs, need 3 more to get everything landed + +### RSE updates + - kyle: data prototype stuff + - working on patches + - looking at numpy problems with docs build + - gsoc + - Elliott: + - pybind11 work + - working on ft2font + - work on brochure site + - Tom: + - mostly review + - trying to test with cp313t + - the borrowed c++ refs may go away with pybind11 + - dragons may be in macos backend + ### analytics + - now public + +### survey + +- need to see the questions + pre-design of analysis before it goes out + +### summit +sending and + + +- question about GDPR + discourse + - can we move our users + history to another instance +- status of NF CoC for projects + +### small development grant +- not this cycle + +### hatchcolor/edgecolor +- hatchcolor + pcolor needs to be optional +- need to make backends forgiving for backends that don't implement hatch + +--- + +# August 29, 2024 + +_attending_ : @greglucas, @efiring, @ksunden, @QuLogic, @story645, + +## Agenda + +### Old business +- [x] RSE +- [x] GSOC + - [x] how to manage documentation of colorizer + +### New business +- [x] link exceptions in docs +- [x] [fig.annotate](https://github.com/matplotlib/matplotlib/pull/28753) + +## Notes +### RSE + - Kyle + - some time on getting NF summit travel sorted + - wrapped up GSOC evalution + - working on data prototype `Patches` + - PR review +- Tom + - Review + - fixing the docs on the colorizer PR +- Elliott + - mostly ft2font, many test cases + - found a few bugs + - useful to validate the planned pybind11 work + - paper work for SDG, plan to start work next week + + +### GSOC + - is over. final report: https://trygvrad.github.io/gsoc-2024-bivariate-colormaps-summary/ + - some was merged, not everything we planned + - we drove a change-of-scope that changed goals + - potentially fix docs w/ a script (called from conf.py) that writes out the .rst from *_scalarmappable* and is then included in write place via .. include:: + +### doc links: +- have sphinx document private methods by default -> sphinx allows manual over ride + - make these public abstract methods +- to handle methods on subclasses + - https://github.com/sphinx-doc/sphinx/issues/11434 +- can curate which methods are included/excluded by excluding specifc parent classes +- with collection: document private with sizes for now diff --git a/meeting_notes/2024/2024_09_sep.md b/meeting_notes/2024/2024_09_sep.md new file mode 100644 index 0000000..851b077 --- /dev/null +++ b/meeting_notes/2024/2024_09_sep.md @@ -0,0 +1,235 @@ +# Matplotlib Weekly Meeting: September 2024 + +###### tags: `2024 dev call` + +--- + +# September 5, 2024 + +_attending_ : @efiring, @story645, @QuLogic +## Agenda + +### Old business +- [ ] RSE + + +## Notes +### RSE +- Kyle @ summit +- Elliot still needs SDG paperwork, has been working primarily on FT2Font work +- Question about license in [font test](https://matplotlib.org/devdocs/project/license.html#fonts) + -no specific license file for Dejavu +### pydata nyc +- finish out tagging PRs bf sprints + - https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+label%3A%22Documentation%3A+tags%22 + +--- + +# September 12, 2024 + +## Agenda + +_attending_ : @tacaswell @timhoffm @story645 @IGuKs80UTJCig4yt6Zos7w (greglucas) @ksunden @trygve @QWhXj01mSwmTjk5kN1H_qQ (efiring) @rcomer + +### old business +- [x] RSE +- [x] [name=@story645]user survey - do we have an mpl google account for forms? + - who should own it? + - [very rough draft of questions](https://hackmd.io/3xLJ88NhQrG_BOXrWKGp1Q#List-of-questions-and-available-responses) + +### New business +- [x] [name=@greglucas] NumFOCUS Summit updates + - [ ] NetworkX requests + - Bezier path improvements and distance along curve + - Arrow to the edge of a marker (Greg: Is there a way to update this with the transform stack and `get_tightbbox()`? I'd be worried about interactively moving a marker and getting the arrow to follow) +- [x] [name=@greglucas] Squash merging rather than asking new contributors to squash themselves +- [x] pybind11 updates +- [ ] mpl 3.10 updates + - https://hackmd.io/l9vkn_T4RSmk147H_ZPPBA?both#310 + - PR for [grouped bar charts](https://github.com/matplotlib/matplotlib/pull/28560) [Tim] -> API feedback welcome +- [ ] arrows are hard +- [x] opt into NF CoC scheme + +## Notes +### NF summit + - news: Leah is stepping down + - discussions about + - web assembly + - SDG program + - NF "developer-in-residince" to spread across projects + - SPEC process + - updates for Python freethreading + - lots openMP thread + - https://github.com/numfocus/project-summit-2024-unconference/issues for more details + - CoC updates + - Opt-in for current projects + - Opt-out for new projects coming in + - NumFOCUS Code of Conduct Working Group (coming soon) + - Code of Conduct Event Response Teams (organizers create for a particular event) + - coming soon +- cross-project development + - discussion with networkX + - revival of some old PRs from Bruno about Bezier curves + - enhancements around pointing arrows to edges of other paths + - (discussion of arrows and why they are) + +### CoC opt-in + +- high level discussion sound good +- early drafts had same pro/con as our current process +- Caswell in in favor to get benifit of a bigger pool +- wait for actual details before committing + +### RSE updates + - Kyle + - summit most of last week + - data prototype work on patches + - issue / PR review + - Elliott + - mostly pybind11 work + - rebased ttfconf PR that switches to using fonttools + - also fixes a bug we only just discovered with font subsetting + - Tom + - project management + - little bit of review + +### user survey +- please contact NF for getting access to a form +- there exists a rough draft of questions + - justification of questions still in process +- aiming for early to mid fall to be ready + +### squash merge +- do we want to just squash-merge? +- vote to (socially) prefer squash merge + +### pybind11 +- just needs review effort +- still left after these: + - macosx (not c++ so leave) + - some internal stuff that is waiting on these PRs + +### mpl 3.10 + +- can we just cut from main now? + - colorbar stuff + - colorizer can be merged + - what is left on colorizer? + - currently doing last round of review + - @timhoffm hoffm should take another look + - consider if there is a better way to fix `isinstance` +- have a proposal for group bar charts from @timhoffm + - everything is marked as provisional [#28560](https://github.com/matplotlib/matplotlib/pull/28560) +- @ksunden will be release manager, we need to update the goverance docs + - updated docs: https://github.com/matplotlib/governance/pull/41 +- pybind11 in for 3.10 (yes) +- freethreading? + - qhull is probably ok + - contourpy claims in is safe + - kiwi is a question + - freetype in theoritically safe + - ft2font has no locks + - agg may lock the font cache + - plan + - build 313t wheels + - option 1: do not mark as safe + - document that we need users to test with the force free-thread env + - this may be closer to what CPython does + - option 2: mark as safe + - numpy has marked them selves safe + - using a freethreading build is opting into segfaults + - fliping on/off in a mirco seems ok + +--- + +# September 19, 2024 + +## Agenda +_attending_: @tacaswell, @ksunden, @QuLogic, @efiring, @story645 + +### old business +- [x] RSE + +### new business +- [ ] [name=@story645] github teams for non-code work: + - survey: Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) + - survey repository (also backup old survey here) + - social: Pawel (@pawjast) -> social media projects board +- [ ] 3.10 status / burndown +- [x] [name=greglucas] Potential funding through OpenTeams [REPOS project](https://www.openteams.com/introducing-repos-platform-for-sustainable-open-source-funding/) + - Propose bugs to squash or improvements to make and companies can pay developers to work on those specific items because it may be blocking them + +### issues and PRs + +## Notes +### RSE updates + - Tom + - issue triage and review + - meeting with Kyle/Elliott + - Kyle + - issue / PR triage + - aiming for 3.10 rc next week + - implementing a setter for converters on `axis` objects for 3.10 + - data prototype work + - Elliott + - triage work + - pybind11 and ft2font work + - close to PR to remove our numpy wrapper (and only use pybind11's) + - working on sizing polar plots correctly + +### REPOS project + +- we propose specific projects with budgets +- companies fund said projects +- run through openteams +- follow up again when Greg is on the call + +#### github teams/ recognition of non-code contributions +- create a repo for the survey +- add teams for survey and social media +- Numpy web page "teams" example https://numpy.org/teams/ (generated from Github teams) + +--- + +# September 26, 2024 + +_attending_: @ksunden, @QuLogic, @efiring, @story645, @timhoffm + +## Agenda +### old buisness +- [ ] RSE + +### new business +- [x] [name=hannah] hacktoberfest? + +## Notes + +### hacktoberfest +- Evaluation is neutral; hard to evaluate long-term value. There is some willingness, but no enthusiasm. + - we're too under-resourced at the moment +- take out topic +- they can request a `hacktoberfest-accepeted` tag + +### [removal of `cbook.Stack`](https://github.com/matplotlib/matplotlib/pull/28874) +- this was deprecated in 3.8, and the linked PR removes it for 3.10 +- however, there exists a usage of it in the type stubs for `lib/matplotlib/backend_tools.pyi:ToolViewsPositions` (but is not otherwise documented) +- for now, we will fix mypy by keeping the private `cbook._Stack` in the type stubs +- can open a followup issue or PR to deprecate the `ToolViewsPositions` internals if wanted + +### [fixed aspect overwrites explicitly set data limits](https://github.com/matplotlib/matplotlib/pull/28683) +- accept the pr + +### [fontproperities init](https://github.com/matplotlib/matplotlib/pull/28843) +- distinguishing if string is family or pattern +- alternative proposal/concern is that someone may have passed in a pattern as a family kwarg arg - undocumented but supported use case + - we can let that work for the time being and worry about it later + - can't warn b/c of lack of distinction between names and patterns + - we can check if a string is a pattern b.c we can run it through the machine + - can't determine if it's a family name + - we want to ask `not family` but we can't get the full set of families +- merged +- follow up: either leave it or figure out pattern|family or restrict names + +### 3.10 queue +- colorizer +- pybind11 diff --git a/meeting_notes/2024/2024_10_oct.md b/meeting_notes/2024/2024_10_oct.md new file mode 100644 index 0000000..38fdc56 --- /dev/null +++ b/meeting_notes/2024/2024_10_oct.md @@ -0,0 +1,221 @@ +# Matplotlib Weekly Meeting: October 2024 + +###### tags: `2024 dev call` + +--- + +# October 3, 2024 + +_attending_: @ksunden, @QuLogic, @efiring + +Informal meeting with some discussion of PRs for 3.10. + +3-D rotation PR: needs a decision, or delay to 3.11. + +3.8 deprecation removals + +https://github.com/matplotlib/matplotlib/pull/28658: Tim? + +--- + +# October 10, 2024 + +_attending_:@efiring, @ksunden, @QuLogic, @greglucas, @tacaswell, @story645 + +## agenda +### old business +- [ ] RSE +- [ ] [name=hannah][NumFocus CoC](https://numfocus.org/2025-code-of-conduct) + + +## Notes + +### COC +- NF has released text, discuss in 3 weeks + +### 3.10 +- 3D PR is almost done +- push hatch/edge color API cleanup to 3.11 +- go ahead with colorizer PR +- ttconv pr + - https://github.com/matplotlib/matplotlib/pull/20866 + - https://github.com/matplotlib/matplotlib/pull/28784 for example of type42 +- long discussion of thread/freethreading + +### RSE update +- Elliott: + - progress on website redirects + - now have proper 301 redirects instead of symlinks + - https://github.com/matplotlib/matplotlib.org/pull/41 + - running on https://pluto.matplotlib.org + - yesterday looked like we were getting hammered by AI bot + - turned on cloudflare cdn for discourse + - followed guide on how to do this, but report issues + - enable bot-protection on CF, this broke inventory downloading for inter-sphinx, turned off + +--- + +# October 17, 2024 + +_attending_:@efiring, @ksunden, @QuLogic, + + +## agenda +### old business +- [ ] RSE + +## Notes + +### 3.10 + +- MacOS CI problem solved, but needs a backport. +- Color pipeline: needs another rebase (Kyle). +- Nothing else is blocking; a few more might get in. +- goal: branch tomorrow or Monday +- merge reference cycle fix? https://github.com/matplotlib/matplotlib/pull/28861 + +### 3.9.3 +- worth doing +- some backports +- https://github.com/matplotlib/matplotlib/pull/28981 + +--- + +# October 24, 2024 + +## Agenda + +### Old business +- [x] RSE updates +- [ ] 3.10 progress +### New business + +- [x] ROSES 2024 + - https://www.nasa.gov/news-release/nasa-funds-open-source-software-underpinning-scientific-innovation/ We were selected for a 5 year grant to support mpl + cartopy + +## notes + +### RSE updates +- Tom + - behind the scenes paperwork for NASA grant + - some review +- Kyle: + - macos input hook issues + - 3.10 work +- Elliott + - 3.10 things + - finished polar work (needs to be commited and PRd) + - looking at transparent animation + - ham-fisted compositing to white not great (Caswell added that) + - adding cut-out for more formats that support it + - need website reviewed to turn of pluto + - Done! + +### 3.10 + +--- + +# October 31, 2024 + +_attending_: @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ, @QuLogic ,@ksunden, @story645 , @timhoffm +## Agenda +### Old business + - [x] RSE updates + - [x] 3.10 status update +### New business + - [x] NF CoC + + +## Notes +### CoC + +#### Conetxt + +Email from NF + +> Dear Projects, +> +> +> +>We are happy to announce that the NumFOCUS Board of Directors approved the new NumFOCUS Code of Conduct on Sept. 4, 2024. Before the Code of Conduct can be implemented, the NumFOCUS Code of Conduct Working Group must be established and receive training. We plan to complete this process by the end of January 2025. +> +> +> +>Current: NumFOCUS Sponsored and Affiliated projects can opt-in to use the new Code of Conduct. Starting Feb. 1, 2025, all new NumFOCUS projects will be asked to opt-out of using the NumFOCUS CoC. NumFOCUS events, including PyData, will continue under the NumFOCUS Code of Conduct in place. +> +> +> +>NumFOCUS Code of Conduct Working Group Election +> +>We are looking for individuals willing to serve in the Working Group that will be tasked with reviewing, investigating, responding to, and advising on potential conduct violations and advising a broad NumFOCUS ecosystem member on the NumFOCUS Code of Conduct. The term is one year. Please find more information, as well as the nomination form, in this blog post. +> +> +> +>Your Decision Process +> +>For your project currently with NumFOCUS, the new CoC is opt-in. To support your project in making an informed decision, as well as help in the potential implementation, we are planning the following actions: +> +> 1. Jan. 2025: Walk-through video + email + meetings for the Projects and PyData chapters +> 2. Feb. 2025: Current Projects’ decisions to opt-in are captured via a Typeform submission +> 3. Mar. 2025: Meeting with Project adopters to provide materials: +> - Welcome pack: +> - pre-drafted text that you can put on your website / GitHub README file +> - a link to our CoC information, which will include the reporting button +infographic of the reporting procedures +> - Education: +> - online materials covering CoC-related best practice +> +> +>Please let us know if you have any questions. Feel free to contact Kamila Stepniowska (Project DEI Lead) by email (kamila@numfocus.org) or via Slack. +> +> +> +>Thank you, +> +>Arliss + +NF CoC: https://numfocus.org/2025-code-of-conduct +Our current CoC: https://matplotlib.org/stable/project/code_of_conduct.html + +Currently we use Contributor Covenent 2.0 verbatim, NF CoC is new text synthesised from a number of existing CoC including Contributor Covenent 1.4 + +Looks like we can not make a decision until Feb 25 and there will be more information / materials available to us in Jan 25 + +#### Discussion + +Consensus is we are still interested. + +### RSE updates + - Kyle + - work on 3.10 + - rc1 TODAY + - Elliott + - sick this week + - got thourgh animation work + - all codecs could find work + - polar PR position in layouts + - starting to look at alt-text + - CI audit + - mostly done, still in progress sorting out where we skip which tests + - mostly GUI toolkits + - appveyor is the only one that runs with conda + - azure is a multidue of windows + - azure vs GHA have slightly different osx runners + - freethreading only on GHA +- Tom + - 3.10 work + - grant prep work + +### 3.10 +- 3 PRs + - https://github.com/matplotlib/matplotlib/pull/28048 + - merged, docs failures we think will work when meregd + - + + +### sprint prep + +- https://github.com/matplotlib/matplotlib/issues/28920 +- target switch to `!` to supress broken links as a sprint activity (#28290) +- @story645 will take a pass at turning this into a usable task-list for the sprint at pydata NYC next week + - will edit into original issue diff --git a/meeting_notes/2024/2024_11_nov.md b/meeting_notes/2024/2024_11_nov.md new file mode 100644 index 0000000..ea78049 --- /dev/null +++ b/meeting_notes/2024/2024_11_nov.md @@ -0,0 +1,147 @@ +# Matplotlib Weekly Meeting: November 2024 + +###### tags: `2024 dev call` + +--- + +# November 7, 2024 + +_attending_: @tacaswell, @efiring, @ksunden, @story645, @QuLogic +## Agenda +### Old business + - [x] RSE updates + +### New business + - [x] 3.10rc1 fallout? + - [ ] sprint report + +## Notes +### RSE updates +- Kyle + - rc 3.10 out (technically in October) + - trying to focus on data-prototype work +- Tom + - grant work + - pydata NYC sprints + - bits of review/contributions +- Elliott + - 3.10rc1 testing (fedora build to futher build down stream) + - Work on wasm build + - need to skip subprocess / thread tests + - they have a canvas backend that we might adopt + - how does this intersect with jupyterlite? + - we think they are using the canvas backend, need to talk to them + - need to look into how to get nightly wheels for pyodide available if we want to use jupyterlite for our docs + - we do have some cut-outs because we fully control our own server and can host what ever we need to + - might need to tune "how to clean old wheels" script (shared problem) + + +### rc1 fallout +- none yet! + +### sprint report + +- got a few first-time contributors through + +--- + +# November 14, 2024 + +_attending_: @tacaswell @greglucas @ksunden @QWhXj01mSwmTjk5kN1H_qQ + +## Agenda +### Old business +- [x] RSE updates + +### New business +- [x] 3.10.0rc1 fallout? + + +## Notes +### RSE updates + - Kyle + - data prototype work + - thinking about collections + - incompatibility with tcl9, working on finishing PR + - Elliott + - finished wasm work + - PRs will run + - still evaluating canvas backend, maybe platfrom specifc dependencies for wasm builds + - gtk4 modernization + - direct buffer copy vs cairo + - finished rebuild of fedora + - 10 packages failed to rebuild, some already fixed by upstream (out of 150 odd) + - some were ignoring deprecations + - no seaborn-scale downstream broke + - builds: https://copr.fedorainfracloud.org/coprs/qulogic/matplotlib-310/packages/ + - checks: https://copr.fedorainfracloud.org/coprs/qulogic/matplotlib-310.checker/packages/ + - anything that fails in the first link, but _doesn't_ in the second is a new failure + - APLpy - actually failing in astropy; [fixed upstream](https://github.com/astropy/astropy/pull/17145) + - gdl - flaky test, not a real failure + - morphio - pybind11, not us; [fix available upstream](https://github.com/BlueBrain/MorphIO/pull/508) + - myst-nb - tests are [version-specific](https://github.com/executablebooks/MyST-NB/blob/master/pyproject.toml#L98-L99), but unlikely to be fully broken + - python-animatplot - [fixed upstream](https://github.com/boutproject/animatplot-ng/pull/25) + - python-fsleyes-widgets + - python-mplcairo - fixed in 0.6 + - python-pandas - axis converter warning, and deprecation of `vert` argument to `boxplot`; @ksunden to investigate + - python-plotnine - deprecation warning caught by tests, but it's [fixed upstream](https://github.com/has2k1/plotnine/commit/6cc67c156cc3f9aa2d85f13aea06bc7abee7eaac#diff-11be2f3ae9ad00a253129ee11716189ca7175d027da3618274f690503a28d19aL786), not packaged yet + - Thomas + - behind the scenes NASA grant + - bit of review and discussion with Kyle + +### 3.10.0 final + +Target this Friday + +### Timers + - PR: https://github.com/matplotlib/matplotlib/pull/29062 + - What do we want to do for accuracy of timers on CI systems? + - CI systems are troublesome with their timers. All tests pass locally. + - Keep the current PR as-is and target 3.11, nothing urgent for 3.10. + - Try to make longer tests with longer iterations to avoid issues with slow CI systems. (long running tests are currently ~25s) + - Make sure to change time based on local vs CI + +--- + +# November 21, 2024 + +_attending_: @tacaswell @efiring @ksunden @qulogic @story645 + +## Agenda +### Old business +- [ ] RSE updates + +### New business +- [ ] 3.10 + + +## Notes +### RSE updates + - Kyle + - 3.10 finalizing PRs had more back-and-forth than expected + - vert deprecation [#29155](https://github.com/matplotlib/matplotlib/pull/29155) + - switch deprecation to "pending" + - this will still fail pandas (because they have opted it to more warnings) + - we will PR to fix pandas + - converter relaxation [#29154](https://github.com/matplotlib/matplotlib/pull/29154) + - merged to main + - PR to 3.10.x pending + - Elliott + - gtk snapshot work, issues with fractional high-dpi + - CI audit: https://gist.github.com/QuLogic/1ef085d97e1f29d29045455411d686e9 + - action: try dropping azure linux + macOS + - reduce power usage, reduce total build time + - discussion of flaky tests on windows + - mostly seems connected to subprocess +- Tom + - some review, work on LLM rules + + +### test determinism test + - ghostscript does not promise determinism of output, so we can not test for it! + - consider removing test (or atleast ps part) +- stalled PR from @oscargus to remove distillation may be related + +### LLM chat + + - https://github.com/matplotlib/matplotlib/pull/28335 diff --git a/meeting_notes/2024/2024_12_dec.md b/meeting_notes/2024/2024_12_dec.md new file mode 100644 index 0000000..25d7844 --- /dev/null +++ b/meeting_notes/2024/2024_12_dec.md @@ -0,0 +1,88 @@ +# Matplotlib Weekly Meeting: December 2024 + +###### tags: `2024 dev call` + +--- + +# December 5, 2024 + +_attending_: @QuLogic, @ksunden, @story645, @NGWi + +## Agenda +### Old business +- [x] RSE updates + +### New business +- [x] 3.10 + +### Notes +- [xkcd](https://github.com/matplotlib/matplotlib/issues/29233) + - probably just an error on local fonts +- [transparent animation](https://github.com/matplotlib/matplotlib/pull/29024) + - Was reported as not a functioning fix in a comment on the PR + - can't reproduce + +--- + +# December 12, 2024 + +_attending_: @story645, @greglucas, @ksunden, @tacaswell, @QuLogic +## Agenda +### Old business +- [ ] RSE updates +### New business +- [x] 3.10 +- [x] Data symlinks in wheels not working ([Issue](https://github.com/matplotlib/matplotlib/issues/29229)) +## Notes +### missing files +- determined that the missing files is due to a change in meson-python between 0.16.0 and 0.17.0 +- will pin back and quickly cut a 3.9.4 +- will tag 3.10.0 as soon as this is done + +### RSE updates + - Tom + - not much, busy with other resonsibilities + - Kyle + - trying to sort out a series of "one more thing..." for 3.10 + - Elliott + - trying to get back on top of reviews + - work on font stuff + - couple of nice-to-have before pulling bulk of raqm work in + - type3 fonts in pdf can be nicer + - characters out of ascii plane are rendered in the right place but as "xobject" not as text so highlighting is super broken + - may be able to use a very custom code page that supports the first 256 glyphs as proper text + - do we care about type3 + - its complicated + - publishers may still care + - maybe able to get ghostscript to do type1 -> type3 conversion + +--- + +# December 19, 2024 + +_attending_: @story645, @ksunden, @QuLogic + +### Old business +- [ ] RSE updates +### New business + +## Notes +- Kyle : 3.10 release +- Elliott : font internationalization + + +### [edge/hatch color](https://github.com/matplotlib/matplotlib/pull/28104) +- is edge intended as a color spec? 'inherit' can be passed in through color or rcParam +- should transparent edgecolor be special cased when hatch is set and no hatchcolor is set + +--- + +# December 26, 2024 + +_attending_: @efiring, @tacaswell, @story645 + +### Old business + + +## notes +- request to prioritize Remote Frame Buffer diff --git a/meeting_notes/2024/feb2024_jan2025.md b/meeting_notes/2024/feb2024_jan2025.md deleted file mode 100644 index 8942cc7..0000000 --- a/meeting_notes/2024/feb2024_jan2025.md +++ /dev/null @@ -1,2026 +0,0 @@ -# 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. - -## February 22 2024 - Jan 09 2025 - - -###### tags: `2024 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) - -``` -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 -``` - -# Jan 9 -_attending_: @greglucas, @efiring, @story645, @tacaswell, @rcomer, @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) - -## Agenda -### old business -- [x] 3.10 doc tweaks -- [x] NASA updates -- [x] RSE updates - -### new business - -## Notes - -### RSE updates -- Tom - - time off - - python-build-standalone - - https://github.com/astral-sh/uv/issues/6893#issuecomment-2565965851 - - some review -- Kyle - - some time off - - working on planning the next 2 months of work - - catch up - -### what big stuff is in the pipe? - - bivariate colormap (has PR, needs review) - - bezier work (from Bruno) - - PR to vectorize 3D code - - some have been resurected by Scott - - font work! (raq) - - groupbar chart - - what artists get a label attribute - - start to look at ticks - - -### [labels](https://github.com/matplotlib/matplotlib/issues/29422) - - to ideas: - - want to have a unique id so you can select artist by name [2](https://github.com/matplotlib/matplotlib/issues/29429) - - sometimes people (ab)used the label API for this - - label is top-level artist property to be used in legends even on things that should never be in the legend (like the Legend itself or the whole figure) - - -# Dec 26 -_attending_: @efiring, @tacaswell, @story645 - -# old business - - -## notes -- request to prioritize Remote Frame Buffer - -# Dec 19 -_attending_: @story645, @ksunden, @QuLogic - -### Old business -- [ ] RSE updates -### New business - -## Notes -- Kyle : 3.10 release -- Elliott : font internationalization - - -### [edge/hatch color](https://github.com/matplotlib/matplotlib/pull/28104) -- is edge intended as a color spec? 'inherit' can be passed in through color or rcParam -- should transparent edgecolor be special cased when hatch is set and no hatchcolor is set - -# Dec 12 -_attending_: @story645, @greglucas, @ksunden, @tacaswell, @QuLogic -## Agenda -### Old business -- [ ] RSE updates -### New business -- [x] 3.10 -- [x] Data symlinks in wheels not working ([Issue](https://github.com/matplotlib/matplotlib/issues/29229)) -## Notes -### missing files -- determined that the missing files is due to a change in meson-python between 0.16.0 and 0.17.0 -- will pin back and quickly cut a 3.9.4 -- will tag 3.10.0 as soon as this is done - -### RSE updates - - Tom - - not much, busy with other resonsibilities - - Kyle - - trying to sort out a series of "one more thing..." for 3.10 - - Elliott - - trying to get back on top of reviews - - work on font stuff - - couple of nice-to-have before pulling bulk of raqm work in - - type3 fonts in pdf can be nicer - - characters out of ascii plane are rendered in the right place but as "xobject" not as text so highlighting is super broken - - may be able to use a very custom code page that supports the first 256 glyphs as proper text - - do we care about type3 - - its complicated - - publishers may still care - - maybe able to get ghostscript to do type1 -> type3 conversion - -# Dec 5 -_attending_: @QuLogic, @ksunden, @story645, @NGWi - -## Agenda -### Old business -- [x] RSE updates - -### New business -- [x] 3.10 - -### Notes -- [xkcd](https://github.com/matplotlib/matplotlib/issues/29233) - - probably just an error on local fonts -- [transparent animation](https://github.com/matplotlib/matplotlib/pull/29024) - - Was reported as not a functioning fix in a comment on the PR - - can't reproduce - -# November 21 -_attending_: @tacaswell @efiring @ksunden @qulogic @story645 - -## Agenda -### Old business -- [ ] RSE updates - -### New business -- [ ] 3.10 - - -## Notes -### RSE updates - - Kyle - - 3.10 finalizing PRs had more back-and-forth than expected - - vert deprecation [#29155](https://github.com/matplotlib/matplotlib/pull/29155) - - switch deprecation to "pending" - - this will still fail pandas (because they have opted it to more warnings) - - we will PR to fix pandas - - converter relaxation [#29154](https://github.com/matplotlib/matplotlib/pull/29154) - - merged to main - - PR to 3.10.x pending - - Elliott - - gtk snapshot work, issues with fractional high-dpi - - CI audit: https://gist.github.com/QuLogic/1ef085d97e1f29d29045455411d686e9 - - action: try dropping azure linux + macOS - - reduce power usage, reduce total build time - - discussion of flaky tests on windows - - mostly seems connected to subprocess -- Tom - - some review, work on LLM rules - - -### test determinism test - - ghostscript does not promise determinism of output, so we can not test for it! - - consider removing test (or atleast ps part) -- stalled PR from @oscargus to remove distillation may be related - -### LLM chat - - - https://github.com/matplotlib/matplotlib/pull/28335 - -# November 14 -_attending_: @tacaswell @greglucas @ksunden @QWhXj01mSwmTjk5kN1H_qQ - -## Agenda -### Old business -- [x] RSE updates - -### New business -- [x] 3.10.0rc1 fallout? - - -## Notes -### RSE updates - - Kyle - - data prototype work - - thinking about collections - - incompatibility with tcl9, working on finishing PR - - Elliott - - finished wasm work - - PRs will run - - still evaluating canvas backend, maybe platfrom specifc dependencies for wasm builds - - gtk4 modernization - - direct buffer copy vs cairo - - finished rebuild of fedora - - 10 packages failed to rebuild, some already fixed by upstream (out of 150 odd) - - some were ignoring deprecations - - no seaborn-scale downstream broke - - builds: https://copr.fedorainfracloud.org/coprs/qulogic/matplotlib-310/packages/ - - checks: https://copr.fedorainfracloud.org/coprs/qulogic/matplotlib-310.checker/packages/ - - anything that fails in the first link, but _doesn't_ in the second is a new failure - - APLpy - actually failing in astropy; [fixed upstream](https://github.com/astropy/astropy/pull/17145) - - gdl - flaky test, not a real failure - - morphio - pybind11, not us; [fix available upstream](https://github.com/BlueBrain/MorphIO/pull/508) - - myst-nb - tests are [version-specific](https://github.com/executablebooks/MyST-NB/blob/master/pyproject.toml#L98-L99), but unlikely to be fully broken - - python-animatplot - [fixed upstream](https://github.com/boutproject/animatplot-ng/pull/25) - - python-fsleyes-widgets - - python-mplcairo - fixed in 0.6 - - python-pandas - axis converter warning, and deprecation of `vert` argument to `boxplot`; @ksunden to investigate - - python-plotnine - deprecation warning caught by tests, but it's [fixed upstream](https://github.com/has2k1/plotnine/commit/6cc67c156cc3f9aa2d85f13aea06bc7abee7eaac#diff-11be2f3ae9ad00a253129ee11716189ca7175d027da3618274f690503a28d19aL786), not packaged yet - - Thomas - - behind the scenes NASA grant - - bit of review and discussion with Kyle - -### 3.10.0 final - -Target this Friday - -### Timers - - PR: https://github.com/matplotlib/matplotlib/pull/29062 - - What do we want to do for accuracy of timers on CI systems? - - CI systems are troublesome with their timers. All tests pass locally. - - Keep the current PR as-is and target 3.11, nothing urgent for 3.10. - - Try to make longer tests with longer iterations to avoid issues with slow CI systems. (long running tests are currently ~25s) - - Make sure to change time based on local vs CI - - - - -# November 7 -_attending_: @tacaswell, @efiring, @ksunden, @story645, @QuLogic -## Agenda -### Old business - - [x] RSE updates - -### New business - - [x] 3.10rc1 fallout? - - [ ] sprint report - -## Notes -### RSE updates -- Kyle - - rc 3.10 out (technically in October) - - trying to focus on data-prototype work -- Tom - - grant work - - pydata NYC sprints - - bits of review/contributions -- Elliott - - 3.10rc1 testing (fedora build to futher build down stream) - - Work on wasm build - - need to skip subprocess / thread tests - - they have a canvas backend that we might adopt - - how does this intersect with jupyterlite? - - we think they are using the canvas backend, need to talk to them - - need to look into how to get nightly wheels for pyodide available if we want to use jupyterlite for our docs - - we do have some cut-outs because we fully control our own server and can host what ever we need to - - might need to tune "how to clean old wheels" script (shared problem) - - -### rc1 fallout -- none yet! - -### sprint report - -- got a few first-time contributors through - -# October 31 -_attending_: @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ, @QuLogic ,@ksunden, @story645 , @timhoffm -## Agenda -### Old business - - [x] RSE updates - - [x] 3.10 status update -### New business - - [x] NF CoC - - -## Notes -### CoC - -#### Conetxt - -Email from NF - -> Dear Projects, -> -> -> ->We are happy to announce that the NumFOCUS Board of Directors approved the new NumFOCUS Code of Conduct on Sept. 4, 2024. Before the Code of Conduct can be implemented, the NumFOCUS Code of Conduct Working Group must be established and receive training. We plan to complete this process by the end of January 2025. -> -> -> ->Current: NumFOCUS Sponsored and Affiliated projects can opt-in to use the new Code of Conduct. Starting Feb. 1, 2025, all new NumFOCUS projects will be asked to opt-out of using the NumFOCUS CoC. NumFOCUS events, including PyData, will continue under the NumFOCUS Code of Conduct in place. -> -> -> ->NumFOCUS Code of Conduct Working Group Election -> ->We are looking for individuals willing to serve in the Working Group that will be tasked with reviewing, investigating, responding to, and advising on potential conduct violations and advising a broad NumFOCUS ecosystem member on the NumFOCUS Code of Conduct. The term is one year. Please find more information, as well as the nomination form, in this blog post. -> -> -> ->Your Decision Process -> ->For your project currently with NumFOCUS, the new CoC is opt-in. To support your project in making an informed decision, as well as help in the potential implementation, we are planning the following actions: -> -> 1. Jan. 2025: Walk-through video + email + meetings for the Projects and PyData chapters -> 2. Feb. 2025: Current Projects’ decisions to opt-in are captured via a Typeform submission -> 3. Mar. 2025: Meeting with Project adopters to provide materials: -> - Welcome pack: -> - pre-drafted text that you can put on your website / GitHub README file -> - a link to our CoC information, which will include the reporting button -infographic of the reporting procedures -> - Education: -> - online materials covering CoC-related best practice -> -> ->Please let us know if you have any questions. Feel free to contact Kamila Stepniowska (Project DEI Lead) by email (kamila@numfocus.org) or via Slack. -> -> -> ->Thank you, -> ->Arliss - -NF CoC: https://numfocus.org/2025-code-of-conduct -Our current CoC: https://matplotlib.org/stable/project/code_of_conduct.html - -Currently we use Contributor Covenent 2.0 verbatim, NF CoC is new text synthesised from a number of existing CoC including Contributor Covenent 1.4 - -Looks like we can not make a decision until Feb 25 and there will be more information / materials available to us in Jan 25 - -#### Discussion - -Consensus is we are still interested. - -### RSE updates - - Kyle - - work on 3.10 - - rc1 TODAY - - Elliott - - sick this week - - got thourgh animation work - - all codecs could find work - - polar PR position in layouts - - starting to look at alt-text - - CI audit - - mostly done, still in progress sorting out where we skip which tests - - mostly GUI toolkits - - appveyor is the only one that runs with conda - - azure is a multidue of windows - - azure vs GHA have slightly different osx runners - - freethreading only on GHA -- Tom - - 3.10 work - - grant prep work - -### 3.10 -- 3 PRs - - https://github.com/matplotlib/matplotlib/pull/28048 - - merged, docs failures we think will work when meregd - - - - -### sprint prep - -- https://github.com/matplotlib/matplotlib/issues/28920 -- target switch to `!` to supress broken links as a sprint activity (#28290) -- @story645 will take a pass at turning this into a usable task-list for the sprint at pydata NYC next week - - will edit into original issue - -# October 24 -## Agenda - -### Old business -- [x] RSE updates -- [ ] 3.10 progress -### New business - -- [x] ROSES 2024 - - https://www.nasa.gov/news-release/nasa-funds-open-source-software-underpinning-scientific-innovation/ We were selected for a 5 year grant to support mpl + cartopy - -## notes - -### RSE updates -- Tom - - behind the scenes paperwork for NASA grant - - some review -- Kyle: - - macos input hook issues - - 3.10 work -- Elliott - - 3.10 things - - finished polar work (needs to be commited and PRd) - - looking at transparent animation - - ham-fisted compositing to white not great (Caswell added that) - - adding cut-out for more formats that support it - - need website reviewed to turn of pluto - - Done! - -### 3.10 - - -# October 17 -_attending_:@efiring, @ksunden, @QuLogic, - - -## agenda -### old business -- [ ] RSE - -## Notes - -### 3.10 - -- MacOS CI problem solved, but needs a backport. -- Color pipeline: needs another rebase (Kyle). -- Nothing else is blocking; a few more might get in. -- goal: branch tomorrow or Monday -- merge reference cycle fix? https://github.com/matplotlib/matplotlib/pull/28861 - -### 3.9.3 -- worth doing -- some backports -- https://github.com/matplotlib/matplotlib/pull/28981 - - -# October 10 - -_attending_:@efiring, @ksunden, @QuLogic, @greglucas, @tacaswell, @story645 - -## agenda -### old business -- [ ] RSE -- [ ] [name=hannah][NumFocus CoC](https://numfocus.org/2025-code-of-conduct) - - -## Notes - -### COC -- NF has released text, discuss in 3 weeks - -### 3.10 -- 3D PR is almost done -- push hatch/edge color API cleanup to 3.11 -- go ahead with colorizer PR -- ttconv pr - - https://github.com/matplotlib/matplotlib/pull/20866 - - https://github.com/matplotlib/matplotlib/pull/28784 for example of type42 -- long discussion of thread/freethreading - -### RSE update -- Elliott: - - progress on website redirects - - now have proper 301 redirects instead of symlinks - - https://github.com/matplotlib/matplotlib.org/pull/41 - - running on https://pluto.matplotlib.org - - yesterday looked like we were getting hammered by AI bot - - turned on cloudflare cdn for discourse - - followed guide on how to do this, but report issues - - enable bot-protection on CF, this broke inventory downloading for inter-sphinx, turned off - -# October 3 -_attending_: @ksunden, @QuLogic, @efiring - -Informal meeting with some discussion of PRs for 3.10. - -3-D rotation PR: needs a decision, or delay to 3.11. - -3.8 deprecation removals - -https://github.com/matplotlib/matplotlib/pull/28658: Tim? - -# September 26th -_attending_: @ksunden, @QuLogic, @efiring, @story645, @timhoffm - -## Agenda -### old buisness -- [ ] RSE - -### new business -- [x] [name=hannah] hacktoberfest? - -## Notes - -### hacktoberfest -- Evaluation is neutral; hard to evaluate long-term value. There is some willingness, but no enthusiasm. - - we're too under-resourced at the moment -- take out topic -- they can request a `hacktoberfest-accepeted` tag - -### [removal of `cbook.Stack`](https://github.com/matplotlib/matplotlib/pull/28874) -- this was deprecated in 3.8, and the linked PR removes it for 3.10 -- however, there exists a usage of it in the type stubs for `lib/matplotlib/backend_tools.pyi:ToolViewsPositions` (but is not otherwise documented) -- for now, we will fix mypy by keeping the private `cbook._Stack` in the type stubs -- can open a followup issue or PR to deprecate the `ToolViewsPositions` internals if wanted - -### [fixed aspect overwrites explicitly set data limits](https://github.com/matplotlib/matplotlib/pull/28683) -- accept the pr - -### [fontproperities init](https://github.com/matplotlib/matplotlib/pull/28843) -- distinguishing if string is family or pattern -- alternative proposal/concern is that someone may have passed in a pattern as a family kwarg arg - undocumented but supported use case - - we can let that work for the time being and worry about it later - - can't warn b/c of lack of distinction between names and patterns - - we can check if a string is a pattern b.c we can run it through the machine - - can't determine if it's a family name - - we want to ask `not family` but we can't get the full set of families -- merged -- follow up: either leave it or figure out pattern|family or restrict names - -### 3.10 queue -- colorizer -- pybind11 - - - -# September 19th - - -## Agenda -_attending_: @tacaswell, @ksunden, @QuLogic, @efiring, @story645 - -### old business -- [x] RSE - -### new business -- [ ] [name=@story645] github teams for non-code work: - - survey: Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) - - survey repository (also backup old survey here) - - social: Pawel (@pawjast) -> social media projects board -- [ ] 3.10 status / burndown -- [x] [name=greglucas] Potential funding through OpenTeams [REPOS project](https://www.openteams.com/introducing-repos-platform-for-sustainable-open-source-funding/) - - Propose bugs to squash or improvements to make and companies can pay developers to work on those specific items because it may be blocking them - -### issues and PRs - -## Notes -### RSE updates - - Tom - - issue triage and review - - meeting with Kyle/Elliott - - Kyle - - issue / PR triage - - aiming for 3.10 rc next week - - implementing a setter for converters on `axis` objects for 3.10 - - data prototype work - - Elliott - - triage work - - pybind11 and ft2font work - - close to PR to remove our numpy wrapper (and only use pybind11's) - - working on sizing polar plots correctly - -### REPOS project - -- we propose specific projects with budgets -- companies fund said projects -- run through openteams -- follow up again when Greg is on the call - -#### github teams/ recognition of non-code contributions -- create a repo for the survey -- add teams for survey and social media -- Numpy web page "teams" example https://numpy.org/teams/ (generated from Github teams) - -# September 12th - -## Agenda - -_attending_ : @tacaswell @timhoffm @story645 @IGuKs80UTJCig4yt6Zos7w (greglucas) @ksunden @trygve @QWhXj01mSwmTjk5kN1H_qQ (efiring) @rcomer - -### old business -- [x] RSE -- [x] [name=@story645]user survey - do we have an mpl google account for forms? - - who should own it? - - [very rough draft of questions](https://hackmd.io/3xLJ88NhQrG_BOXrWKGp1Q#List-of-questions-and-available-responses) - -### New business -- [x] [name=@greglucas] NumFOCUS Summit updates - - [ ] NetworkX requests - - Bezier path improvements and distance along curve - - Arrow to the edge of a marker (Greg: Is there a way to update this with the transform stack and `get_tightbbox()`? I'd be worried about interactively moving a marker and getting the arrow to follow) -- [x] [name=@greglucas] Squash merging rather than asking new contributors to squash themselves -- [x] pybind11 updates -- [ ] mpl 3.10 updates - - https://hackmd.io/l9vkn_T4RSmk147H_ZPPBA?both#310 - - PR for [grouped bar charts](https://github.com/matplotlib/matplotlib/pull/28560) [Tim] -> API feedback welcome -- [ ] arrows are hard -- [x] opt into NF CoC scheme - -## Notes -### NF summit - - news: Leah is stepping down - - discussions about - - web assembly - - SDG program - - NF "developer-in-residince" to spread across projects - - SPEC process - - updates for Python freethreading - - lots openMP thread - - https://github.com/numfocus/project-summit-2024-unconference/issues for more details - - CoC updates - - Opt-in for current projects - - Opt-out for new projects coming in - - NumFOCUS Code of Conduct Working Group (coming soon) - - Code of Conduct Event Response Teams (organizers create for a particular event) - - coming soon -- cross-project development - - discussion with networkX - - revival of some old PRs from Bruno about Bezier curves - - enhancements around pointing arrows to edges of other paths - - (discussion of arrows and why they are) - -### CoC opt-in - -- high level discussion sound good -- early drafts had same pro/con as our current process -- Caswell in in favor to get benifit of a bigger pool -- wait for actual details before committing - -### RSE updates - - Kyle - - summit most of last week - - data prototype work on patches - - issue / PR review - - Elliott - - mostly pybind11 work - - rebased ttfconf PR that switches to using fonttools - - also fixes a bug we only just discovered with font subsetting - - Tom - - project management - - little bit of review - -### user survey -- please contact NF for getting access to a form -- there exists a rough draft of questions - - justification of questions still in process -- aiming for early to mid fall to be ready - -### squash merge -- do we want to just squash-merge? -- vote to (socially) prefer squash merge - -### pybind11 -- just needs review effort -- still left after these: - - macosx (not c++ so leave) - - some internal stuff that is waiting on these PRs - -### mpl 3.10 - -- can we just cut from main now? - - colorbar stuff - - colorizer can be merged - - what is left on colorizer? - - currently doing last round of review - - @timhoffm hoffm should take another look - - consider if there is a better way to fix `isinstance` -- have a proposal for group bar charts from @timhoffm - - everything is marked as provisional [#28560](https://github.com/matplotlib/matplotlib/pull/28560) -- @ksunden will be release manager, we need to update the goverance docs - - updated docs: https://github.com/matplotlib/governance/pull/41 -- pybind11 in for 3.10 (yes) -- freethreading? - - qhull is probably ok - - contourpy claims in is safe - - kiwi is a question - - freetype in theoritically safe - - ft2font has no locks - - agg may lock the font cache - - plan - - build 313t wheels - - option 1: do not mark as safe - - document that we need users to test with the force free-thread env - - this may be closer to what CPython does - - option 2: mark as safe - - numpy has marked them selves safe - - using a freethreading build is opting into segfaults - - fliping on/off in a mirco seems ok - - - -# September 5th -_attending_ : @efiring, @story645, @QuLogic -## Agenda - -### Old business -- [ ] RSE - - -## Notes -### RSE -- Kyle @ summit -- Elliot still needs SDG paperwork, has been working primarily on FT2Font work -- Question about license in [font test](https://matplotlib.org/devdocs/project/license.html#fonts) - -no specific license file for Dejavu -### pydata nyc -- finish out tagging PRs bf sprints - - https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+label%3A%22Documentation%3A+tags%22 - - - -# Aug 29th -_attending_ : @greglucas, @efiring, @ksunden, @QuLogic, @story645, - -## Agenda - -### Old business -- [x] RSE -- [x] GSOC - - [x] how to manage documentation of colorizer - -### New business -- [x] link exceptions in docs -- [x] [fig.annotate](https://github.com/matplotlib/matplotlib/pull/28753) - -## Notes -### RSE - - Kyle - - some time on getting NF summit travel sorted - - wrapped up GSOC evalution - - working on data prototype `Patches` - - PR review -- Tom - - Review - - fixing the docs on the colorizer PR -- Elliott - - mostly ft2font, many test cases - - found a few bugs - - useful to validate the planned pybind11 work - - paper work for SDG, plan to start work next week - - -### GSOC - - is over. final report: https://trygvrad.github.io/gsoc-2024-bivariate-colormaps-summary/ - - some was merged, not everything we planned - - we drove a change-of-scope that changed goals - - potentially fix docs w/ a script (called from conf.py) that writes out the .rst from *_scalarmappable* and is then included in write place via .. include:: - -### doc links: -- have sphinx document private methods by default -> sphinx allows manual over ride - - make these public abstract methods -- to handle methods on subclasses - - https://github.com/sphinx-doc/sphinx/issues/11434 -- can curate which methods are included/excluded by excluding specifc parent classes -- with collection: document private with sizes for now - -# Aug 22nd -_attending_: @greglucas, @efiring, @ksunden, @QuLogic, @story645, @trygvrad, @tacaswell, @litchi - -### Old business -- [x] RSE -- [x] GSOC: deadline is aug 26th, is waiting on - - [x] new pipeline: https://github.com/matplotlib/matplotlib/pull/28658 - - [x] colormaps: https://github.com/matplotlib/matplotlib/pull/28454 -- [x] [name=story645] docs: - - [access to analytics](https://github.com/matplotlib/matplotlib/issues/28696) - - new user survey ran by Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) -- [x] NF Project summit - - Cambridge Mass, Sep 5-7 -- [x] Small dev grant CFP - due Sep 30, 2024 - - possibly survey + doc reorg - -### New business - -- [name=story645][seperate hatch and egde color](https://github.com/matplotlib/matplotlib/pull/28104) -- [name=QuLogic] home page translations: [reST-ification](https://github.com/matplotlib/mpl-brochure-site/pull/96), [enable sphinx-intl](https://github.com/matplotlib/mpl-brochure-site/pull/97) -- [name=QuLogic] asyncio-based backends [PyGObject MR](https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/189) - -## Notes -### GSOC -#### dev docs not building/updating -- known bug with a unit example -- quick fix is to ban numpy2.1.0 - -#### new pipeline - - has PR to @trygve's branch to adjust inheretance so to avoid breaking user code - - will merge + add some more comment - - when ScalarMappable is removed, methods can move down to `ColorizingArtist` - -#### color map PR - -#### Current state of things - - - https://trygvrad.github.io/gsoc-2024-bivariate-colormaps-summary/ - - need first 2 steps are there PRs, need 3 more to get everything landed - -### RSE updates - - kyle: data prototype stuff - - working on patches - - looking at numpy problems with docs build - - gsoc - - Elliott: - - pybind11 work - - working on ft2font - - work on brochure site - - Tom: - - mostly review - - trying to test with cp313t - - the borrowed c++ refs may go away with pybind11 - - dragons may be in macos backend - ### analytics - - now public - -### survey - -- need to see the questions + pre-design of analysis before it goes out - -### summit -sending and - - -- question about GDPR + discourse - - can we move our users + history to another instance -- status of NF CoC for projects - -### small development grant -- not this cycle - -### hatchcolor/edgecolor -- hatchcolor + pcolor needs to be optional -- need to make backends forgiving for backends that don't implement hatch - - - -# Aug 15th -_attending_: @efiring, @ksunden, @QuLogic, @story645, @trygvrad, @tgmiller5 - -### Old business -- [ ] RSE -- [ ] GSOC: deadline is aug 26th, is waiting on - - [ ] new pipeline: https://github.com/matplotlib/matplotlib/pull/28658 - - [ ] colormaps: https://github.com/matplotlib/matplotlib/pull/28454 - -### New business -- [x] [name=story645] docs meeting: - - [access to analytics](https://github.com/matplotlib/matplotlib/issues/28696) - - new user survey ran by Jerome (@jeromefv-former GSOD) and Tammy (@tgmiller5) -- [x] NF Project summit - - Cambridge Mass, Sep 5-7 -- [x] Small dev grant CFP - due Sep 30, 2024 - - possibly survey + doc reorg - -### Pull requests - -## Notes - -# user surve + analytics -- [x] follow-up email sent to steering council - -# GSOC -- multivariate/bivariate needs approval -- pipeline: address reviews then changes -- potential tracking issue for rest of transition - -# RSE -- fixing CI + getting 3.9.2 + pybind - -# Aug 8 -_attending_: @IGuKs80UTJCig4yt6Zos7w (greglucas), @story645, @tacaswell, @ksunden, @QuLogic, @QWhXj01mSwmTjk5kN1H_qQ(efiring), @trygvrad - -## Agenda -### Old business -- [ ] RSE -- [ ] GSOC - - ScalarMappable|shim|Colorizer boundaries/ seperation of concerns - -### New business -- [name=story645] docs meeting: - - access to analytics - - new user survey -- windows wheel issue -- -### Pull requests: -- [Build for musllinux on ARM](https://github.com/matplotlib/matplotlib/pull/28592) - feedback requested (@oscargus: I know that we may not want to build for every combination of platforms, but not how it is determined. Also, currently it takes 97 minutes. If I join the call, will try to remember that, I can provide feedback. If not, I'd appreciate if someone can.) - -## Notes - -### Windows wheel issue -- think we understand the issue and have a draft PR to fix it -- think we understand: - - GHA runners have a bunch of different dlls - - the one that came up first in the PATH found the wrong dll - - by specifying a path to delvewheel we should be able to fix it -- bad timing on a devlewheel problem where things changed between when we tested and when we released - - delevwheel did a release between .post0 and .post1 -- Ian has a draft PR in that needs to be tested -- Reached out to Steve Dower - - reccomended that we statically link msvc40.dll - - should only be done for wheels (not CF) -- may be wider issue as and it may come back later in other places, may want a shared wheel for this dll? -- issue with not finding dll - - one way to fix is set `--vsenv` but it assumes that msvc is installed and what you want to use - - meson tries to find any complier, falls back to looking for msvc (which is how it works for most dev machines) - - if something happens to be on the path, meson uses that BUT those dlls are not on path at run time - -TODO: - - get static linking set up on CI - - get those wheels tested - - do 3.9.2 or 3.9.1.post2 - - enable py3.13 if 3.9.2 route, not if 3.9.1.post2 release - - target close of business Friday - -### musl arm -- OP followed up -- Kyle posted summary, inculding asking for volunteer - - OP agreed to take role - - please add comment to yaml -- delaying speed up until follow up PR - - if it is a problem, we can evaluate how to fix it -- do we want to pay for native arm? - - currently no, but maybe if we find a sponsor for it - -### GSOC/colorizer - -- has implemented new colorizer class -- need to agree on some names -- need typing -- need tests for new functionality -- put new class in new file -- do we want to move norms to `norms.py` - - pro: better names - - con: either deal with deprecation dance (and cost to other) or accept it lives in 2 places (forever?) - - consenus is to do the move and keep the forwarding forever, but we need to get buy-in from Tim - - de-document, do not type hint, maybe drop from `__all__` - - [EDIT]: An issue has been opened here https://github.com/matplotlib/matplotlib/issues/28690 - -color -- put property forwarders on ColorizingArtist - -colorizingartist + forwarding functions class (scalarmappbleshim?colorizershim/interface) - -moving norm and cmap attributes from an artist to a colorizer -- if you set a norm/cmap on artist, then sets it on colorizer - - when we deprecate scalarmappble, - - will either remove the ability to set or -- silently overwrite setting properties -> only happens if you explicitly opt into colorizer - --> set_norm: add *arg* for new colorizer, or use `set_colorizer` - - -# Aug 1 -_attending_: @efiring, @tacaswell, @ksunden, @QuLogic, @trygve, @timhoffm, @ianthomas23, @story645 - -## Agenda -### Old business -- [ ] RSE -- [ ] GSOC - - [ ] [data->color pipeline](https://github.com/matplotlib/matplotlib/pull/28428) changes/rearch -### New business - - [ ] windows 3.9.1 + nightly wheels broken https://github.com/matplotlib/matplotlib/issues/28551 - - [ ] -## Notes - -### Windows 3.9.1 + nightly (contourpy) -- try windows 3.9.0 w/ nightly wheels - -### GSOC: colormapping pipeline -- proposal is transition from $scalermappable: norm \circ cmap \circ data$ model to $mappable : data -> color$ model -- questions on how do we roll this out: - - vector_* methods: changes are mostly at the backing artist layer (AxesImage, PatchCollection, etc...) so would require writing/maintaining shadow API of Axes.* methods and scalarmappable aware artists - - putting in a scalarmappable shim so that layer of public API is still available - - pulling out an initial interface layer PR w/ minimal implementation + shims - - POC that shows that the new pipeline slots into the existing workflow cleanly - - shepherded by @tacaswell and @timhoffm - - fold in colorbar in a later PR -- colorbar pointing to artist? [adding cbar to ScalerMappable](https://github.com/matplotlib/matplotlib/issues/25880) - -# July 25 -_attending_: @trygve @efiring @ksunden @story645 @tacaswell, @QuLogic - -## Agenda -### Old business -- [x] RSE -- [x] GSOC - -### New business - -### Issues - -## Notes - -### GSOC - - waiting on review - - https://github.com/matplotlib/matplotlib/pull/28428 -- second PR, introduces VectorMappable to replace ScalarMappbale -- suggestion to have a higher-level wrapper that holds both the mappable and the colormap so that we can do coordinated updates - - also gives an escape hatch to do direct data -> color (without being forced through our norm concept) -- if we are going to go this route, doing it now seems good - - conflicts between availabilty vs GSOC timeline -- needs to do some review - - -### RSE -- Caswell - - starting to do review again -- Kyle - - start of text in the new system - - text has a lot of options, most are missing - - starting to think about documentation - - reviews -- Elliott - - working through open PRs - - 3.13 wheel PR is mostly ready - - working on Agg pybind11 - - reviews - -### SDG + CZI - - got it, will start work soon - - given no-cost extension from CZI - -### mplplaybook - -- down to adding 4 minutes to docs build -- [mpl-playback](https://github.com/matplotlib/matplotlib/pull/23441#issuecomment-2233128336) -- needs to not add to much time (less than 10 minutes) - - docs CI should not become the bottle neck -- needs to not add too much weight to output -- should hook into the "release mode" machinery -- hold off on waiting for SG to release with their fix - -### doc building - - discussion of why we build docs with the oldest version of Python we support - - will move to newest and see if we get speed ups - -### tag protection rules - - restirct push tags to (to-be-created release manager team) - - have already added a manual review step before wheels are uploaded to pypi - - -# July 18 -_attending_: @efiring, @ksunden, @QuLogic, @trygvrad, @story645, @rcomer - - -## Agenda -### old business -- [x] RSE -- [x] GSOC - -### New business -- [ ] scipy - -### Issues -- [ ] [mpl-playback](https://github.com/matplotlib/matplotlib/pull/23441#issuecomment-2233128336) - -## Notes -### GSOC -- is at 2/4 PRs for mvp - - [colormaps](https://github.com/matplotlib/matplotlib/pull/28454) - - [vectormappable](https://github.com/matplotlib/matplotlib/pull/28428) - - next: imshow w/ examples -- if `NormAndColor` mappable encapsulating color goes in (waiting on chat w/ @timhoffm) then can potentially hook in data and rgb interpolations - - find better names - -### Scipy - -# June 27 -_attending_: @efiring, @tacaswell, @ksunden, @story645, @QuLogic - -## Agenda -### Old business -- [x] RSE -- [x] GSOC - - Colormaps: https://github.com/matplotlib/matplotlib/pull/28454 - - VectorMappable: https://github.com/matplotlib/matplotlib/pull/28428 -### New business -- [x] 3.9.1 schedule -- [ ] 3.10 priorities - -## Notes -### GSOC -- PRs have been opened - - discusions about the API - - do we want to keep `ScalarMappable` around as anything other than a back-compat shim? - - keeping vector and scalar versions independent leads to duplicated / parallel classes (like old Qt4/Qt5 classes) - - some things that are currently ScalarMappable do not have sensible VectorMappable counter parts (e.g. contour) -- Try to get 's review of VectorMappable, otherwise normal PR rules - -### RSE -- Kyle: - - data prototype stuff, mostly fixed the units example - - GSOC work - - PR review -- Elliott: - - mostly 3.9.1 things - - moved some things from 3.9.2 to 3.9-doc - - review 3.9.1 PRs, looking at axvspan autolimit regression - - looked at CF build issues -- Tom - - on vacation last week, catching up this week - - some review, need to finish writing a grant report - -### 3.10 - -- target early October 24 -- goals - - GSOC work landing (Kyle and Hannah) - - image testing framework overhaul (Tom) - - work on mplgui (Tom) - - jupyter rfb backend landed (Elliott) - - Elliott has a list of PRs - - https://github.com/matplotlib/matplotlib/pull/23056 - - https://github.com/matplotlib/matplotlib/pull/23085 - - https://github.com/matplotlib/matplotlib/pull/24554 - - https://github.com/matplotlib/matplotlib/pull/24626 - - https://github.com/matplotlib/matplotlib/pull/24744 - - - - -### 3.9.1 target -- tomorrow (June 28) target date - -# June 20 -_attending_: @trygve, @QuLogic, @ksunden, @story645 - -### Old business - -- [ ] RSE -- [x] GSOC - -## Notes - -### GSOC -- can add testing by introducing colorbar/norm first -- package $n \times m \times l$ array as a $n\times m$ array with dtype tuple of length l - - pro: reduces input to 2D arrays for purpose of manipulation - - con: may require extra copies - - check: how data space interpolation is handled - -### translation: -#### cheatsheets: -- translating in a way where layout is respected -- how do I? construction not universal -- possibly examples or plot type gallery instead (for tooling) - -#### brochure: -- refactor into translation friendly version - -#### contribute: -- maybe write a short version: https://numpy.org/contribute/ - -### brochure site -- news section: revive https://github.com/matplotlib/mpl-brochure-site/pull/17 - - only show entries w/ a publish tag? - - do we want to keep discourse? - - -# June 13 -_attending_: - -## Agenda - -### Old business -- [x] RSE -- [x] GSOC -- [x] SDG -- [ ][name=hannah][homepage translation](https://github.com/matplotlib/mpl-brochure-site/issues/93) - - do we want to instead pilot the tooling on cheatsheets cause [demand](https://github.com/matplotlib/cheatsheets/pull/132) - -### new business - - [x] report from dev summit - - [ ] plan for 3.9.1 - - -## Notes - -### dev summit - -- about 40 people in Seattle -- lots of discussion about SPECs - - https://scientific-python.org/specs/ - - endorsed the two we already do (timeline + uploading nightly wheels) - - supply-chain related work relevant for us - - other are not relevant -- talked with Thomas Fan about WASM builds - - pyodide has updated build system so that projects can build - - have it working again, but font loading is broken - - our optimaztion settings make debugging hard (no symbols names) - - cibuldwheel can build wasm "wheels" without patches (but does not work) - - may need to be aware of filesystem sandbox - -### RSE - - SDG went - - data prototype - -### GSOC - - have a plan for how to organize PR in to work - - ongoing discussions of code organizations - -### 3.9.1 - - a TK bug which has been fixed - - sticky edges on bar bug (PR soon) - - add back cm.get_cmap - - some users did not see warning - - Tim has a PR to put it back - - Greg and Tom say to put back temporarily - - question about why users didn't see - - Tom: is this due to the warning class we use that users never saw it - - Greg: is this users jumping a bunch of versions - - other color related questions (behavior of color maps with int intputs) https://github.com/matplotlib/matplotlib/issues/28198 - - should we also add `lut=` to the mapping registry version? - -# ~~June 6~~ CANCELED - - - -# May 30 -_attending_: @efiring, @oceanwolf @QuLogic @tacaswell @story645 @IGuKs80UTJCig4yt6Zos7w (gregluca) @rcomer @ksunden - -## Agenda -### Old business -- [x] RSE -- [x] GSOC -- [x] SDG - due tomorrow 31st - -### New Business -### Issues & PRs -- [ ] [name=hannah][homepage translation](https://github.com/matplotlib/mpl-brochure-site/issues/93) - -## Notes -### RSE -- Elliott - - SDG writing - - reveiwing stalled new contributor PRs - - finish some high-dpi fixes for cairo -- Kyle - - thinking about grant stuff - - some review - - GSOC has started -- Tom - - grant stuff - - some issue review - - work on grant reports - -### GSOC -- breaking up current big PR into smaller chunks -- looking at git + rebasing tools to help with breaking up into parts - -### SDG - - has draft - - adobe is adding support to add alttext to images - - do what they do! - - discussion of details of raqm / freetype interaction - -### issues / PR - - translating the brochure page - - questions about how the tooling works - - how do the translations get maintained going forward? - - what is exit strategy? - - is this actually of value to anyone? - - @story645 will take point on sorting it out - -### CF -- work still needs to be done for 3.9 - - -# May 23 -_attending_: @efiring, @ksunden @tacaswell @story645 @QuLogic - -## Agenda -### Old business -- [x] RSE updates -- [ ] SDG state -- [ ] ROSES state - -### New business -- [ ] 3.9 release fallout? - - -## Notes -### RSE updates - - Tom - - avoid writing grants by responding to issues on GH - - Kyle - - also working on grant - - issues on github - -# May 16 -_attending_: @efiring, @QuLogic, @tacaswell, @ksunden, @story645 -## Agenda -### Old business -- [ ] RSE updates -- [x] GSOC update - -### new business - -- [x] 3.9 is out! -- [x] SDG followup - - -## Notes -### 3.9 - - we added an import that seems to break, but we think that is a local install issue. -- promote `:mpltype:` to be public (otherwise downstream packages that inherit our docstrings will break) - - what else do we need to make public? - - The set of thing that look like roles the show up in our source (generated via ``set($(ack ':[^:]*:`' -o -h --python).split())`` ) -``` -{'::`', - ':align:`', - ':alt:`', - ':attr:`', - ':caption:`', - ':class:`', - ':context:`', - ':data:`', - ':doc:`', - ':download:`', - ':envvar:`', - ':file:`', - ':format:`', - ':func:`', - ':height:`', - ':include-source:`', - ':math:`', - ':mathmpl:`', - ':meth:`', - ':mod:`', - ':mpltype:`', - ':nofigs:`', - ':program:`', - ':rc:`', - ':ref:`', - ':scale:`', - ':show-source-link:`', - ':sup:`', - ':target:`', - ':width:`'} -``` - -We think only rc, or mpltype need to be moved up. (@qulogic will do). - -## GSOC - -- Had kickoff meeting before start of main coding period (starts week after next) -- need plan for how to get in -- maybe do not do auto inference at all -- how to handle complex data? -- sequencing - - first PR: 1 norm, 1 colormap - - follow on PR: additional colormaps - - follow on PR: complex support - - follow on PR: add more norms - - follow on PR: how to combine VectorMappable and ScalarMappable? -- open questions - - don't have "over" and "under" but still need "in bounds" vs "bad" - - to handle out of bounds: - - fixed color - - pick "closest" point and use that - - cartesian or polar coordinates in color space? - - how to handle categorical - - legend/colorbar - - -## SDG - -- still being drafted -- focus on accessibility - - embedding alt text into output meta-data (as discussed last week) - - font overhaul work - - -## RSE update - - Tom - - grant work + avoiding grantwork by doing issue review - - Kyle - - some grant work, data prototype stuff - - Elliott - - Jury duty selectiono - - 3.9 release - - -# May 9 -_attending_: @tacaswell, @greglucas, @QuLogic, @ksunden, @story645, @trygve - -## Agenda -### Old Business -- [x] RSE -- [x] 3.9 -- [ ] 3.10 - -### New Business -- [ ] [name=hannah][numfocus small dev grant](https://numfocus.typeform.com/to/mbtH7w) due May 31st - -## Notes -### old business - - Kyle - - planning meeting for developer summit - - meet with a NASA project on Monday - - working on data prototype - - helping with on 3.9 wrapup - - Elliott - - developer summit meeting - - array protocol, supply chain validation work - - 3.9 doc wrapup - - mpl-sphinx-theme tagging - - waiting for backports - - maybe bug with old (>1yr) IPythons - - tag today or tomorrow - - Tom - - mostly off - -### small development grants -- Hannah will talk to Jni about feasibility of visual search -- hatches -- RFB work -- pull small/medium projects from CZI grant - - saving alt text in image metadata - - needs a plan for figuring out how screen readers read images - - Elliot is drafting proposal - - -# May 2 - -_attending_: @tacaswell @story645 Ian Thomas @ksunden @QuLogic - -## Agenda -### Old Business -- [x] RSE -- [x] 3.9 -- [ ] 3.10 - -### New Business - -## Notes -### old business -#### RSE - - Kyle - - writing new NASA grant work - - continuing interacitvity and contains in dataprototype - - GSOC has been annouced, got 1 slot, need to reach out to start work - - Elliott - - reviewing Ian's PR - - went through all the 3.9rc failures and opened issues or PRs for everything - - working on getting api changes / whats new rolled up - - do we want rc3? - - IPython is happy without one - - so no RC - - planning meeting for scientific python developers summit tomorrwo - - Tom - - some issue/PR review - - work on NASA grant. - -### New business - -#### anyone going to pycon -- Pavel (social media) and Chahak - -#### IPython integration - - almost done - - last thing for 3.9 final - -#### appveyor failures due to sphinx gallery -- due to upstream changes in sphinx/sphinx-gallery -- only see on appveyor because other CI systems do not install sphinx+sphinx-gallery - - install from conda environment file -- PR existing to fix it (#28103) - - -# April 25 - -_attending_: @tacaswell @QWhXj01mSwmTjk5kN1H_qQ (Eric) @QuLogic @ksunden @story645 - -## Agenda -### Old Business -- [x] RSE updates -- [x] GSOC updates - -### New Business -- [x] NASA propsoal -- [x] 3.9 status -- [ ] 3.10 piorities - -## Notes -### RSE updates -- Kyle: - - data prototype work, pushing on interactivity and contains - - issue / PR work - - some 3.9 issues down stream w/ Elliott -- Elliott: - - catch up from vacation - - no 3.9rc reports - - do we know if it actually being tested? - - ran rebuild in fedora - - https://copr.fedorainfracloud.org/coprs/qulogic/mpl39/builds/ vs https://copr.fedorainfracloud.org/coprs/qulogic/mpl39.checker/builds/ - - only 10/130 new failures due to our RC - - use of mpl.cm.get_cmap which was removed - - use of plt.cm.get_cmap - - new warning in python-mne (on legend with no entry) - - mplcursors text changed, fixed upstream need a release - - animatplot-ng sees effects of 3D limits change - - may have broken pandas (preexisting unrelated failure on fedora, so did not test) - - seaborn looks good with 3.9! - - https://www.pepy.tech/projects/matplotlib?versions=3.8.4&versions=3.8.3&versions=3.8.2&versions=3.9.0rc2 -- Tom - - more progress on NASA grant - -### GSOC - -- have submited our ranking -- not heard anything back - -### NASA - - headline projects - - cartopy to new data/artist model - - work into how to integrate into existing structued data in that space - - go all-in on pyodide (https://github.com/matplotlib/matplotlib/issues/27870) - - https://github.com/pyodide/matplotlib-pyodide both agg and htmlCanvas backends exist - - partner with a NASA mission to wrap interesting data - - lots of maintence and support - - -### 3.10 priorities - - colormapping work - - - - -# April 18 - -_attending_: @tacaswell @ksunden @QWhXj01mSwmTjk5kN1H_qQ (Efiring) @story645 - -## Agenda - -### Old business -- [ ] RSE - -### New Business -- [x] [name=hannah] noting meeting attendance -- [ ] [name=hannah] [dedup hatch validation](https://github.com/matplotlib/matplotlib/pull/28076) - -## Notes -### RSE - - Tom: - - grant work - - issues review - - Kyle - - little bit of issues review - - data prototype work - -### attendance -Please remember to take attendance at meetings - -### hatch validation -* https://github.com/matplotlib/matplotlib/pull/28076 - - -### Data prototype - -Just in time data + encoding and transform graph = visualizing large high dimensional multivariate datasets more consistently in less lines of code. - -just in time computation: -1. computational graph w/ delayed evaluation -2. querying and subsampling such that: - 1. computational datasets can be shown at various resolutions - 1. only subset needs to be loaded in memory/visualized - -dynamic encoding: -1. more consistent way to give mappings in multiple artists ([Hullman & Qu](https://ieeexplore.ieee.org/abstract/document/8017651/)) -2. treats the data fields more consistently with respect to encodings - -property syncing on artist: -1. artists can be reused -2. don't need to be manually updated individually - -why graph: -1. doing transformations, need to maintain/keep track of order for consistency -2. its inspectable in a way current isn't -3. can be broken down into smaller chunks, can add custom mapping -4. moves current implementation graph to data structure - -tradeoff: -1. lots of encodings across different axes and artists - easier to reuse/share be - * it's currently named different things in different artists - * attaching the encoding function/mapping/$\nu$ to the artist - * ex: color coding by category in line and scatter plot - -Draw time querying + reducing the amount of info artists need to know about themselves facilitates real time data and reusing parts of the visualization. - -# April 11 - -_attending_: @tacaswell @jklymak @pXw4hSgTQF2--OciPYwa1w @QWhXj01mSwmTjk5kN1H_qQ (Anntzer), @IGuKs80UTJCig4yt6Zos7w (Efiring) @ksunden @QWhXj01mSwmTjk5kN1H_qQ - -## Agenda - -### Old business -- [x] RSE updates -- [x] GSOC/GSOD - -### New business -- [x] [name=tacaswell] default to RGBA stage interpolation https://github.com/matplotlib/matplotlib/issues/21167 -- [ ] [name=saranti] [orientation parameter to violinplot](https://github.com/matplotlib/matplotlib/pull/27998) - -## Notes -### grant recap -### RSE updates - - Kyle - - data prototype - - clipping and images in new system - - some 3.9 - - GSOC - - Tom - - grant stuff - - review - -### GSOC updates - - reviews mostly done - -### RGBA interpolation -- should remove clipping anyway -- should look Antony's suggestion of how to filter AA's data to clean up "fuzz" on constant data -- look into making the deault interplotaion stage depend on ratio between data pixels and screen pixels -- conclusion: - - we will look at how to add an 'antialiased' interpolation stage - - use same criteria as current antilaised flip - - data space when upsampling - - RGBA spacing when down sampling - -# April 04 -_attending_: @efiring, @ksunden, @tacaswell, @rcomer, @story645, @timhoffm, @QuLogic - -## Agenda -### Old business -- [x] RSE updates -- [x] GSOC / GSOD updates - -### New business - -- [x] 3.8.4 out! -- [x] 3.9.0 status? -- [x] NASA ROSES 2024 F7 -- [ ] Colorbar snapping https://github.com/matplotlib/matplotlib/pull/26307 - -## Notes - -### old -#### RSE updates - -Kyle: - - got 3.8.4 out - - general review - - data-prototype work - - thinking about next NASA grant - -Tom: - - NASA grant - - issue / bug review - -Elliott: - - prep for 3.9 - -#### GSOC / GSOD - - missed GSOD deadline - - GSOC - - have 6 propsoals, look good - - (not including detailed notes as these are public and do not want to break GSOC rules) - - need more mentors - -### new -#### 3.9.0rc status - - was waiting on 3.8.x mergeup - - should branch and tag today - -#### NASA funding -- trying to make formal friends -- looking for citations from all SMD -- looking for reviewers -- cartopy may also may be putting one in - -#### singular colorbars - - https://github.com/matplotlib/matplotlib/pull/26307#issuecomment-2038181561 - - -# March 28 -_attending_: @efiring, @ksunden, @story645, @trygvard, @QuLogic, - -## Agenda - -### old business - -- [X] RSE updates -- [x] [name=hannah] GSOC apps due April 2nd, 1800UTC (next Tuesday) - -### new business - -- [ ] [name=ksunden] Last item I'd like for 3.8.4 [#27955](https://github.com/matplotlib/matplotlib/pull/27955) - -## Notes - -### RSE -- qulogic: working on Mac bugs; other PR reviews to finish off 3.9 -- ksunden: also working on Mac bugs; tracking numpy 2; pybind11 fix for np2 released; all of blockers are gone for np2 micro-release; Ian released contourpy for np2; work on data prototype (lines, clipping, images); thinking about next NASA grant. - -### New business - - - - -# March 21st - -_attending_: @efiring, @ksunden, @QuLogic, @trygvard, @story645 - -## Agenda - -### old business - -- [ ] RSE updates - -### new business - -- [ ] [name=timhoffm] https://github.com/matplotlib/matplotlib/pull/26307 - -## Notes - -### RSE -- qulogic: m1, pybind11, wrapping up 3.9, bouncing tasks to 3.10 -- ksunden: - - pybind11, numpy 2.0, m1 (ksunden has it locally), - - dataprototype - dijkstra's algorithm & visualizing graph -- 3.9 : beta/rc soft deadline is next week -- 3.8.4: numpy2.0 compliance, is on numpy timeline - -### singular colorbars -- milestoned to 3.9, needs a decision from @tacaswell and @timhoffm - -### multivariate colorbars -- gsoc proposal draft, scope of project & components - -### 3.9 followups -- follow up about sphinx-tags multiline -- - -# March 14th - -_attending_: @tacaswell, @efiring, @timhoffm, @QuLogic, @ksunden, @rcomer, @story645, @artemkislovskiy - -## Agenda - -### old business - -- [x] RSE updates -- [ ] [name=hannah] steering council deadlines/turnaround - - discuss at end of call - -### new business -- [x] numpy 2.0 status -- [x] 3.8.4 release? -- [x] 3.9 status -- [x] [name=QuLogic] [Cursor coordinates on twinned Axes](https://github.com/matplotlib/matplotlib/pull/25556) -- [x] [name=QuLogic] [Avoiding levels in AutoDateLocator](https://github.com/matplotlib/matplotlib/issues/26363) -- [x] [name=QuLogic] [Decide what to do with `cycler` duplicates](https://github.com/matplotlib/matplotlib/issues/26868) -- [x] [name=QuLogic] [Return filename from save_figure](https://github.com/matplotlib/matplotlib/pull/27766) -- [x] [name=Hannah] [branch protection w/ labels](https://github.com/matplotlib/matplotlib/pull/27668) -- [x] [name=Tim] [Revert renaming labels to tick_labels in boxplot_stats()](https://github.com/matplotlib/matplotlib/pull/27916) - -## Notes - -### Intros - -### RSE updates - -- Elliott - - mostly getting ready for 3.9 - - macos M1 CI jobs (lots of low tolerance image failures) - - big triage push of 3.9 issues/PRs - - took out 1/3, lots of docs left so not blockers for branching - - pushed updates / rebases to existing PRs -- Kyle - - 3.9 wrap up work - - continuing work on data prototype work - - numpy 2.0 fallout - - mostly via pybind11, but may need to add a #define - - some waiting on dependencies - - in trianuglation and non-default contouring modes -- Tom - - 3.9 help - - issue/PR review - -### numpy 2.0 status - -- holding pattern for now - -### 3.8.4 release - -- main reason is for numpy -- waiting for pybind11 to sort some stuff out for 3.8.4rc - -### PR review - -- twinned axes cursors - - https://github.com/matplotlib/matplotlib/pull/25556 - - last discussed 8mo ago - - call likes the examples, will merge when test pass -- internals of autodatelocator logic - - issue is if one of the levels is empty skip - - API wise it makes sense to be able to skip levels - - take propsoed patch, look into fallout in this particualr case off call -- two cyclers - - we re-export `cycler` from `cycler` and we have a custom wrapper of `cycler` that does extra validation - - also have a PR that cleans up imports and removes aliases - - questions - 1. should we still have both? - 2. should we expose either - - we do not use `plt.cycler` internally - - is in a whats-new - - our trend is to simplify so don't import - - but pyplot should be mostly self-contained and a cycler is useful for setting rcparams - - set_propcycle will make the cycler for you - - on net, deprecate - - consensus - - deprecate, but be willing to back off if disruptive -- return value of toolbar.save_fig - - nice way to do this (matches most dialog implementations): - - `None` -> No file saved - - SENTENIL -> can't tell if a file was saved - - happy-path -> string to path - - implementation (backwards compatible paranoid safe) - - `None` -> don't know if a file was savef - - SENTINEL -> actively did not save - - happy-path -> string to path - - currently return `None` everywhere - - proposed implemenatio n - - one usecase - - https://github.com/kivy-garden/garden.matplotlib/blob/024d5c47f86577873de0939c169f369dd46ba595/backend_kivy.py#L939-L940\ - - consenus - - go with the "nice way" - - make sure API change note is clear that thrid-party backends will have to implement this - - open an issue with Kivy backend when merged - -- branch label rules - - consenus - - try it out - - previously talked about on call and we agreed to do it - - no user facing impact, low risk and we can always turn it off if we hate it -- bxp tick label revert - - https://github.com/matplotlib/matplotlib/pull/27916 - - the parameter name and then key in the returned dict no longer match - - attempt was made to replace dict with DataClass, but gets messy in this case - - propsoal: - - leave bxp_stats alone - - migrate to something more static in the future - - consenus - - go with this - - also change the docstring to be clearer what it is - -### SC timeline -- one week response window then ping once a week - -# March 7th -_attending_: @tacaswell, @QWhXj01mSwmTjk5kN1H_qQ (efiring), @rcomer, @ksunden, @story645, @QuLogic, @timhoffm - -## Agenda - -### old business -- [x] RSE -- [x] 3.9 - -### new business -- [x] [name=tacaswell] grant updates -- [x] [name=hannah] triage team - -### Issues and PRs - -## Notes - - -### RSE updates - -Kyle: - - putting is scipy talk propsoal (on dataproto type) - - data prototype work, thinking about Artist class tree - - QoL improvements in repo to make less verbose - - issue and PR review - - pushing on yet more mac OSX segfaults / objectiveC level exceptions - - new or pre-existing? Hard to go back to old versions of OSX so very hard to debug - - behavior is as documented, but did not notice this behavior before - - only see when running as a subprocess, test was marked xfail because flaky, lightly tested / under used feature (singleshot timers), test sometimes passes before object crashes - - subtle interaction with Python GC to produce an invalid pointer -Elliott: - - Catching up from forced vacation - - bit more pybind11 work (waiting for cgywin test to pass (just merged!)) - - started to work on performance benchmarks - - working on windows + arm box - -Tom: - - some issue review + scipy talk discussions - -### 3.9 updates - -- worked on clearing out milestone yesterday -- no major items that should get a madrush to get in -- RC in 2 weeks - - how does this interact with numpy 2.0 - - do not hold our RC for numpy beta - - do another RC as soon as they have an RC - - hold our 3.9 final for numpy2.0 rc -- david got new pydata sphinx theme working, please look at devdocs due to big changes in upstream themes - - use social to drive eyeballs at this - -### numpy 2.0 - -https://github.com/numpy/numpy/issues/25918#issuecomment-1980214917 - -- asking for sequence of: - - numpy beta - - mpl/scipy/... rc (of _something_) - - numpy rc - - mpl/scipy/... finals (of something) - -### grant updates - -### triage team - -SC needs to be prompt or delegate authority - -### repo to hold API automation from social - -- good idea, start in @story645 's account and migrate when working - - -### DST is coming - -Remember we follow the German schedule. - -### rgba nan handling + extra copies - -https://github.com/matplotlib/matplotlib/pull/27848 - - -Conclusion: only copy if we have to mutate the user input - -# 29 Feb 2024 - -_attending_: @ksunden, @QuLogic, @tacaswell, @story645 - -## Agenda - -### old business -- [x] RSE reports -- [x] 3.9 progress - -### new business - -## Notes - -### RSE report -- Tom: swamped with other work -- Kyle: - - preparing for scipy submissions - - getting examples in data-prototype working again - - issue triage / PR review -- Elliott: - - on vacation - - made progress on pybind11 work, no PR yet - - -### 3.9 - -- Still looking on target for RC in March -- currently 73 open things in milestone - -### numpy 2.0 - -- things are going slowly -- do micro release when rc to drop upper pin - -# 22 Feb 2024 - -_attending_: @efiring, @ksunden, @QuLogic, @greglucas, @story645 - -## Agenda - -### Old business - -- [x] RSE reports -- [x] 3.9 progress -- [x] scipy tutorial planning - -### new business - -## notes - - - -### PRs -- [x] [name=hannah] [seperate edgecolor + hatchcolor](https://github.com/matplotlib/matplotlib/pull/26993) -## notes - -### RSE reports -- ksunden: macOS, data prototype, general issue & PR review -- qulogic: pr review, finished animation->vid in docs (needs sphinx gallery reviews) - -### separate edge + hatch - -- setting hatch.color to 'inherit' from edgecolor - - needs an API behavior note probably -- use facecolor tracking edgecolor as model -- on set alpha adjust hatch color? - - needs an API behavior note probably -- setting alpha after setting edgecolor will overwrite current, preserve with users hatchcolor -- Check for parallel behavior, if possible, between Patch and Collection. - -### side convo on hatch api -- figuring out which customizations to allow - color, density, etc - - https://github.com/leejjoon/mpl-pe-pattern-usgs - - https://github.com/leejjoon/mpl-pe-pattern-monster -- custom registry to allow strings but avoiding naming conflicts -- similar to MarkerStyle -> HatchStyle -- SDG scope/level project - -### pybind11 review -- can we go through w/ one proficient in pybind11 reviewer? - - can we just get through with "is this ported correctly?" -- benchmarking? diff --git a/meeting_notes/2024/july2023_feb.md b/meeting_notes/2024/july2023_feb.md deleted file mode 100644 index f8b899e..0000000 --- a/meeting_notes/2024/july2023_feb.md +++ /dev/null @@ -1,1898 +0,0 @@ -# Matplotlib Weekly Meeting - -[![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. - -## 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](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) - -``` -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 - -- [x] RSE reports -- [x] 3.9 progress -- [x] scipy tutorial planning - -### new business - - - [x] 3.7 and 3.8 micro release - -### PRs - - [ ] [name=hannah] [violinplot color API](https://github.com/matplotlib/matplotlib/pull/27304) - -## 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 - - https://github.com/matplotlib/interactive_tutorial exists and likly still works - - 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 - -- [x] RSE reports -- [x] 3.9 progress reports - -### New business -- [x] [name=ksunden] Locking down/deleting the Github wiki -- [x] [name=greglucas] Scipy plans https://www.scipy2024.scipy.org/ - -### Issues and PRs -- [x] [name=QuLogic] [bump minimum NumPy requirement](https://github.com/matplotlib/matplotlib/pull/26800) -- [ ] [name=hannah] [using labels for "don't merge"](https://github.com/matplotlib/matplotlib/pull/27668) -- [ ] [name=hannah] [usage content guide](https://github.com/matplotlib/matplotlib/pull/26389) - - [rendered page](https://output.circle-artifacts.com/output/job/4770a68d-dcb5-446e-8ca5-b58000f4e974/artifacts/0/doc/build/html/devel/document_content.html) - - -## 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 - -- [x] final decision on GSOC -- [x] RSE reports -- [x] 3.9 progress reports - -### New business -- [x] [name=hannah] [using labels for "don't merge"](https://github.com/matplotlib/matplotlib/pull/27668) - -### Issues and PRs -- [ ] [name=QuLogic] [bump minimum NumPy requirement](https://github.com/matplotlib/matplotlib/pull/26800) (to next week) -- [x] [name=hannah] [user/project to project](https://github.com/matplotlib/matplotlib/pull/27560) -- [ ] [name=hannah] [usage content guide](https://github.com/matplotlib/matplotlib/pull/26389) (to next week) - - -## 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 -- [x] RSE reports -- [x] 3.9 progress report - -### New business -- [x] GSOC: numfocus deadline is Feb 5th - - [ ] https://github.com/numfocus/gsoc/tree/master/2024 - - [ ] https://summerofcode.withgoogle.com/programs/2024 -### Issues and PRs -- [x] [Make singular colorbars consistent with single-value mappables.](https://github.com/matplotlib/matplotlib/pull/26307) -- [x] [Add `U`, `V` and `C` setter to `Quiver`](https://github.com/matplotlib/matplotlib/pull/26410) - API question on setter for UVC/data/offsets -- [x] [Add widths, heights and angles setter to EllipseCollection](https://github.com/matplotlib/matplotlib/pull/26375) - getters? -- [ ] [Added optional props argument to Lasso Widget `__init__` to customize Lasso line](https://github.com/matplotlib/matplotlib/pull/26594) -- [ ] [Fix - -legend entries](https://github.com/matplotlib/matplotlib/pull/27568) -- [ ] [Fix behaviour of Figure.clear() for SubplotParams](https://github.com/matplotlib/matplotlib/pull/27183) -- [ ] [Allow linear scaling for marker sizes in scatter](https://github.com/matplotlib/matplotlib/pull/25259) - -## 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 -- [x] RSE reports -- [x] 3.9 progress report - -### new business - -- [x] backend + ipython https://github.com/matplotlib/matplotlib/issues/27663 -- [x] adopt EffVer https://jacobtomlinson.dev/effver/ -- [x] [name=hannah] [violinplot color parameters](https://github.com/matplotlib/matplotlib/pull/27304) -- [x] [name=hannah] [stream plot n_arrow](https://github.com/matplotlib/matplotlib/pull/27617) -- [ ] [name=greglucas] macos warning out of our control? ([27389](https://github.com/matplotlib/matplotlib/issues/27389)) -- [ ] start next weeks note -> date + field at end of meeting - -## 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 -- [ ] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/27310 -- [ ] [name=greglucas] [QuadMesh nan vertices](https://github.com/matplotlib/mplcairo/pull/54) Different backends treat the quads differently. Would we want to assert anything in how this is handled? - -## 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 - - https://github.com/matplotlib/matplotlib/pull/22699 - - merged -- https://github.com/matplotlib/matplotlib/pull/27310 - - meant to leave comment last week, now posted -- https://github.com/matplotlib/mplcairo/pull/54 - - we should let quadmesh and the functions that call them take `np.nan` in x/y - - should poison entire quad that the nan is in -- https://github.com/matplotlib/matplotlib/pull/27563 - - merged -- https://github.com/matplotlib/matplotlib/pull/27624 - - needs a bit more work -- https://github.com/matplotlib/matplotlib/pull/27618/ - - switch back to py39 - - remove broken to prove broken commit -- https://github.com/matplotlib/matplotlib/pull/27552 - - need to add note about how to run with `python -m pytest` -- https://github.com/matplotlib/matplotlib/pull/27230 - - @IGuKs80UTJCig4yt6Zos7w will look at -- discussion about managing font caches - - ensure that cache is generated docs - - add a CLI to font manager to help with cache genartion / clearing / locating - - maybe add a mode to only use fonts we shpsic - -# 4 Jan 2024 -@tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ (@efiring) @IGuKs80UTJCig4yt6Zos7w (@greglucas) @QuLogic -## Agenda - -### Old Business -- [x] Meeting time discussion - -### New Busines - - [x] RSE reports - - [x] 3.9 target date - - [ ] -### Issues and PRs - -- [x] [name=QuLogic] https://github.com/matplotlib/matplotlib/pull/27310 -- [x] [name=Hannah] [Content guidelines](https://github.com/matplotlib/matplotlib/pull/26389) -- [ ] [name=greglucas] [QuadMesh nan vertices](https://github.com/matplotlib/mplcairo/pull/54) Different backends treat the quads differently. Would we want to assert anything in how this is handled? - -## 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 - - https://github.com/numpy/numpy/issues/24300 - - do a 3.8.x along with numpy's 2.0 rc to drop the pin - - this lets us de-couple mpl3.9 from numpy2.0 - - 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 -- [x] Meeting time discussion - -### New Busines -- [x] RSE reports -- [x] data prototype slides -- [x] pydata armenia sprint? -- [x] 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 -- [ ] Meeting time discussion - - https://whenisgood.net/22qgxi3/results/bb7san5 - - Thurs 2:00PM (EST) seems to be the current fave - -### New Business -- [ ] RSE reports -- [ ] [name=hannah] GSOC 20th anniversary - - https://opensource.googleblog.com/2023/11/google-summer-of-code-2024-celebrating-20th-year.html - - For the 2024 program, there will be three options for project scope: - - medium at ~175 hours - - large at ~350 hours - - new size: small at ~90 hours - -### Issues and Prs -- [name=hannah] [move {install/project/releases} out of users/](https://github.com/matplotlib/matplotlib/issues/27396) - - follows from [moving doc root](https://github.com/matplotlib/matplotlib/pull/26332), `match(folder structure, index)` - - as consequence user/ can be sphinx gallery containing explain & getting started, which means no more symlink (which creates confusion of what to edit) -- [name=hannah] https://github.com/matplotlib/matplotlib/pull/27265 - -## 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: -- https://opensource.googleblog.com/2023/11/google-summer-of-code-2024-celebrating-20th-year.html -- 20th anniversary -- New lowest 90h project level -- anyone interested in mentoring? - -### 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 @pXw4hSgTQF2--OciPYwa1w - -### Old Business -- [x] Meeting time discussion - - https://whenisgood.net/22qgxi3 -- [x] [name=QuLogic] Move `Contribute` to devdocs? - - Review for change is here: https://github.com/matplotlib/matplotlib.org/pull/36 - - Test server is at: https://mercury.matplotlib.org/stable/ - - -### New Business -- [x] RSE reports -- [x] how to inject units - -### Issues and PRs -- [x] [name=hannah] dev docs prs - - [x][move dependencies to install](https://github.com/matplotlib/matplotlib/pull/27395) - - [x][finish out reorganizing devdocs](https://github.com/matplotlib/matplotlib/pull/27265) - - [x][add collection-fontsrecommend](https://github.com/matplotlib/matplotlib/pull/27282) -- [x] [name=hannah] [matplotlib.org: make contributing more prominant](https://github.com/matplotlib/matplotlib/pull/27282) -- [x] [name=hannah] [patheffects rcParam + xkcd style](https://github.com/matplotlib/matplotlib/pull/26854) - -## 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 -- [x] RSE reports -- [x] discussion about moving time of standing meeting -- [x] [name=hannah] [PyData Global](https://pydata.org/global2023) sprints Dec 6-8 - -### Issues and PRs -- [x] [name=hannah] [stix license](https://github.com/matplotlib/matplotlib/pull/27316) -- [x] [name=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 -- [x] RSE updates -- [x] 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 - - [x] RSE reports - - [x] GSOD update - -### Old business - -### Issues and PRs -- [x] [name=raphaelquast] [overlapping axes](https://github.com/matplotlib/matplotlib/pull/27148) -- [ ] [name=raphaelquast] webagg improvements: [27160](https://github.com/matplotlib/matplotlib/pull/27160) -- [ ] [name=hannah] [humor sans to xkcd](https://github.com/matplotlib/matplotlib/pull/27299) - - fork font? https://github.com/dummy-index/xkcd-font/raw/brushup/xkcd-script/font/ <-unmaintained fork -- [ ] [name=hannah] [path/xkcd](https://github.com/matplotlib/matplotlib/pull/26854#issuecomment-1804098144) - - deperecate xkcd? interaction with [sketch seed](https://github.com/matplotlib/matplotlib/pull/26050) - -## 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 - - - [x] RSE reports - - [x] GSOD update - - https://matplotlib.org/devdocs/devel/tag_guidelines.html - - https://matplotlib.org/devdocs/devel/tag_glossary.html - - [x] invited for full CZI EOSS6 propsoal - -### Old business - - - [x] RFB update - - [ ] [name=tacaswell] mpl-gui - -### Issues and PRs -- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) - - 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? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [ ] [name=rcomer] [Absolute values for pie](https://github.com/matplotlib/matplotlib/pull/25757) 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 - -- [x] RSE reports -- [x] GSOD -- [x] [name=QuLogic] Jupyter-RFB proof of concept - -### Issues and PRs - -- [x] [name=hannah] [standard internal variable name for transforms](https://github.com/matplotlib/matplotlib/issues/22156) - - do we want to standardize? if so which names? document this? - -## 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 - - going well - - need to get PR merged by Tuesday for the sprint (so we can point at devdocs) -- tagging guidelines: https://github.com/matplotlib/matplotlib/pull/26851 -- how tags look in gallery: https://github.com/matplotlib/matplotlib/pull/27083 - -### 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 - -- [x] RSE reports -- [x] GSOD -- [x] Zenodo citation - -### Issues and PRs -- [x] [name=ksunden] [hexbin mincnt](https://github.com/matplotlib/matplotlib/issues/27103) -- [ ] [name=jklymak] [Logging versus warning vs...](https://github.com/matplotlib/matplotlib/issues/23422) and for [legend](https://github.com/matplotlib/matplotlib/issues/27145) - - 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? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [ ] [name=hannah] [standard internal variable name for transfroms](https://github.com/matplotlib/matplotlib/issues/22156) - - do we want to standardize? if so which names? document this? -- [x] [name=hannah] maybe sprint/good-first-issue project: [quoted rcParams](https://github.com/matplotlib/matplotlib/issues/3670) - -## 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 - -- [x] RSE reports -- [x] GSOD - -### Issues and PRs -- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) - - was there consensus last week? -- [x] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) - - feedback on whether this is feasable -- [x] pytest + meson conflict? - - -## 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 -- [x] RSE reports -- [x] GSOD: - - https://github.com/matplotlib/matplotlib/pull/26851 - - https://pydata.org/nyc2023/about/ Oct 31st -- [x] [name=hannah] hacktober policy - -### Issues and PR: - -- [x] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [x] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [x] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [name=oscargus] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) -- [x] [name=hannah] [mypy pre-commit hook](https://github.com/matplotlib/matplotlib/pull/26954) -- [x] [name=hannah] [axisartist tables](https://github.com/matplotlib/matplotlib/pull/26754) - - grid tables vs list tables -- [ ] [name=hannah] [list of dicts path.effects param](https://github.com/matplotlib/matplotlib/pull/26854) - - is this a viable direction to go in? -- [x] [name=ratna] Review needed.. [Stix table update](https://github.com/matplotlib/matplotlib/pull/26830/) -- [x] [name=haoying] [QuiverKey error](https://github.com/matplotlib/matplotlib/issues/26316/) - - Clarification of ``angle`` in [doc](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.quiverkey.html) - -## 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 -- refactoring based on feedback -- tagging sprint Oct 31. +general Matplotlib sprint pydata NY. -- https://github.com/matplotlib/matplotlib/pull/26851 review - -### 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 -- [x] GHC - -### New Business -- [x] RSE reports -- [x] GSOD: https://github.com/matplotlib/matplotlib/pull/26851 -- [x] [name=hannah] hacktober - -### Issues and PR: - -- [x] [name=jklymak] [timedelta64 support](https://github.com/matplotlib/matplotlib/pull/19236) -- [ ] [name=jklymak] [contour: allsegs, alltypes](https://github.com/matplotlib/matplotlib/issues/26913) remove depreaction? -- [ ] [name=jklymak,anntzer] [access to colorbar's formatters/locators](https://github.com/matplotlib/matplotlib/issues/26896) -- [ ] [name=jklymak] mpl-gui? https://github.com/matplotlib/mpl-gui -- [x] [name=oscargus] Rename "topic: types" to "topic: typing"? - - Objections? -- [ ] [name=oscargus] [Typing of values ending up in Text](https://github.com/matplotlib/matplotlib/pull/26867) - - Text converts to str independent of input data - - Type as Any, document as str as @timhoffm suggests? (Makes sense to me.) -- [ ] [name=oscargus] [set/get_linestyle and dashed and ...](https://github.com/matplotlib/matplotlib/pull/23056) - - If I have time to prepare a presentation and @timhoffm is present -- [ ] [Symlog hexbin](https://github.com/matplotlib/matplotlib/pull/22718) - - Review needed, long waiting (make sure it is squash-merged) - -## 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? - - will help evaluate how the tags are understood - -``` .. tags:: tag1, tag2``` - - sample: https://napari.org/stable/gallery.html -### 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: -- useful to rethink ways to lock out Locators and Formatters that are incompatible with a given unit converter so users are not confused when locators and formatters don't work. -- https://github.com/matplotlib/matplotlib/issues/24951 - -------- - -# 21 September 2023 - -## Agenda -_attending_: @efiring, @ksunden, @tacaswell, @rcomer, @trygve, @haoyingzhanh, @jklymak, @devrd, @QuLogic, @story645 - -### Old business - -### New Business -- [x] RSE updates -- [x] GSOD updates - - https://github.com/matplotlib/matplotlib/pull/26851 -- [x] 3.8 release - - typing fallout? - - [pandas](https://github.com/matplotlib/matplotlib/issues/26858) -- [x] GHC OSD prep - - [ ] https://github.com/matplotlib/matplotlib/pull/26859 -- [x] [name=hannah] [merge with single review label](https://github.com/matplotlib/matplotlib/labels/status%3A%20merge%20with%20single%20review%3F) -- [x] numfocus summit comments - -### Issues and PRs -- [ ] meta-limits https://github.com/matplotlib/matplotlib/issues/26442 - - -## 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 - - 3.8 fallout - - CI automation - - trusted-publishing on cycler - - meson - - https://github.com/matplotlib/matplotlib/pull/26621 - - makes c-extension work way easier - - cirrus CI - - https://github.com/matplotlib/matplotlib/pull/24597 - - currently passing, but numpy has been hitting caps - - GHC OSD prep - - have a lot of "good first issue" PRs - - add issue for removing deprecations - -### 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 -- [x] Steering team? - -### New business -- [ ] RSE updates -- [ ] GSOD updates - -### Issues and Pull requests - -- [ ] [name=hannah] [move coc into users/project](https://github.com/matplotlib/matplotlib/pull/26702) - - motivation is new landing page [about us](https://matplotlib.org/devdocs/#about-us) -- [ ] [Multivariate colormapping](https://github.com/matplotlib/matplotlib/issues/14168#issuecomment-1719170227) - -## 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 -- [x] [name=hannah] [ipympl small dev grant](https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA) - -### New business -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] [name=hannah] [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) -- [x] add steering council [github team](https://github.com/orgs/matplotlib/teams) - - would allow for finer grained permissions on governance - -### pull requests -- [ ] MPL GUI: https://github.com/matplotlib/mpl-gui Perhaps move to integration soon? - - - -## Notes - -### ipympl small dev grant? -- $10k... -- ipympl more usable, and similar as possible to other backends. -- limitation now: can't act on previous plot? -- compare w/ other similar backends -- won't submit on this cycle, instead gather more info for submitting different round or as a larger grant -- https://github.com/pyodide/matplotlib-pyodide -- https://github.com/matplotlib/ipympl - -### 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 -- will want to go for that, as much as we can get. -- [CZI EOSS round 6](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) -- https://chanzuckerberg.com/wp-content/uploads/2023/08/EOSS-6-RFA-Packet-Final.pdf -- Maintenance of the project -- Steering council will discuss plans going forward. - - - - ----- -# 31 August 2023 - -_attending_: @efiring, @IGuKs80UTJCig4yt6Zos7w @haoyingZhang, @story645 @QuLogic @devRD @timhoffm - -## Agenda - -### Old business - -### New business -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] 3.8rc -- [x] [name=hannah] pydata NYC, Nov 1-3 -- [x] [name=hannah] small dev grant, Sept 8 -- [x] [name=hannah] streamline approval of triage additions -- [ ] @qlogic PyCharm issue - -### Pull requests -- [ ][name=hannah] [barh dict key](https://github.com/matplotlib/matplotlib/pull/26577) - -## 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, spaced--looking 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. -- https://github.com/matplotlib/matplotlib/pull/23441 -- https://github.com/matplotlib/matplotlib/pull/22634 -- https://github.com/pyodide/matplotlib-pyodide - -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. - - https://hackmd.io/NngZP7hTRVuPPHcnNFx8OA - -### 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 - -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] 3.8rc -- [x] 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 - -- [X] RSE updates -- [X] GSOC/GSOD updates -- [X] 3.8rc -- [X] 3.9 -- [x] small dev grant https://numfocus.org/programs/small-development-grants - -## 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 - - Oscar: https://github.com/matplotlib/matplotlib/pull/26522 Do we need better validation? - -### 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 -- mpl-playback: https://github.com/matplotlib/matplotlib/pull/23441 - - -# 10 August 2023 - -_attending_: @efiring, @rcomer, @ksunden, @melissawm, @oscargus, @haoyingZhang, @devRD, @QuLogic, @story645, @chahakmehta, @anntzer, @tacaswell - -## Agenda - -### Old business - -### New business - -- [x] RSE updates -- [x] GSOC/GSOD updates -- [x] NF summit -- [x] 3.8rc1 is out! -- [x] 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 - - - [x] RSE updates - - [x] GSOD / GSOC updates - - [x] 3.8 rc?! - - [ ] where to put the GSOD output: [organize docs devdocs](https://github.com/matplotlib/matplotlib/issues/26392) - -## 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 - -- one PR from @QuLogic with lots of little type hint fixes https://github.com/matplotlib/matplotlib/issues/26407 -- tonight or tomorrow - -### 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 - - - [x] RSE updates - - [x] [name=hannah] [Simple Icons permission](https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746) - - [x] [name=hannah] [new docs labels](https://github.com/matplotlib/matplotlib/labels?q=document) - - [ ] 3.8 outstanding issues - -### PRs and Issues - -- [x] [name=ratna] Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 -- [ ] [name=raphael] pan/zoom of overlapping axes https://github.com/matplotlib/matplotlib/pull/22347 -- [ ] antialiasing in mathtext https://github.com/matplotlib/matplotlib/pull/26376 - - -## 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 -- Hrule rendering: https://github.com/matplotlib/matplotlib/issues/23763 - - maybe clarify issue more - - contact @anntzer with write up of problem and potential repair paths - -### tiny icon -- https://github.com/simple-icons/simple-icons/issues/3410#issuecomment-671602746 - - trademark issue? - - numfocus? - - https://github.com/simple-icons/simple-icons/blob/develop/DISCLAIMER.md -- [x] @story645 emailed Numfocus & CCed steering-council - -### 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 -- https://github.com/matplotlib/matplotlib/pull/22347 - -### mathtext anti aliasing? -- needs review -- 3.8? -- https://github.com/matplotlib/matplotlib/pull/26376 - - - - diff --git a/meeting_notes/2025/2025_01_jan.md b/meeting_notes/2025/2025_01_jan.md new file mode 100644 index 0000000..8978d93 --- /dev/null +++ b/meeting_notes/2025/2025_01_jan.md @@ -0,0 +1,200 @@ +# Matplotlib Weekly Meeting: January 2025 + +###### tags: `2025 dev call` + +--- + +# January 9, 2025 + +_attending_: @greglucas, @efiring, @story645, @tacaswell, @rcomer, @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) @timhoffm + +## Agenda +### old business +- [x] 3.10 doc tweaks +- [x] NASA updates +- [x] RSE updates + +### new business + +## Notes + +### RSE updates +- Tom + - time off + - python-build-standalone + - https://github.com/astral-sh/uv/issues/6893#issuecomment-2565965851 + - some review +- Kyle + - some time off + - working on planning the next 2 months of work + - catch up + +### what big stuff is in the pipe? + - bivariate colormap (has PR, needs review) + - bezier work (from Bruno) + - PR to vectorize 3D code + - some have been resurected by Scott + - font work! (raq) + - groupbar chart + - what artists get a label attribute + - start to look at ticks + + +### [labels](https://github.com/matplotlib/matplotlib/issues/29422) + - to ideas: + - want to have a unique id so you can select artist by name [2](https://github.com/matplotlib/matplotlib/issues/29429) + - sometimes people (ab)used the label API for this + - label is top-level artist property to be used in legends even on things that should never be in the legend (like the Legend itself or the whole figure) + +--- + +# January 16, 2025 + +_attending_: @tacaswell @timhoffm [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) @ksunden @QuLogic @story645 + +## Agenda +### old business +- [x] NASA updates +- [x] RSE updates + +### new business +- [x] [name=hannah] consolidate [Summer of Code project ideas](/bcLJpTPdSCuKTJd2OSeYeQ) and [Medium sized projects](/GgtrcXTlTfuoyHO76_LMLg) pages + +## Notes +### NASA +- grant paper work is moving so we can start spending money + +### RSE updates +- kyle + - planning stages for data-prototype work to be ready for scipy submissions + - list of pyplot functions to re-implement + - wrap of partially implemented thoughts + +- elliott + - catching up, going over PRs + - took a break on font stuff + - looking at performance thing + - have an open PR to cut down memory usage in RGBA stage interpolation + - 25-30% memory reduction for 100K size increase on the so +- Tom + - mostly grant management + - some review + +### consolidate small-medium project pages + +ok, sounds good to do + +### trade mark claims + +paperwork is moving with legal + +--- + +# January 23, 2025 + +_attending_: @tacaswell, @efiring, @ksunden, @timhoffm, @scottshambaugh, @story645, @QuLogic, @trygvrad + +## Agenda +### Old business +- [x] RSE updates +- [x] NASA status + +### New business +- [x] [name=hannah][where to put repllite?](https://github.com/matplotlib/matplotlib/pull/29506) +- [ ] [name=tim] [Grouped bar chart PR #28560](https://github.com/matplotlib/matplotlib/pull/28560) is ready for review +- [x] [name=scott] Numpy vectorization speedups in [3D plot_wireframe #29399](https://github.com/matplotlib/matplotlib/pull/29399) broke some plots. The potential fixes in [#29435](https://github.com/matplotlib/matplotlib/pull/29435) all change the return somehow. Revert? 10x speed difference. +- [x] [name=scott] https://github.com/matplotlib/matplotlib/pull/29287 ready for review +- [x] [name=trygvard] [bivariate/multivariate cmap #29221](https://github.com/matplotlib/matplotlib/pull/29221) +## Notes +### RSE updates +- Kyle + - more pyplot compatibility with data prototype + - roll out plan + - start with separate project on pypi +- Tom + - some review work, CI work +- Elliott + - finishing up performance work + - got 17% memory and 35% runtime savings in RGBA pipeline (avoid copies!) + - look at making colormapping step faster by going to c++ and removing a lot of copies + - looks like there may be a factor of 4 available + - showing up as a problem now due to 3.10 change to interpolation stage + - when interpolating in data space always colormap a "small" array + - https://github.com/matplotlib/matplotlib/blob/769f7a49403a8f520f0a0283d8744a98b7ed761d/lib/matplotlib/colors.py#L770-L838 + - np.vectorize didn't help + - numexpr or numba might help, but not acceptable as deps + - looking at failing builds on fedora + - may need updated tolerances on non-x68_64 platforms + - font work? + - PRs next week + + + +### replite +- start on docs landing page (stable/index) + - make sure it builds before moving it around + - make sure not putting heavy network load in most common pages +- potentially move the live repl to quickstart +- adding repls and launch buttons to examples is downstream PR + +### grouped bar charts +- ready for review + +### 3D things broke +- looking at how to preserve speedups without breaking non-square wire frames +- most of the speedup was in the autoscale code, maybe call that twice rather than forcing a ragged array with nans + +### discussion about color map +- why do we do lookup? + - general method that works for all color maps + - has performance benfits + - some discritization artifacts still possible with our default size + - intentionally using a small number of samples when can lead to better compressed pngs + +### multi-dimension colormap +- @tacaswell will look today or tomorrow +- needs review +- adds extra call signature to `imshow` +- pay attention to docstrings + + +### what to focus on in grouped bar chart + +--- + +# January 30, 2025 + +_attending_: @tacaswell @pawvelJ [@efiring](@QWhXj01mSwmTjk5kN1H_qQ ) @ksunden @QuLogic @story645 +## Agenda +### Old business +- [x] RSE Updates +- [x] NASA status + +### New business +- [ ] [name=hannah] What to do about X (contingent on Pawel attending the meaning) +- [x] [name=tacaswell] wheel policy + - propsoal: if all our compiled dependencies have have wheels, CIbuildwheel will build it, the build is a reasonable time, and someone asks for it, then we will build that platform. Tier 1 and Tier 2 platforms we build wheels for (https://peps.python.org/pep-0011/) will block a relaese if the wheel builds are failing, all other platforms do not block a release and wheels may be skipped + + +## Notes +### Introductions + - Pawel joined this week + +### RSE updates +- Kyle + - rebuilt and republished 3.10 + - continue on data-prototype stuff (mostly line and image so far) +- Elliott + - took care of Fedora build issues + - expand tolerances to additional archs, there is PR + - font work is on going, need to open PRs + - https://github.com/matplotlib/matplotlib/pull/29356 +- Tom + - not much, some paperwork + +### wheels +- propsoal seems good, @tacaswell will write up + +### twitter + +- remove icon/demphasize participation on public site but keep status quo diff --git a/meeting_notes/2025/2025_02_feb.md b/meeting_notes/2025/2025_02_feb.md new file mode 100644 index 0000000..7330fd9 --- /dev/null +++ b/meeting_notes/2025/2025_02_feb.md @@ -0,0 +1,202 @@ +# Matplotlib Weekly Meeting: February 2025 + +###### tags: `2025 dev call` + +--- + +# February 6, 2025 + +_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @tacaswell, @ksunden, @QuLogic, @story645 + +## Agenda +### Old business +- [x] RSE Updates +- [x] NASA status + +### New businesses +- [ ] [name=hannah][matplotlib linked-in](https://www.linkedin.com/company/matplotlib/) +- [ ] [name=hannah][GSOC decision ](https://github.com/matplotlib/matplotlib/issues/29583) + +## Notes +### RSE updates + - Kyle + - still chipping away on data-prototype + - Tom + - minimal work, paper work is moving + +- Elliott + - working on text stuff + - working on website + - plausible work + - updated discourse, caused minor down time + - old droplet is still running if we need to investigate + - turn of within a week + +### GSOC +- @story645 will email matplotlib-dev to see if anyone wants to mentor, currently does not look like we can support this + +### linkd-in +- @tacaswell will try to get admin access +- @story645 wants access to publish announcements +- +### bluesky + +- @story645 will write up options for domain verification for next week + +--- + +# February 13, 2025 + +_attending_: @tacaswell @ksunden @greglucas @story645 @QuLogic @timhoffm + +## Agenda +### Old business +- [x] RSE Updates +- [x] NASA status +- [x] [name=hannah] [bluesky verification](https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial) + - @matplotlib.matplotlib.org + - allows for @*username*.matplotlib.org if we wanna allow third party packages to register + - @matplotlib.org + - technically we can do both -> @matplotlib.org doesn't prevent @*username*.matplotlib.org + +### New business + +### Issues and PRs +* review backlog: + - [name=hannah][Fix behaviour of Figure.clear() for SubplotParams](https://github.com/matplotlib/matplotlib/pull/27183) + - [x] [name=greglucas]Order of setting norm changes depending on colorbar on figure or not https://github.com/matplotlib/matplotlib/issues/29522 + - [x] [name=hannah][hatchcolor in collections](https://github.com/matplotlib/matplotlib/pull/29044) + - versioning backends + - using GraphContext instead of parameter list in `draw_path_collection` +## Notes +### Nasa grant 2024 +- still moving (on both sides) + +### RSE updates + - Kyle: + - still making progress on data prototype work + - working on organizing, getting everything on one branch + - Tom: + - some review + - Elliott: + - work on website + - no complaints about discourse so will turn off old droplet + - preparing to move main website droplet to f41 (from f39) + - email sending on discourse + - had no DMARC records + - things that go into DNS that say to check other verications (that we do have setup) + - set DNS to say "please check and report errors" + - will get reports if it fails + +### bluesky +- going with `@matplotlib.org` does not prevent adding user names in the future +- go with the simpler +- @story645 will do bluesky side, @QuLogic will do DNS side + +### linkdin +- have a ticket in to get control of matplotlib company page + +### order of setting norm changes depending on colorbar on figure or not +- can autoexpansion go into drawing of the images on collection so that it would autoexpand the norm + - mayb norm?colorbar? fail at drawtime, maybe warning but draw correctly + - problem is that colorbar is calling an eager draw_without_rendering? + - for calculating the values from the norm + - potentially move the autoscale logic out of colorbar into colorizer + - or move the computaion/resolution logic to colorbar `.draw` + - might have singular value problems + - Move singular expansion logic on the colorbar over to the Norm autoscaling logic + - This may impact people who draw images without colorbars because previously the images would choose the "low" color, whereas we would autoexpand symmetrically. + - Do we have issues with auto-expansion and different scales like a LogNorm choosing the non-center color for a singular norm expansion. + +### hatchcolor collections +- managing 3rd party backend compatability +- potentially changing the backend interface w/ a versioning interface + - possibly moving towards graphic context dataclass + - what would be needed to support more backends? + - potentially can transforms be movable? (intermediate layers for supporting 3D?) + - current backend API has a lot of fallbacks if backend doesn't support more specific method +- discussion continued on PR + + +### 3.10.1 +- maybe next week + +--- + +# February 20, 2025 + +_attending_: @tacaswell, @ksunden, @trygvrad, @story645 + +## Agenda +### Old business + - [x] RSE updates + - [x] grant updates + +### New business +- [x] NF CoC update + - have on-boarded and trained their working group (by ottertech) + - call to action in March to opt-in (as an existing project) + - NumFOCUS CoC Information Session Tuesday, March 4th, 8:00 - 9:00 am PST / 16:00 - 17:00 UTC https://numfocus-org.zoom.us/j/87592551095?pwd=Kcabspakme5pNm3omCvgGP1aAMbCzV.1 + + +## Notes +### RSE updates +- kyle + - data-prototype work + - making progress on 3.10.1 release out +- tom + - grant work +- Elliott + - webservers cut over to new droplets + +### grant updates + - NASA still moving + +### CoC +- action in March on our part +- adopting this would be governance change + +### PRs + +##### multivariate colormapping +- https://github.com/matplotlib/matplotlib/pull/29221 + - aiming for 3.11, + - next stages are example/user guide docs + colormaps + +--- + +# February 27, 2025 + +_attending_: @tacaswell @ksunden @trygvrad @story645 @QuLogic + +## Agenda +### Old business + - [x] RSE updates + - [x] grant updates + +### New business + +## Notes +### RSE updates +- Elliott + - fonts! + - libraqm working except for font fallback + - 2 PRs coming setting up features for libraqm + - last resort font done (but docs are not buliding right) + - sent mail from discourse to mailtester which reports everything is good + - off for next 2 weeks +- Kyle + - 3.10.1 is tagged + - currently fighting latex doc build + - working on scipy proposal (now due next week instead of yesterday) +- Tom + - some review, moving grant paper work along + +### scipy +- tutorial? + - no descion yet + + +### social media stuff +- no response from linkdin +- bluesky verification is doen diff --git a/meeting_notes/2025/2025_03_mar.md b/meeting_notes/2025/2025_03_mar.md new file mode 100644 index 0000000..16584f0 --- /dev/null +++ b/meeting_notes/2025/2025_03_mar.md @@ -0,0 +1,116 @@ +# Matplotlib Weekly Meeting: March 2025 + +###### tags: `2025 dev call` + +--- + +# March 6, 2025 + +_attending_: @tacaswell, @efiring, @rcomer, @ksunden, @story645 + +### Old business + - [x] RSE updates + - [x] grant updates + - [x] [name=hannah] numfocus coc: + - recommend or response version? + - response - numfocus working group manages consequences & enforcement + - recommend - matplotlib COC commitee manages consequences & enforcement (WG gives recommendations) + - multiple projects want clarity on moderation guidelines, Numfocus suggests using online event guide for now + +### New business +## Notes +### RSE updates +- kyle + - scipy talk propsoal in + - Cleanup of 3.10.1 release (docs/announcement/etc) +- elliott + - on vacation! +- tom + - some review + +### CoC updates + - two modes of opting-in + - respond + - recommend + - discussion of prompt moderation is a common discussion across projects + - one way to think about this is all maintainers are delegated "event staff" + - NF is working on clarifying guidance for this + +--- + +# March 13, 2025 + +_attending_: @story645 @efiring @ksunden @timhoffm + +### Old business + - [x] RSE updates + - [x] grant updates + - [x] [name=hannah] numfocus coc: + - recommend or response version? From Kamila (Numfocus): + - **response**: "NF CoC WG will handle communication with the reporter and reported person. Any bans, or permissions restrictions would be rather on Project's since NF CoC WG will not have a physical possibility to do that. In some cases NF CoC WG would also need some help from a Project to contact the reported person, since they might not have a contact." "your community is obligated to implement the WG decision." + - **recommend**: "all the actions and communication with reported and reporting person is done by a Project", "The main argument here is that the report will be worked on by an external, independent, trained Working Group." you just need to acknowledge that you received the recommendations and you will consider them." "There is no defined path for what would happen if the decision would not be implemented. It's a matter for discussion. + + + +### New business +## Notes + +### COC + +Underlying questions: +- Do we trust Numfocus to handle this well? +- If we were doing it ourselves, or would want to handle things differently, how different would the outcomes be? + +Numfocus modes: +- response: + - pro: we as a project don't have to deal with it: we don't have to set up rules and procedures how to handle CoC issues + - pro: we are not experts and can delegate appropriate handling of the topic to a third party (like we do with legal stuff) + - pro: having a third party handling this removes possible conflict of interest + - con: concern is that recommendations won't align w/ projects values + - con: Project is yielding what might be viewed as a responsibility. +- recommend: + - needs codification/process for communicating decision w/ reporter + reportee + process (w/justifications) for amendments + - Whole process could be slower. Does that make for a better outcome, or worse, on balance? + +Proposal 1: go with response; if it doesn't work out, switch to recommend, or ditch Numfocus COC help. + +Proposal 2: go with recommend; if it becomes a burden or causes problems, switch to response. + +--- + +# March 20, 2025 + +_attending_: @ksunden, @efiring, @ksunden, @story645 + +### Old business + - [x] RSE updates + - [x] grant updates + +### Notes +- [cve against freetype](https://nvd.nist.gov/vuln/detail/CVE-2025-27363) - fixed in 2.13.3 + - not sure if mpl is affected b.c. don't support the features being exploited +- plan is to transition to new freetype + - need new tests b/c can't do blanket tolerance update +- +### move release managers listing +- move listing of release managers from [governance](https://github.com/matplotlib/governance/pull/41) to: + - top of [release manager](https://matplotlib.org/devdocs/devel/release_guide.html) + - top of https://matplotlib.org/devdocs/users/next_whats_new.html +- link/embed release manager info from release guide + +--- + +# March 27, 2025 + +_attending_: @ksunden, @efiring, @QuLogic, @anntzer , @story645 + +### Old business + - [ ] RSE updates + - [ ] grant updates + +### New business +- https://github.com/matplotlib/matplotlib/pull/29807 + +### Notes +- kyle: mostly data prototype stuff +- Elliot: freetype/text work diff --git a/meeting_notes/2025/2025_04_apr.md b/meeting_notes/2025/2025_04_apr.md new file mode 100644 index 0000000..de5f975 --- /dev/null +++ b/meeting_notes/2025/2025_04_apr.md @@ -0,0 +1,191 @@ +# Matplotlib Weekly Meeting: April 2025 + +###### tags: `2025 dev call` + +--- + +# April 3, 2025 + +_attending:_ @QuLogic, @tacaswell, @ksunden, @efiring, @story645 +## Agenda +### Old Business + - [x] RSE updates + - [ ] Grant updates + - [x] freetype upgrade + - [ ] ultimate fallback font + - [x] font shaping work + +### New business + - [ ] mpl_gui integration + - [ ] tex work + +## Notes +### RSE updates + - Tom: not much due to personal contraints + - Kyle: working on improving the visualization of the graphs in the artists that can be explained to someone else + - Elliott: font stuff. have libraqm working in all cases including pdf/ps. still working on ligatures. Can get same results as before, but new stuff is broken + +### Fonts! +- https://github.com/matplotlib/matplotlib/pull/29827 (remove images) +- https://github.com/matplotlib/matplotlib/pull/29816 (update freetype) + +Take advantage of regenerating all of the images to remove a bunch of "back-compat" settings (hinting and kerning_factor). + +- https://github.com/matplotlib/matplotlib/pull/29356 (last resort) + +Long discussion about where to put features and languages + +- https://github.com/matplotlib/matplotlib/pull/29695 (font features) +- https://github.com/matplotlib/matplotlib/pull/29794 (add language parameter) + +Came to conclusion to put both on the `Text` object and require backends to +pull language/feature information from that. + +Only do `Text` object level granularity for now (and open an issue to implement sub-string application) + +--- + +# April 10, 2025 + +## Agenda +_attending:_ @QuLogic @ksunden @tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ (@efiring) + +### Old business + - [x] RSE updates + - [x] grant updates + - [x] ultimate fallback font + +### New business +- [x] mpl-gui integration +- [ ] tex work +- [x] drop py3.10 support + +## Notes +### RSE updates + - Tom: healthy again + - Kyle: image support in dataprototype + inspection tools + - Elliott: mostly text stuff + - 29872 -> decorator to replace text with rectangle to buffer from font rendering changes + - rebased freetype 2.13 PR again + - found one more place we need to thread passing `Text` object through apis +### Grant updates + - none + +### last-resort fallback font + - just needs review + +### drop 3.10 +- we should do it on our schedule +- https://github.com/matplotlib/matplotlib/pull/29840 is (closed) PR from running a tool that was a bit more churn than we wanted +- mostly minor cleanup changes, no major new language features +- main work to do is rip out CI + metadata + +### mpl-gui [#29836](https://github.com/matplotlib/matplotlib/pull/29836) +- big picture: do we want this at all (what problems are we trying to solve): + - pyplot state/object stateless interface mixing + - unclear what's being tracked and what's not being tracked (what needs to be garbage collected?) + - consensus is towards minimal changes +- questions about naming / transition plans (in mpl-top level?, get its own?) + - pro of being in own namespace: + - gives future path of doing "now recommended thing" + - need to + - shim it underneath pyplot (pyplot manages everything) + own namespace where user manages everything + - put "nice" helpers in `mpl` to get Figure + Axes sets which never gets a GUI + import display to display +- current behavior in Matplotlib: + - plt.figure() -> creates GUI + registers with our global state + - Figure -> untracked figure object (normal Python gc rules) + - picks right backend on save + - no way to show via current machinary + - minimal change is to: + - add way to register figure to pyplot ``plt.{adopt, add, register}_figure`` and/or ```plt.show([list of figures])``` + - what's the priority queue for figures added to registry + added in show? + - show 'em all vs. show list of figures (maybe keyword or positional arg) + - no duplicates + - seperate figure creation from state management + - make a figure active via `plt.figure(fig)` b/c fig is currently a creation + retrievial API +- mpl-gui layers + - promotion machinary that matches figure object w/ approprirate figure canvas + - display: pass list of figure objects that it attaches GUI too, then runs event loop until dead + - state management (context manager): with figure(): -> calls display after the figure + - global registry (implemented like plt.ion by adapting a context manager) + - mpl & mpl-gui seperation of responsibilities: + - mpl: figure/subplot/etc creation helpers, + - mpl-gui: implementation of registeries/promotion stuff/etc, figure registeries + - pyplot uses mpl gui (mpl-gui is akin to _pyplot) + + +#### conclusions +- go with minimal apporach +- make it possible to (via `plt.figure`) register a "free" Figure with pyplot +- make `plt.show()` take a list of Figure objects that it will arrange to be shown +- declare victory for 3.11 +- mpl-gui stays as a radical experimental project + +--- + +# April 17, 2025 + +## Agenda + +_attending:_ @QuLogic @ksunden @tacaswell @story645 + +### Old business + - [x] RSE updates + - [x] grant updates + - [x] freetype migration + - [x] mpl-gui integration progress + + +## Notes +### RSE updates + - Kyle: data-prototype stuff, goal is on pypi tomorrow + - Elliott: + - mostly font stuff + - updated PR enabling windows on arm (public beta on arm runners), no numpy wheels yet, so we are not running tests yet + - rebased freetype PR again + - found another old bug that Mike had already written a patch for + - moved language to text objects + - Tom: some issue / PR review, trying to drop py310 + +### Freetype migration +- still going +- computer modern alphabet looks a bit worse, but not sure if it appears in real words + +### last-resort font +- needs review + bump font cache number + +### mpl-gui + +- still agreement we liked last week's consensus + +--- + +# April 24, 2025 + +## Agenda +_attending:_ @QuLogic @ksunden @QWhXj01mSwmTjk5kN1H_qQ @story645 @tacaswell +### old business + - [x] RSE updates + - [x] font stuff + +### New business + +## Notes +### RSE updates + - Kyle: + - work on getting data-prototype on pypi + - some churn due to renaming (mpl-data-containers) + - Elliott + - font stuff + - rebased freetype (again) as all the place-holder stuff is in + - only one new issue in that the kerning looks off in someplaces + - spacing between a 't' and 'e' is off, reverts back to correct with libraqm + - fixed a bug in mathtex + - Tom + - some review, mostly other responsibilities this week + + +### fonts +- looking good +- @story645 will provide hebrew text to add to test image +- still need to look into the the above discussed kerning between t and e diff --git a/meeting_notes/2025/2025_05_may.md b/meeting_notes/2025/2025_05_may.md new file mode 100644 index 0000000..479995a --- /dev/null +++ b/meeting_notes/2025/2025_05_may.md @@ -0,0 +1,260 @@ +# Matplotlib Weekly Meeting: May 2025 + +###### tags: `2025 dev call` + +--- + +# May 1, 2025 + +## Agenda +_attending:_ @ksunden, @[anntzer](pXw4hSgTQF2--OciPYwa1w), @trygve, @QuLogic, @story645 + +### old business + - [x] RSE updates + - [x] font stuff + - [x] [name=hannah] CoC adoption timeline + - missed end of April deadline, next deadline is September + +### New business + +## Notes +### CoC +- needs timeline for pr/public comment period + - soft consensus towards independent arbitrator +### Font/RSE +- fonts waiting on some small things from @anntzer + @QuLogic + - 18181 may have backcompat code that needs to be removed + - needs review: [mapping of dvi glyph indices to freetype indices](https://github.com/matplotlib/matplotlib/pull/29829) + - timeline for freetype migration + - aim for 3.10.{2,3} +- PEP 735 (dependency groups) now implemented in PEP + - please try/review [#29281](https://github.com/matplotlib/matplotlib/pull/29281) + +### 3.10.x/RSE +- waiting on release critical draft PR: [deep copy](https://github.com/matplotlib/matplotlib/pull/29393) + - don't know if Python is keeping the change that motivated this PR or has suggested work arounds +- CI build release broken + - need to investigate which backports are failing tests + - some PRs that need to be merged: https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.10.2 + +### RSE +- Kyle admin around summit + +--- + +# May 8, 2025 + +## Agenda +_attending:_ @tacaswell, @efiring, @QuLogic, @ksunden, @story645 + +### old business + - [x] RSE updates + - [x] font stuff + - [x] [name=hannah] CoC adoption timeline + - missed end of April deadline, next deadline is September + +### New business +- [ ] affliation/sponsership (offer from https://www.matplotlib-journey.com/) + - [ ] how do we feel about non-free external resources? +- [x] py314 compat https://github.com/matplotlib/matplotlib/pull/29393 + +## Notes +### py314 issue +- go ahead and merge it + +### CoC +- submitted form to adopt this round +- consensus of discussions is to go with response as the option + +### RSE updates + - Kyle + - gotten 3.10.3 out, docs need to rebuild + - planning meeting for summit next week + - data prototype communication / presentation work + - Elliott + - fonts! + - intra-PR review of code from Antony + - have full implemetantion of libraqm with font features + language + - PR with libraqm (just core, not features + language) + - Tom + - mostly swamped with other work + +### fonts + - incorperating Antony's changes + - place mathtext from the bottom rather than top + - remove some back-compat to reporduce bugs from ttconf (that we no longer use) + +### affiliation +- what is the ask? +- adding paid training to external resources w/o tracking (just kick back an optional contribution) +- endorsement: adding to our page fine, us on their page would be very high bar + - adding to our page might need some kind of bar + +## Notes + +--- + +# May 15, 2025 + +## Agenda +_attending_: @tacaswell, @QuLogic, @story645 +### Old business +- [x] RSE updates +- [x] font updates + +### New business + - [ ] public aria API + +## Notes +### RSE updates + - Kyle: + - at scientific-python summit this week + - Tom: + - some review + - Elliott: + - fonts + - alt text + +### font stuff +- #29816 will be a huge PR where commits are stacked + - is just freetype + other changes independent of libraqm + - change hinting factor from 8 to 1, means images change here and not w/ libraqm +- font features/language changes are API changes/independent + - should land before libraqm but needs a test font + - same alphabet set, English has ligatures but not German +- libraqm + - requires less image changes +- freetype in limbo b/c of @anntzer's feedback +- maybe add an rc_param for ligatures +- todo: pulling up more than one font from file +- adding superfamilies - needs design discussion +- alpha compositing [#30043](https://github.com/matplotlib/matplotlib/pull/30043) + - should have reference for where math/procedure comes from + - smoother alpha compositing between adjacent glyphs + + +### aria api +- https://github.com/matplotlib/matplotlib/pull/21328 + - add aria properties to artist + - set_aria and take a blind dictionary, do we want to validate to known aria types + - maybe validate if keys are allowed to take values/ validate values when possible + - in documentation add that this is for downstream consumers, we only use to pass along to filemetadata + - do we want to fail/accept/warn? + - depends on how fast the standards move + - dateelements property in html -> free form dictionary + - look at attributes rather than roles, +- https://github.com/highcharts/highcharts/tree/master <- is apparently very good at accessibility +- stash alt_text on file metadata (png on info/text) +- how is update managed [comment](https://github.com/matplotlib/matplotlib/pull/21328#discussion_r1025694368) +- [widget](https://matplotlib.org/devdocs/gallery/widgets/index.html) - don't expose enough information for gui to use the information + - GUI toolkits render as rgba buffer + - missing focus + exposure of internal state + - tracks click through and updates png, can't tab to keyboard (GUI doesn't know it's a widget) + - add note about how our widgets are not accessible widgets, you need to use a GUI toolkit library for that +- svg can get all the things, static aria description is analog to alt text +- aria label is more about image + text, described by element + - telephone icon + telephone text -> description for icon comes from text + - description - describing things about element + +--- + +# May 22, 2025 + +## Agenda +_attending_: @efiring, @greglucas, @QuLogic, @ksunden, @trygve, @story645 + +### Old Business +- [x] RSE updates +- [x] font updates +- [x] [name=hannah]New Contributor meeting + +## Notes +### New Contributor Meeting June 3rd +- @story645 needs someone to cover 'cause Jewish holiday +- will send @ksunden an invite +- @melissawm said she can cover + +### RSE updates +@ksunden was at scientific python summit +- lots of discussions on cross project compataibility, particulary on scalers vs. 0D arrays +- standardizing on what ArrayLike means +- spent time thinking on interactive tutorials tooling + - https://github.com/scientific-python/executable-tutorials + - Serving here: https://scientific-python.github.io/executable-tutorials/ + - having a set of markdown based jupyter notebooks + - CI/CD type things, deployed to website + jupyterlite online + jupyter locally + - https://scientific-python.github.io/executable-tutorials/ + - inline jupyterlite/executable + - https://github.com/matplotlib/matplotlib/pull/29506 + +@QuLogic +- updated WASM CI https://github.com/matplotlib/matplotlib/pull/29093 + - plan to move to project builds +- font work +- removing the intermediate buffer allows for color support (intermediate is in gray school) + - mplcairo doesn't use ft2font +- plan for fonts is individual commits + image updates on last commit +- alt text PR is targted for 3.11 +- potentially get a couple of font formats in as part of ongoing work + +@greglucas plans to start grant work + + +### Funding page/funding acknowledgements +- Discussion of steering-council to create that page + - large-scale acknowledgement of grants, including grant numbers. + - do gsoc and gsod count + - do we list numfocus small dev grants + +- debate about whether now might be a good time to have it b/c could be seen as partisan +- can also send stuff to numfocus for their announcements/annual reports/blog posts +- @greglucas will send email to steering-committee about it + + +### Multinorm + +- https://github.com/matplotlib/matplotlib/pull/29876 +- then plotting functions: https://github.com/matplotlib/matplotlib/pull/29221 +- then needs colorbars function -> aim is for next next release +- [x] @story645 will ask for trygve to get triage rights + +--- + +# May 29, 2025 + +_attending_: @efiring @ksunden @story645 @QuLogic +## Agenda + +### Old Business +- [ ] RSE updates +- [ ] font updates + +### New Business +- [ ] [name=hannah] triage nomination project board + - wait til next week + +## Notes +- @ksunden prepping presentation + - organizing thoughts on data prototype stuff +- @QuLogic more font work + - libraqm is nearly there + - has working for raster backends + - needs another PR for vector backends + - two stacked prs: freetype + libraqm + - freetype is giant b/c also has everything that needs to rebuild images + - debating changing how this review stuff is going + - maybe do everything targeting a feature branch + - shouldn't have heavy rebase issues b/c kinda standalone + - advantage is that image changes can be per pr rather than 1 big PR + - 2 commits per pr - 1 w/ test related image changes, 2 w/ all changes, merge 1st commit into feature branch + - add a PR for pdf/ps side of things + - PR count: @QuLogic has 4, @anntzer has 3 (2 are subsumed into freetype PR), jouni has a pdf one + - https://github.com/matplotlib/matplotlib/pull/30059 drop intermediate buffer is priority + - freetype, libraqm + - Freetype PR + - 12 commits + - 2 will be replaced by #30059 + - 4 are updating tests (could be contained to one PR) + - about 50 images change cause of kerning and ligarature (libraqm) + - 1 updating to freetype + - updating kerning and text hinting factor diff --git a/meeting_notes/2025/2025_06_jun.md b/meeting_notes/2025/2025_06_jun.md new file mode 100644 index 0000000..4bd9e0f --- /dev/null +++ b/meeting_notes/2025/2025_06_jun.md @@ -0,0 +1,168 @@ +# Matplotlib Weekly Meeting: June 2025 + +###### tags: `2025 dev call` + +--- + +# June 5, 2025 + +_attending_: @tacaswell, @ksunden, @efiring, @story645, @trygve, @QuLogic, @timhoffm +## Agenda + +### Old Business +- [x] RSE updates +- [x] font updates + + +### New Business +- [x] [name=hannah] triage nomination project board +- [x] [name=QuLogic] [Type 1 subsetting tests](https://github.com/matplotlib/matplotlib/pull/20716#issuecomment-2942877182) +- [x] [name=ksunden] containers in main + + +## Notes +### RSE updates + - Kyle: + - playing around with integrating data-prototype work into core + - can we merge just the container part + - attended new contributor meeting (though only Melissa was there) + - Logistics for SciPy Travel + - Elliott + - font!s + - bit of triage, some hatching + - Tom + - just some review + +### fonts +- now have a project board: https://github.com/orgs/matplotlib/projects/7 +- have a long-lived feature branch on main repo + - commit the images changes "as we go", but rebase to have all changes it the last commit + - locked so that only Elliott can merge to it + +### triage nomination project board +- Will defer process discussion until we have Melissa available + +### font subsetting testing +- go with option 3 (only install fonts on some runners) + + +### multinorm + +- maybe do not inherent from Normalize + - protocol or ABC +- does usin a protocol have implecations for our use of type stubs + - no + +```mermaid +graph TD; + protocol:Norm-->Normalize; + protocol:Norm-->MultiNorm; +``` + +### containers on main +- can get a number of nice features from just the container half of dataprototype work + - allows for pulling data on demand rather than needing it all in memory +- only need just enough of the pipelines for query to work +- goal is maintain full back-compatiblity + - roll out w/ native matplotlib artists +- do not expand the scope of things that are "mapped" +- leverage the data kwarg to reuse datacontainers/pass container across functions +- creates a uniform interface for data -> (units, color, etc) +- moves the data attributes off the artist (line.data.x/line.data.y) into a container object + +--- + +# June 12, 2025 + +## Agenda +_attending_: @tacaswell, @efiring, @ksunden, @story645, @timhoffm, @QuLogic, Kari Hall, Kamila Stepniowska + + +### new business +- [ ] NF Code of Conduct onboarding meeting (NF coming to our meeting) + +## Notes +### Code of Conduct + +- summary of recommendation vs decision modes + - notifying NumFocus that matplotlib is using decision mode +- need a charter document for delegating some decision making/enforcement authority to mods/maintainers + - NumFocus will share boilerplate +- Decision process purposefully keeps Matplotlib out of the loop + - NumFocus potentially looping in project when conflict resolution is necessary + - option to opt in project leadership to who was in involved + outcome + - NumFocus would already loop in when Matplotlib needs to enforce decision (banning, losing commit rights, etc) +- To do: + - update goverance + add charters for moderator + - then pull request new CoC + +- Summary/meta information about reporting at end of year (modeled on PSF) + +--- + +# June 19, 2025 + +## Agenda +_attending_: @tacaswell, @ksunden, @QuLogic, @efiring, @story645 + +### Old Business +- [ ] RSE updates +- [ ] font updates + +### new business +- [ ] [name=hannah][norm: protocol vs ABC](https://github.com/matplotlib/matplotlib/pull/30149#issuecomment-2988318982) +## Notes +### RSE updates +- Kyle: + - preparing for scipy, finishing up travel/poster + - attened ML / pixi to manage the environments to do it + - issue review +- Elliott: + - mostly review + - font stuff is waiting for review + - looked at color emoji + - some fonts provide svg for emoji as latest iteration of how to do color +- Tom: + - not much time this week + - looking + +### norm: ABC vs protocol +- ABC is a stronger communication of interface, + - forced to implement abstract methods +- Protocols + - aren't forced to implement abstract methods + - good for many small coupled interfaces instead of multiple inheritance + - Possibly replacing artist with a half dozen protocols: alpha protocol, colorizer protocol, + - backends: blitting protocol + - extensive duck typing + +- subjective view of simpler: + - no metaclass + no binding to specific inheritance tree + - ABC is simpler, is straightforward traditional class inheritance + +- no compelling technical argument in either direction +- norm will blow up if methods aren't present and matching signature +- is instance(ABC) works, is faster than for protocols +- is instance w/ protocols is a runtime checkable thing that does subclass check for presence of method and static type checking for signature match + - allows more control of what's exposed to runtime checking +- ABCs will yell at class instantiation time, protocols better integrated with static type checking + +- Summary + - both will work fine, ABCs are status quo, don't expect multiple implementations which is where differences are expected to matter + +--- + +# June 26, 2025 + +## Agenda +_attending_: +- [x] RSE updates +- [ ] font updates + +## Notes +- @ksunden poster got bumped to talk so refocusing efforts there + - maybe practice talk next week +- @QuLogic mostly review backlog + - some typing ones for pyplot + - rebased font PRs (review) +- Did we get linkedin back? diff --git a/meeting_notes/2025/2025_07_jul.md b/meeting_notes/2025/2025_07_jul.md new file mode 100644 index 0000000..5351057 --- /dev/null +++ b/meeting_notes/2025/2025_07_jul.md @@ -0,0 +1,275 @@ +# Matplotlib Weekly Meeting: July 2025 + +###### tags: `2025 dev call` + +--- + +# July 3, 2025 + +## Agenda + +_attending_: @ksunden, @QuLogic, @trygvard, @story645 +- [x] RSE updates +- [x] font updates + +## Notes +- @ksunden preppeing for scipy +- @QuLogic issue triage + - particularly focused on font stuff that would get fixed by overhaul + +--- + +# July 10, 2025 + +## Agenda +_attending_: @tacaswell, @story645, @QuLogic +- [ ] RSE updates +- [ ] font updates + +## Notes +- @ksunden at scipy +- @qulogic will push to his branch to show more of final work + - discussion of where FontFeatures should go + - text vs. fonts -> specifying multiple fonts for a specific text object + - problem is fonts are adhoc generated as keyword args to text + - https://github.com/matplotlib/matplotlib/pull/29695#issuecomment-3056289359 + - conclusion: move forward w/ Antony's suggestion applied to all properties + - deferred to 3.12 + - avoid documenting range until it's consistent across functions/properties & then expose to user + - can remove manual meson build for free type + +--- + +# July 17, 2025 + +_attending_: @tacaswell @greglucas @ksunden @QuLogic @story645 + +## Agenda +- [x] grant updates +- [x] RSE updates +- [x] scipy updates +- [x] font updates +- [x] GHA hardening +- [ ] ~~PR review~~ + +## Notes +### grant updates +- NASA money for ROSES24 is moving along, now have an agreement +### RSE updates + - Tom: + - some issue/PR review + - Elliott: + - review + - fonts: + - no range stuff, sort that out later + - cleanup things to go with font work (deprecated kerning factor etc) + - most PRs are ready to go + - libraqm broke PDFs, expect to be fixable + - Kyle / scipy updates: + - went to scipy + - talk about data-container side of data-prototype project + - some follow up conversations, some positive feedback + - discussions with data-structure libraries + - positive feedback on plenary (multi-variable colormaps!) + - felt smaller than past years + - ran sprints + - but only one maintainer and a couple of friends + +### font updates +- see RSE updates +- maybe look at figure size rounding PR again (as long as we are re-generating images) + +### GHA hardening +- want to flip org-level default to be read only +- all matplotlib/matplotlib workflow explict set permissions + - fallout will fall on other repos +- @tacaswell will reach out to leads of sub-projects and give 1mo to get sorted + +(declared effient meeting and ended early) + +--- + +# July 24, 2025 + +_attending_: @tacaswell, @ksunden, @QuLogic, @story645 + +## Agenda +- [x] grant updates +- [x] RSE updates +- [x] [name=hannah] https://accessviz.github.io/ +- [x] [name=kyle] Archiving old org repos +- [x] [name=tacaswell] 3.10.4 release plans / py314 +- [x] fonts update +- [x] 3.11 timeline +- [x] alt-text status + +## Notes +### grant updates +- NASA money is released, working on getting contracts running +### RSE updates +- Tom: + - grant management + - some review, GHA hardening follow up +- Kyle: + - review + - prepare for 3.10.4 + - will move sphinx-theme to trusted publisher this week +- Elliott: + - mostly review, get through 3.11 + - bunch of things need second review + - may adopt some of Tim's PRs + - got font collections working (PR is open) +### accessviz +2-4 page position +@story645 will start the repo/draft (is empty at mo + - https://github.com/story645/accessviz2025 (is empty at moment) + +due Jul 27 AOE +### Archiving old org repos + +No questions archiving + +- natgrid (Feb 2011) +- sample_data (Dec 2011) +- fcpy (Apr 2016) +- freetypy (Oct 2017) +- mplsizer (Jun 2018) +- mpl-altair (Dec 2020) + + +Contact people before likely archiving +- mpl-finance (Feb 2020) (replaced by mplfinance with no dash) +- mpl-docker (Jul 2020) (installs deps, but not actually mpl) +- grid-strategy (Mar 2020) + +Add note of new location (scientific python blog), then archive +- matplotblog (Mar 2022) (functionally moved to scientific python) + + +Old tutorials (maybe archive/reference from presentations) + +- Getting Started (Jan 2020) (Tutorial for Scipy 2019) +- AnatomyOfMatplotlib (Aug 2021) +- interactive_tutorial (Mar 2021) + +Maybe archive, but lean towards keep: + +- mpl-bench (Feb 2022) + +Start actively using again: + +- presentations (Aug 2019) + +### 3.10.4 release + +with py3.14rc1 out we need to get a 3.14 compatible version released. + +just waiting on backport PRs to finish CI and merge + +to 3.9.x? Wait for someone to ask + +### alt-text work +- have some work-in-progress commits + - pngs and svgs + - pngs have a standard + - svg wc3 standard +- have not done PDFs yet, but know where to put stuff +- went with simple "add alt text" api, not the full css set of roles + +### font work! + +- lanugage and font feature in normal API review state +- vector + libraqm can be made to work, but requires a bunch of refactoring + - will push forward with libraqm without vector support + - related to sub-setting and our current imlementation works on "characters" not "glyphs" +- see board for review work +- font collection needs some design choices #30334 + +### 3.11 timeline + +- 3.11 goes out when fonts land + - libraqm + - alt-text + +--- + +# July 31, 2025 + +_attending_: @efiring, @tacaswell, @ksunden, @QuLogic, @dstansby, @story645 +## Agenda +- [ ] RSE updates +- [x] grant updates +- [x] 3.10.5 is out +- [x] 3.11.0 status +- [x] automation of release work? +- [x] [adopt-a-figure](https://github.com/matplotlib/matplotlib/pull/29855#issuecomment-3137415316) +- [ ] font PR review +- [ ] 3.11 general review + +## Notes +### Grant updates +- have a call out on UK for open source support + - @dstansby has been invited to submit full bid + - Successful expression of interest bid avaialble at https://github.com/dstansby/SSI-RSMF-round-1-MPL + - funding is UK based + - focus: + - data w/ units + - documentation + - testing and doc builds optimization/improvement +- No more news on NASA + +### RSE updates + - Tom: + - some review + - can reproduce the subprocess on CI hangs + - may be X11 related and a red herring + - Kyle: + - release out today + - bit of review + - work on data-prototype + - Elliott: + - PR review + - alt-text work is getting closer + - font work is stuck waiting for review + +### 3.10.5 is out + +- glitch in release process made 3.10.4 an orphan +- on pypi, docs build in-progress +- includes critical fix to support 3.14 + - will talk about back-porting further if someone asks and is not able to apply the patch them selves. + +### 3.11.0 status + - waiting for fonts + - adopt-a-figure + - multi-norm + +### Automation of release work + +- reduce human copy/paste/edit steps +- may spend more time automating the task than the task will take + - but likely worth it here to reduce steps +- wheel building is automated +- rest is mostly manual follow steps in [release guide](https://matplotlib.org/devdocs/devel/release_guide.html) + - automating would allow more explicit/longer commands than in release guide + - pushing still manual/requires human intervention + - goal is to mostly automate the github side if things + +### adopt-a-figure +- `plt.figure(fig)` to register figures to pyplot +- left: for high-dpi screens figure keeps getting upcast, process needs to be short-circuited here +- gives a way to reshow a figure +- concern that all figures are having their GUI canvases replaced + - there are some users who are reaching in and touching the GUI specific objects +- need to make sure that the disconnection is bi-directional + +### milestone guidelines +- current released: 3.X.N, +- next micro: 3.X.N+1 +- doc: 3.X-doc +- next: 3.X+1.0 +- next next: 3.X+2.0 +- previous: 3.X-1.N+1, 3.X-2.N+1 + +### font review! +https://github.com/orgs/matplotlib/projects/7 diff --git a/meeting_notes/2025/2025_08_aug.md b/meeting_notes/2025/2025_08_aug.md new file mode 100644 index 0000000..cd1ee56 --- /dev/null +++ b/meeting_notes/2025/2025_08_aug.md @@ -0,0 +1,113 @@ +# Matplotlib Weekly Meeting: August 2025 + +###### tags: `2025 dev call` + +--- + +# August 7, 2025 + +_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @tacaswell, @story645 + +## Agenda +- [x] RSE updates + + +## Notes +- Kyle + - finishing up 3.10.5 release + - some admin things + - work on data-prototype code in main +- Elliott + - mostly review + - minor work on font stuff + - re-addressing hi-dpi + - numpy's new release producer (with external repo) + - https://github.com/numpy/numpy-release + - release CI in a standalone repo which only release managers have access to +- Tom + - issue/PR review + - need to write annual report for NASA + +--- + +# August 14, 2025 + +_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @tacaswell, @story645 + +## Agenda +- [x] [name=hannah] matplotlib linked in (may need @matplotlib.org email) +- [x] RSE updates +- [x] grant updates + +## Notes +### linkdin +- the "claim this org" does not work for Caswell +- Hannah will try working with linkdin to get control via customer service + - update: LinkedIn doesn't have phone support +### RSE updates + - Tom: + - off last 6 days + - Kyle: + - admin work, review work + - trying to get images working on main with dataprototype +- Elliott + - mostly review + - all font work is done and in PR form + - starting to put together docs / examples + +### Grant updates +- sumbitted NASA Y1 progress report + +--- + +# August 21, 2025 + +_attending_: @tacaswell @story645 @QuLogic @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) + +## Agenda + - [ ] RSE updates + - [ ] font review + - [ ] 3.10.6 + - [ ] 3.11 progress + +## Notes +- investigating coverage and build failures on font branches +- 3.10.6: + - [uv error](https://github.com/matplotlib/matplotlib/pull/30394): waiting amend to include uv recommended + +--- + +# August 28, 2025 + +_attending_: @ksunden @efiring @QuLogic @dstansby @story645 + +## Agenda + - [ ] RSE updates + - [x] [name=hannah][survey](https://github.com/matplotlib/surveys) + + +## Notes + +RSE updates +- Kyle + - Image support for data containers on main + - Prep for 3.10.6 (going through release after meeting, waiting on CI) +- Elliott + - rebased font property PRs ([#29395](https://github.com/matplotlib/matplotlib/pull/29695) and [#29794](https://github.com/matplotlib/matplotlib/pull/29794)) on top of `libraqm` [#30000](https://github.com/matplotlib/matplotlib/pull/30000) since it's close to complete, so they now show the real new behaviour + - Also combined all text/font changes into a "mega" branch https://github.com/QuLogic/matplotlib/tree/libraqm-full + - preparing some accessibility and alt-text changes for PDF + +Discourse +- back up now (wait and see) +- manual update took it down for approx 1hr +- health of server is being monitored + +3.11 +- Fonts: https://github.com/orgs/matplotlib/projects/7 +- standalone figures: https://github.com/matplotlib/matplotlib/pull/29855 +- scroll to zoom: https://github.com/matplotlib/matplotlib/pull/30405 + - non-linear scales: try on log scale w/ and w/o patch + - intuition: better in data space than display space + +Docs meeting +- kyle is covering diff --git a/meeting_notes/2025/2025_09_sep.md b/meeting_notes/2025/2025_09_sep.md new file mode 100644 index 0000000..795618b --- /dev/null +++ b/meeting_notes/2025/2025_09_sep.md @@ -0,0 +1,199 @@ +# Matplotlib Weekly Meeting: September 2025 + +###### tags: `2025 dev call` + +--- + +# September 4, 2025 + +_attending_: @dstansby, @efiring, @ksunden, @qulogic , @tacaswell, @story645 + +## Agenda + - [x] RSE updates + - [x] [name=hannah] new note b/c this one is laggy + - [x] discourse! + - [x] [name=hannah]needs coverage for docs meeting + +## Notes +### new notes +- in progress, will be done for next week + +### RSE updates +- Kyle + - 3.10.6 went out last Friday + - dataprototype work + - images support function containers in main repo branch + - previously had static containers + - Prep for 3.10.6 (going through release after meeting, waiting on CI) +- Elliott + - PR review + - finished text in pdf + - all characters out side of embeding limit (256) was drawn rather than being text + - now make lots of fonts (each with 256) + - enabled via improved subsetting + - caused some changes due to things now being hinted + - preparing some accessibility and alt-text changes for PDF + - libraqm is merged to font-overall branch + - working on new API for font feature and language labels + - rebased on libraqm, whats-new show effects + - rebased font property PRs ([#29395](https://github.com/matplotlib/matplotlib/pull/29695) and [#29794](https://github.com/matplotlib/matplotlib/pull/29794)) on top of `libraqm` [#30000](https://github.com/matplotlib/matplotlib/pull/30000) since it's close to complete, so they now show the real new behaviour + - Also combined all text/font changes into a "mega" branch https://github.com/QuLogic/matplotlib/tree/libraqm-full + +- Tom + - some review +### discourse +- difficult upgrade +- seeing load spikes, will keep an eye on + - may be llm bots scraping us +- down for approx. 1hr + - back up now w/ continued monitoring of server + +### 3.11 release plans +- rc by the end of September +- features: + - Fonts: https://github.com/orgs/matplotlib/projects/7 + - standalone figures: https://github.com/matplotlib/matplotlib/pull/29855 + - scroll to zoom: https://github.com/matplotlib/matplotlib/pull/30405 + - non-linear scales: try on log scale w/ and w/o patch + - intuition: better in data space than display space + +Docs meeting +- kyle is covering + +--- + +# September 11, 2025 + +_attending_: @tacaswell, @ksunden, @QuLogic, @story645, @timhoffm, @trygve + +## Agenda + - [x] RSE updates + - [x] font status + - [x] 3.11 progress + +## Notes +### RSE updates + - Kyle + - data prototype stuff, making progress on proof-of-concept of containers-on-main + - mostly work on collections, some cleanup of images and and lines + - Elliott + - text is mostly done, need one rebase + - working on alt-text + - 3D algorithm for clipping in 3D (PR pending) + - extending to all the artist types + - Tom + - some review, wrapping up PRs + +### Font status + - waiting on review + +### 3.11 + - stand-alone figure + - needs manual testing on OSX + - font metrics cache + - maybe flaky tests + - fonts (see above) + - multivariate PR: https://github.com/orgs/matplotlib/projects/9 + - colormaps + - some were add in https://github.com/matplotlib/matplotlib/pull/28454 + - names might need improvement + - add more? green purple, and dark mode (black centered) biPeak, CVD friendly maps, multi-variate + - how many are enough to be useful? + - explicitly mark multivar/bivar as provisional + - consensus: start w/ what already merged & mark provisional, leave open to add more later + - maybe add the darkmode for accessibility + - next steps, which is the public top level API (aim for 3.12): + - expose to imshow/pcolor/other toplevel + - colorbar analogs + - choose public colormaps for shipping + +### Replace BoundaryNorm +- https://github.com/matplotlib/matplotlib/issues/21911#issuecomment-3281819503 +- problem: BN maps to integers rather than to 0-1 like all the other norms +- concern: size is used to ensure that colormap can be cut up into N bins + +--- + +# September 18, 2025 + +_attending_: @tacaswell, @efiring, @ksunden, @story645, @QuLogic + +## Agenda + - [x] RSE update + - [x] font status + - [x] multi-norm status + +## Notes +### RSE updates + - Kyle: + - data prototype work, adjusted apporach to collections + - some review + - aiming for 3.12 release cycle for common parts/approachable usage + - Tom: + - review work + - grant management work + - Elliott + - moving along well on fonts + - [anntzer](@pXw4hSgTQF2--OciPYwa1w) is reviewing / updating to keep work moving + - looking through backlog + - [30581](https://github.com/matplotlib/matplotlib/pull/30581) - ci: Force Agg backend test in environment variable test + - [30579](https://github.com/matplotlib/matplotlib/pull/30579) - merge back into branch to fix macOS + - [29794](https://github.com/matplotlib/matplotlib/pull/29794) - language parameter to Text + + +### fonts! +- 29794, 30581 need review +- font-feature PR will come after language lands +- font-collections, will cause conflicts redo after everything else lands +- Antony stuff is moving + - intermediate buffer removal: should help with layouts and simple form of emojis +- alt text is also moving, on a branch, need to open a PR + +### colorizer / multi-norm + - waiting for review on [30511](https://github.com/matplotlib/matplotlib/pull/30511) + +--- + +# September 25, 2025 + +_attending_: @tacaswell, @QuLogic, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @story645, [@anntzer](@pXw4hSgTQF2--OciPYwa1w) + +## Agenda +- [x] RSE update +- [x] https://github.com/matplotlib/matplotlib/pull/29998 +- [x] https://github.com/matplotlib/matplotlib/pull/30591 +- [x] https://github.com/matplotlib/matplotlib/pull/30184 + +## Notes +### RSE updates + - Tom + - some review + - Kyle + - continuing down collection + data contanier work + - working on the vector of paths for PathCollection + - Elliott + - moving along with fonts + - working on review to get everything else for 3.11 done + - will work on alt-text + - +### PR review +- [30184: image resampling accuracy](https://github.com/matplotlib/matplotlib/pull/30184) + - linear upsampling, array of weights shifted by one + - accept higher tolerances on texts, @qulogic will fix in image regeneration +- [30591: widget blitting compatible with swapped canvas](https://github.com/matplotlib/matplotlib/pull/30591) + - semantics of blitting w/ transparency is not well defined + - potentially make background RGBA + - add/expose? restore_background functionality +- [29998: head resizing for arrow boxstyle](https://github.com/matplotlib/matplotlib/pull/29998) + - padding isn't constant/consistent - should it be? + - changing angle of arrowhead means text could go out of bounds + - instead keep all text in arrow body + - images change in tests + - suggestions: + - no margin + - algorithm: pin middle instead of tail for padding computation + - accept there's a jump + - consensus: @tacaswell will post on PR + - fixed padding always + - algorithm to always make it fit +- DVIPNG PR waiting on intermediate buffer PR diff --git a/meeting_notes/2025/2025_10_oct.md b/meeting_notes/2025/2025_10_oct.md new file mode 100644 index 0000000..24f8d50 --- /dev/null +++ b/meeting_notes/2025/2025_10_oct.md @@ -0,0 +1,168 @@ +# Matplotlib Weekly Meeting: October 2025 + +###### tags: `2025 dev call` + +--- + +# October 2, 2025 + +_attending_: @ksunden, @QuLogic + +## Agenda +- [ ] RSE update + +## Notes + +It was just the two of us, so we just did some PR review for 3.10.7 and 3.11.0 + +--- + +# October 9, 2025 + +_attending_: @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @story645, @tacaswell + +## Agenda +- [x] RSE update +- [x][name=hannah] [release critical: restore violinplot alpha behavior #30636](https://github.com/matplotlib/matplotlib/pull/30636) + +## Notes +- merge up for 3.10.7 in progress [#30646](https://github.com/matplotlib/matplotlib/pull/30646) +- AI: + - continue to be kind to contributors, watch for burn out due to workslop + + +### RSE +- Kyle + - 3.10.7 released! + - docs/merge up ongoing + - will let pyparsing know in our issues + - starting to look at numpy's approach to doing releases, which is to seperate out release process into stand-alone locked down release repo +- Tom + - almost no mpl, BNL operations work + +### Notes +- violin plot restore previous artist alpha default, needs 2nd reviewer +- PR backlog - stalebot not working + - triage team + - needs guidance/examples + - maybe maintainers need a test run + - decisions need some level of stickiness + - triage team can summarize & flag for discussion + - maybe triage sprint on specific tasks + - needs:rebase + - status:orphan (sprint task) + - untriaged + - clean up labels to one page + - github rolling out heirarchical labels + - replace some labels with types: + - https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/managing-issue-types-in-an-organization + +--- + +# October 16, 2025 + +_attending_: @tacaswell, @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @greglucas, @story645 + +## Agenda +- [ ] RSE +- [ ] 3.11 status? +- [ ] 3.10.8 plan? + +## Notes +### RSE update +- Tom + - minimal, busy with other stuff +- Kyle: + - progress on data-prototype-to-main work +- Greg: + - busy with other stuff + +### 3.11 +- waiting on fonts + - libraqm + - freetype + - alt-text + - discussion of https://github.com/matplotlib/matplotlib/pull/30334: subclassing `str` in `FontPath` avoids an API break; looks OK. + +### 3.10.8 +- Backported MacOS Freethreading PR +- Will wait a week or two to make a release to see if more things come in + + +### Meeting attendance +- Is there a better time for the meeting? +- Send an e-mail to dev list so it isn't just people on the call voting +- Look into alternating times every other week to support Asia / Europe sectors? + +--- + +# October 23, 2025 + +_attending_: @efiring, @QuLogic, @ksunden, @story645 + +## Agenda +- [ ] RSE +- [ ] 3.11 status? +- [ ] 3.10.8 plan + +## Notes + + +### bivariate colormap +- discussion over putting function roll out work on its own branch +- question of whether multivar & bivar should have same interface for unpacking (self.N, self.m) vs (part.N for par in self.cmap) +### triage +- criteria for making a decision and appealing it +- what is an issue? wish list or to do list? + - incomplete PRs can be more frustrating b/c paralyze next decision + - don't want to overly eagerly close b/c alienates contributors + - so does ignoring pr + - lack non-tech criteria for evaluating a PR: + - e.g. "does it fit mission/scope/technical direction" + - criteria for reasonable next steps + - e.g. "does this PR accomplish the goals of resolving the issue" + +### Watch for daylight savings time in Europe + +--- + +# October 30, 2025 + +_attending_: @ksunden @QuLogic @story645 @tacaswell + +## Agenda +- [x] RSE +- [x] 3.11 status +- [x] 3.10.8 + +## Notes +### RSE updates +- Kyle + - Making progress on containers on main work + - most problems understood, but not fixed yet +- Tom + - on travel last week, catching up on other work this week +- Elliott + - mostly working on 3.11 + - font stuff is waiting for review + - progress on dropping the intermediate buffer PR + - need to open PR for alt-text + +### 3.11 status +- waiting on font review + - 3 or 4 open + - 7 in project + - some latex changes unrelated, can punt to 3.12 +- blitting PR from @timhoffm [#30591](https://github.com/matplotlib/matplotlib/pull/30591) + +### 3.10.8 + +- two free-threaded macOS PRs (one merged to main, waiting on backport one waiting to merge to main) +- zoom box PR needs a bit of tweaking + +@ksunden will do 3.10.8 next Friday (Nov 7). + +### colorizer work +- PR to expose the colorizer is merged +- next PR will expose out to top-level API +- next-next PR will require designing 2D colorbar API diff --git a/meeting_notes/2025/2025_11_nov.md b/meeting_notes/2025/2025_11_nov.md new file mode 100644 index 0000000..b8e445b --- /dev/null +++ b/meeting_notes/2025/2025_11_nov.md @@ -0,0 +1,74 @@ +# Matplotlib Weekly Meeting: November 2025 + +###### tags: `2025 dev call` + +--- + +# November 6, 2025 + +_attending_: @ksunden @story645 @tacaswell @QWhXj01mSwmTjk5kN1H_qQ (Eric Firing) + +## Agenda +- [x] RSE +- [ ] 3.11 +- [x] 3.10.8 + +## Notes +### RSE + - Kyle + - dealing with DPI things in collection + - paper work + - Tom + - some review + - Contract with Quansight has been signed, work to start soon + - Elliott + +### 3.10.8 + +- intend to tag tomorrow, everything that is going in has gone in + + +### short meeting + +--- + +# November 13, 2025 + +_attending_: @ksunden @tacaswell @QWhXj01mSwmTjk5kN1H_qQ @story645 + +short meeting, ended early + +## Agenda +- [x] RSE +- [x] 3.10.8 + +## Notes +### 3.10.8 + +- cibuildwheel failed due to pillow not having wheels for pypy310, we did not pin to binary only so we failed on missing jpeg libarries + - moving to external cibuildwheel repo sooner rather than later to re-build + - discovered that we have dropped including vendored license files in sdist/wheels + +### RSE updates +- Kyle + - 3.10.8 + - working on collections +- Tom + - some issue review + - took vacation/holiday + - +### containers / compound artists +- https://github.com/matplotlib/matplotlib/pull/30733#issuecomment-3506119332 +- need to make sure is synced with Kyle's work + +--- + +# November 20, 2025 + +_attending_: @tacaswell @story645 @trygve @ksunden + +## Agenda +- [x][name=hannah] triage backlog + - use meetings w/ no agenda as triage meetings/use first 15 minutes for triage +## Notes +- triaging multivariate norm diff --git a/meeting_notes/2025/2025_12_dec.md b/meeting_notes/2025/2025_12_dec.md new file mode 100644 index 0000000..7871a86 --- /dev/null +++ b/meeting_notes/2025/2025_12_dec.md @@ -0,0 +1,190 @@ +# Matplotlib Weekly Meeting: December 2025 + +###### tags: `2025 dev call` + +--- + +# December 4, 2025 + +_attending_: @tacaswell, @greglucas, @ksunden [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @QuLogic, @story645 + +## Agenda +- [x] RSE updates +- [x] NASA updates +- [x] 3.11 status +- [x] 3.10.8 / build overhaul status +- [x] containers-on-main status +- [x] triage + - [x] [backend versioning](https://github.com/matplotlib/matplotlib/pull/30777) + - [x] [font collections]( https://github.com/matplotlib/matplotlib/pull/30334) +## Notes + +### NASA +- grant 1 expires in dec + - post some kind of public report/summary to link from matplotlib.org +- Melissa and Greg start in Jan, now respectively +- +### RSE updates + - kyle + - dataprototype work + - makeing sure later design work feed into first implementations + - goal of draft PR opened by Dec 15 + - Tom + - project / grant management + - Greg + - reviewing cartopy + - starting work on adaptive re-sampler + - Elliott + - keeping font work going + - finally have reproducer for a very old font issue + - working on getting reviews out + +### 3.11 +- still waiting on fonts + - 2 outstanding PRs + - all fonts from collection: https://github.com/matplotlib/matplotlib/pull/30334 + - drop intermediate buffer: https://github.com/matplotlib/matplotlib/pull/30059 + - 1 possible isuse with bars + +### 3.10.8 / build process refactor +- waiting on reviews + - 2 reviews from steering council on policy + - one technical comment with improved configuration + +- is configured so release only uploads/pushes tag after all jobs succeed + - run w/ upload pointed to tag is standalone process + - +- needs documentation about which teams have access (@release-managers, @steering-council) +- questions about how cibuildwheel configurations cascade +- config in toml? + - optional for 3.10.8, do it for 3.11 + + +### dataprototype work + +- making progress, sorting out what nice helper methods are needed. + +### triage + +- [backend versioning](https://github.com/matplotlib/matplotlib/pull/30777) + - version backends so that third-party libraries know when Backend API signature changes + - useful for fonts work, threading hatchcolors through, updating the backend + - use mpl version vs. standalone semantic versioning + - question on what's the best way to implement this + - who has to sign off? defer to @timhoffm + +- font in collections: + - current path looks for and opens font + - PR adds in subclass of strings called `FontPath` that: + - keeps stringpath + - adds index for font + - now in fontmanager, now searches for ttc, ask freetype for # faces (fonts) + - loads subfonts + adds to fontmanager + - allows user to request subfonts + - change: if they call findfont, will get back the FontPath object rather than the string path + +--- + +# December 11, 2025 + +_attending_: @tacaswell, @ksunden, @QuLogic, @story645, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) + +## Agenda +- [x] RSE updates +- [x] NASA updates +- [x] 3.11 status +- [x] 3.10.8 / build overhaul status +- [x] [name=hannah]GSOC 2026: org apps Jan 19 - Feb 3 +- [ ] triage + +## Notes +### RSE updates + - Kyle + - cleaning up containers PR + - 3.10.8 on pypi from dedicated release repo + - need to do docs still +- Tom + - small review +- Elliott (as volunteer) + - some review + +### NASA updates + - waiting on NASA side for some things + - buying 3 arm boxes and 1 high-dpi monitor on remaining grant funds + +### 3.10.8 +- on pypi with trusted publisher +- few clean up tasks + - merge up branches on building repo + - remove publishing code workflow from main + - document new release process + + +### 3.11 +- still just the font stuff +- waiting on intermediate buffer PR + - don't have good image diffs to see what the difference are + - :+1: to use snapping to control snapping + - Issues with fraction bar placement still outstanding + +### GSOC +- time to start thinking about what projects we want +- ideas + - pull the relative / offset code in annotations into reusable transforms + - [IndirectTransform](https://github.com/matplotlib/matplotlib/issues/22223#issuecomment-1011957191) + - @tacaswell is supportive of this + - pull others from medium scale projects: [projects page](https://hackmd.io/d4jJmDiKR2G4DAM4nVZTtA?stext=862%3A67%3A1%3A1765484613%3Ah94Zi0&edit=) + +### triage + - https://github.com/matplotlib/matplotlib/pull/30750 + - https://github.com/matplotlib/matplotlib/pull/30835 + - https://github.com/matplotlib/matplotlib/pull/30533 + - https://github.com/matplotlib/matplotlib/pull/30815 + - https://github.com/matplotlib/matplotlib/pull/30808 + - https://github.com/matplotlib/matplotlib/pull/30775 + - https://github.com/matplotlib/matplotlib/pull/29093 + +--- + +# December 18, 2025 + +_attending_: @QuLogic, @greglucas , [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) + +## Agenda +- [x] RSE updates +- [x] NASA updates +- [x] 3.11 status +- [x] 3.10.8 / build overhaul status +- [ ] triage + +## Notes + +### RSE updates + - Elliot + - Rebased intermediate buffer work, looking into results of that + - Worked on the WASM stuff as well + - Question about RFB Buffer work and the status of that. + - May require JupyterRFB as a dependency + - If we do the toolbar, might need ipywidgets as well + - Might be some issues with closure and not saving the final state when done with the cell + - Could do some optional dependency magic similar to qt and other backends but a little more complex because of the Jupyter integrations + + - Greg + - Some Cartopy reviews, not spending much time on the project currently + + +### 3.11 status +- Primarily waiting on font work reviews + - #30161 has been updated and is the final PR to look at full integration + - No glaring bugs that Elliot has seen in the text rendering + - Might be nice to fix/figure out fraction bar differences +- Discussion about Agg resampling PRs +- [name=greglucas] asked a question about whether we are waiting too long for 2 reviews on complex issues where it might be hard to get 2 experts to review something. Should we instill more trust in the first reviewer / author if they are a core contributor? + +### Triage + +Some review of widget PRs and text / Agg PRs. Discussion about DPI handling and moving that to the canvas, a logical pixel intermediate and implications of doing so. + +### Next meeting + +Likely not many people on the next two calls with Christmas and New Year holiday. diff --git a/meeting_notes/2025/q1.md b/meeting_notes/2025/q1.md deleted file mode 100644 index 0e1b0f2..0000000 --- a/meeting_notes/2025/q1.md +++ /dev/null @@ -1,1504 +0,0 @@ -# Matplotlib Weekly Meeting: Jan 09 2025 - Sep 4 2025 - -**A regular sync meeting for the project's maintainers, which is open to the community.** Everyone is welcome to attend and contribute to conversations. - - - -###### tags: `2025 dev call` - - -Call co-ordinates: Thursdays @ 21:00 (9:00PM) Berlin time (20:00 UTC during winter, **19:00 UTC during summer**) - -[

Zoom link

](https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09) - -### [Find your time](https://time.is/2100_3_April_2025_in_Berlin/UTC/New_York/MT/Vancouver/Hawaii?matplotlib_weekly_meeting) - -**NOTE** Open PR to adjust time next day light savings change, times must be in UTC [scientific python mpl calender entry](https://github.com/scientific-python/scientific-python.org/blob/main/calendars/matplotlib.yaml) - - ---- - -Previous notes: [Meeting Agendas](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [projects](https://hackmd.io/@matplotlib/projectslist) - -#### [RSE worklog](https://hackmd.io/@matplotlib/HyVoUHlSo) - ---- -# Sept 4 -_attending_: @dstansby, @efiring, @ksunden, @qulogic , @tacaswell, @story645 - -## Agenda - - [x] RSE updates - - [x] [name=hannah] new note b/c this one is laggy - - [x] discourse! - - [x] [name=hannah]needs coverage for docs meeting - -## Notes -### new notes -- in progress, will be done for next week - -### RSE updates -- Kyle - - 3.10.6 went out last Friday - - dataprototype work - - images support function containers in main repo branch - - previously had static containers - - Prep for 3.10.6 (going through release after meeting, waiting on CI) -- Elliott - - PR review - - finished text in pdf - - all characters out side of embeding limit (256) was drawn rather than being text - - now make lots of fonts (each with 256) - - enabled via improved subsetting - - caused some changes due to things now being hinted - - preparing some accessibility and alt-text changes for PDF - - libraqm is merged to font-overall branch - - working on new API for font feature and language labels - - rebased on libraqm, whats-new show effects - - rebased font property PRs ([#29395](https://github.com/matplotlib/matplotlib/pull/29695) and [#29794](https://github.com/matplotlib/matplotlib/pull/29794)) on top of `libraqm` [#30000](https://github.com/matplotlib/matplotlib/pull/30000) since it's close to complete, so they now show the real new behaviour - - Also combined all text/font changes into a "mega" branch https://github.com/QuLogic/matplotlib/tree/libraqm-full - -- Tom - - some review -### discourse -- difficult upgrade -- seeing load spikes, will keep an eye on - - may be llm bots scraping us -- down for approx. 1hr - - back up now w/ continued monitoring of server - -### 3.11 release plans -- rc by the end of September -- features: - - Fonts: https://github.com/orgs/matplotlib/projects/7 - - standalone figures: https://github.com/matplotlib/matplotlib/pull/29855 - - scroll to zoom: https://github.com/matplotlib/matplotlib/pull/30405 - - non-linear scales: try on log scale w/ and w/o patch - - intuition: better in data space than display space - -Docs meeting -- kyle is covering - - -# Aug 28 -_attending_: @ksunden @efiring @QuLogic @dstansby @story645 - -## Agenda - - [ ] RSE updates - - [x] [name=hannah][survey](https://github.com/matplotlib/surveys) - - -## Notes - -RSE updates -- Kyle - - Image support for data containers on main - - Prep for 3.10.6 (going through release after meeting, waiting on CI) -- Elliott - - rebased font property PRs ([#29395](https://github.com/matplotlib/matplotlib/pull/29695) and [#29794](https://github.com/matplotlib/matplotlib/pull/29794)) on top of `libraqm` [#30000](https://github.com/matplotlib/matplotlib/pull/30000) since it's close to complete, so they now show the real new behaviour - - Also combined all text/font changes into a "mega" branch https://github.com/QuLogic/matplotlib/tree/libraqm-full - - preparing some accessibility and alt-text changes for PDF - -Discourse -- back up now (wait and see) -- manual update took it down for approx 1hr -- health of server is being monitored - -3.11 -- Fonts: https://github.com/orgs/matplotlib/projects/7 -- standalone figures: https://github.com/matplotlib/matplotlib/pull/29855 -- scroll to zoom: https://github.com/matplotlib/matplotlib/pull/30405 - - non-linear scales: try on log scale w/ and w/o patch - - intuition: better in data space than display space - -Docs meeting -- kyle is covering - - -# Aug 21 -_attending_: @tacaswell @story645 @QuLogic @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) - -## Agenda - - [ ] RSE updates - - [ ] font review - - [ ] 3.10.6 - - [ ] 3.11 progress - -## Notes -- investigating coverage and build failures on font branches -- 3.10.6: - - [uv error](https://github.com/matplotlib/matplotlib/pull/30394): waiting amend to include uv recommended - -# Aug 14 -_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @tacaswell, @story645 - -## Agenda -- [x] [name=hannah] matplotlib linked in (may need @matplotlib.org email) -- [x] RSE updates -- [x] grant updates - -## Notes -### linkdin -- the "claim this org" does not work for Caswell -- Hannah will try working with linkdin to get control via customer service - - update: LinkedIn doesn't have phone support -### RSE updates - - Tom: - - off last 6 days - - Kyle: - - admin work, review work - - trying to get images working on main with dataprototype -- Elliott - - mostly review - - all font work is done and in PR form - - starting to put together docs / examples - -### Grant updates -- sumbitted NASA Y1 progress report - - -# Aug 7 -_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @tacaswell, @story645 - -## Agenda -- [x] RSE updates - - -## Notes -- Kyle - - finishing up 3.10.5 release - - some admin things - - work on data-prototype code in main -- Elliott - - mostly review - - minor work on font stuff - - re-addressing hi-dpi - - numpy's new release producer (with external repo) - - https://github.com/numpy/numpy-release - - release CI in a standalone repo which only release managers have access to -- Tom - - issue/PR review - - need to write annual report for NASA - -# July 31 -_attending_: @efiring, @tacaswell, @ksunden, @QuLogic, @dstansby, @story645 -## Agenda -- [ ] RSE updates -- [x] grant updates -- [x] 3.10.5 is out -- [x] 3.11.0 status -- [x] automation of release work? -- [x] [adopt-a-figure](https://github.com/matplotlib/matplotlib/pull/29855#issuecomment-3137415316) -- [ ] font PR review -- [ ] 3.11 general review - -## Notes -### Grant updates -- have a call out on UK for open source support - - @dstansby has been invited to submit full bid - - Successful expression of interest bid avaialble at https://github.com/dstansby/SSI-RSMF-round-1-MPL - - funding is UK based - - focus: - - data w/ units - - documentation - - testing and doc builds optimization/improvement -- No more news on NASA - -### RSE updates - - Tom: - - some review - - can reproduce the subprocess on CI hangs - - may be X11 related and a red herring - - Kyle: - - release out today - - bit of review - - work on data-prototype - - Elliott: - - PR review - - alt-text work is getting closer - - font work is stuck waiting for review - -### 3.10.5 is out - -- glitch in release process made 3.10.4 an orphan -- on pypi, docs build in-progress -- includes critical fix to support 3.14 - - will talk about back-porting further if someone asks and is not able to apply the patch them selves. - -### 3.11.0 status - - waiting for fonts - - adopt-a-figure - - multi-norm - -### Automation of release work - -- reduce human copy/paste/edit steps -- may spend more time automating the task than the task will take - - but likely worth it here to reduce steps -- wheel building is automated -- rest is mostly manual follow steps in [release guide](https://matplotlib.org/devdocs/devel/release_guide.html) - - automating would allow more explicit/longer commands than in release guide - - pushing still manual/requires human intervention - - goal is to mostly automate the github side if things - -### adopt-a-figure -- `plt.figure(fig)` to register figures to pyplot -- left: for high-dpi screens figure keeps getting upcast, process needs to be short-circuited here -- gives a way to reshow a figure -- concern that all figures are having their GUI canvases replaced - - there are some users who are reaching in and touching the GUI specific objects -- need to make sure that the disconnection is bi-directional - -### milestone guidelines -- current released: 3.X.N, -- next micro: 3.X.N+1 -- doc: 3.X-doc -- next: 3.X+1.0 -- next next: 3.X+2.0 -- previous: 3.X-1.N+1, 3.X-2.N+1 - -### font review! -https://github.com/orgs/matplotlib/projects/7 - -# July 24 -_attending_: @tacaswell, @ksunden, @QuLogic, @story645 - -## Agenda -- [x] grant updates -- [x] RSE updates -- [x] [name=hannah] https://accessviz.github.io/ -- [x] [name=kyle] Archiving old org repos -- [x] [name=tacaswell] 3.10.4 release plans / py314 -- [x] fonts update -- [x] 3.11 timeline -- [x] alt-text status - -## Notes -### grant updates -- NASA money is released, working on getting contracts running -### RSE updates -- Tom: - - grant management - - some review, GHA hardening follow up -- Kyle: - - review - - prepare for 3.10.4 - - will move sphinx-theme to trusted publisher this week -- Elliott: - - mostly review, get through 3.11 - - bunch of things need second review - - may adopt some of Tim's PRs - - got font collections working (PR is open) -### accessviz -2-4 page position -@story645 will start the repo/draft (is empty at mo - - https://github.com/story645/accessviz2025 (is empty at moment) - -due Jul 27 AOE -### Archiving old org repos - -No questions archiving - -- natgrid (Feb 2011) -- sample_data (Dec 2011) -- fcpy (Apr 2016) -- freetypy (Oct 2017) -- mplsizer (Jun 2018) -- mpl-altair (Dec 2020) - - -Contact people before likely archiving -- mpl-finance (Feb 2020) (replaced by mplfinance with no dash) -- mpl-docker (Jul 2020) (installs deps, but not actually mpl) -- grid-strategy (Mar 2020) - -Add note of new location (scientific python blog), then archive -- matplotblog (Mar 2022) (functionally moved to scientific python) - - -Old tutorials (maybe archive/reference from presentations) - -- Getting Started (Jan 2020) (Tutorial for Scipy 2019) -- AnatomyOfMatplotlib (Aug 2021) -- interactive_tutorial (Mar 2021) - -Maybe archive, but lean towards keep: - -- mpl-bench (Feb 2022) - -Start actively using again: - -- presentations (Aug 2019) - -### 3.10.4 release - -with py3.14rc1 out we need to get a 3.14 compatible version released. - -just waiting on backport PRs to finish CI and merge - -to 3.9.x? Wait for someone to ask - -### alt-text work -- have some work-in-progress commits - - pngs and svgs - - pngs have a standard - - svg wc3 standard -- have not done PDFs yet, but know where to put stuff -- went with simple "add alt text" api, not the full css set of roles - -### font work! - -- lanugage and font feature in normal API review state -- vector + libraqm can be made to work, but requires a bunch of refactoring - - will push forward with libraqm without vector support - - related to sub-setting and our current imlementation works on "characters" not "glyphs" -- see board for review work -- font collection needs some design choices #30334 - -### 3.11 timeline - -- 3.11 goes out when fonts land - - libraqm - - alt-text - -# July 17 -_attending_: @tacaswell @greglucas @ksunden @QuLogic @story645 - -## Agenda -- [x] grant updates -- [x] RSE updates -- [x] scipy updates -- [x] font updates -- [x] GHA hardening -- [ ] ~~PR review~~ - -## Notes -### grant updates -- NASA money for ROSES24 is moving along, now have an agreement -### RSE updates - - Tom: - - some issue/PR review - - Elliott: - - review - - fonts: - - no range stuff, sort that out later - - cleanup things to go with font work (deprecated kerning factor etc) - - most PRs are ready to go - - libraqm broke PDFs, expect to be fixable - - Kyle / scipy updates: - - went to scipy - - talk about data-container side of data-prototype project - - some follow up conversations, some positive feedback - - discussions with data-structure libraries - - positive feedback on plenary (multi-variable colormaps!) - - felt smaller than past years - - ran sprints - - but only one maintainer and a couple of friends - -### font updates -- see RSE updates -- maybe look at figure size rounding PR again (as long as we are re-generating images) - -### GHA hardening -- want to flip org-level default to be read only -- all matplotlib/matplotlib workflow explict set permissions - - fallout will fall on other repos -- @tacaswell will reach out to leads of sub-projects and give 1mo to get sorted - -(declared effient meeting and ended early) - -# July 10th -## Agenda -_attending_: @tacaswell, @story645, @QuLogic -- [ ] RSE updates -- [ ] font updates - -## Notes -- @ksunden at scipy -- @qulogic will push to his branch to show more of final work - - discussion of where FontFeatures should go - - text vs. fonts -> specifying multiple fonts for a specific text object - - problem is fonts are adhoc generated as keyword args to text - - https://github.com/matplotlib/matplotlib/pull/29695#issuecomment-3056289359 - - conclusion: move forward w/ Antony's suggestion applied to all properties - - deferred to 3.12 - - avoid documenting range until it's consistent across functions/properties & then expose to user - - can remove manual meson build for free type - - -# July 3rd -## Agenda - -_attending_: @ksunden, @QuLogic, @trygvard, @story645 -- [x] RSE updates -- [x] font updates - -## Notes -- @ksunden preppeing for scipy -- @QuLogic issue triage - - particularly focused on font stuff that would get fixed by overhaul - -# June 26 -## Agenda -_attending_: -- [x] RSE updates -- [ ] font updates - -## Notes -- @ksunden poster got bumped to talk so refocusing efforts there - - maybe practice talk next week -- @QuLogic mostly review backlog - - some typing ones for pyplot - - rebased font PRs (review) -- Did we get linkedin back? - -# June 19 -## Agenda -_attending_: @tacaswell, @ksunden, @QuLogic, @efiring, @story645 - -### Old Business -- [ ] RSE updates -- [ ] font updates - -### new business -- [ ] [name=hannah][norm: protocol vs ABC](https://github.com/matplotlib/matplotlib/pull/30149#issuecomment-2988318982) -## Notes -### RSE updates -- Kyle: - - preparing for scipy, finishing up travel/poster - - attened ML / pixi to manage the environments to do it - - issue review -- Elliott: - - mostly review - - font stuff is waiting for review - - looked at color emoji - - some fonts provide svg for emoji as latest iteration of how to do color -- Tom: - - not much time this week - - looking - -### norm: ABC vs protocol -- ABC is a stronger communication of interface, - - forced to implement abstract methods -- Protocols - - aren't forced to implement abstract methods - - good for many small coupled interfaces instead of multiple inheritance - - Possibly replacing artist with a half dozen protocols: alpha protocol, colorizer protocol, - - backends: blitting protocol - - extensive duck typing - -- subjective view of simpler: - - no metaclass + no binding to specific inheritance tree - - ABC is simpler, is straightforward traditional class inheritance - -- no compelling technical argument in either direction -- norm will blow up if methods aren't present and matching signature -- is instance(ABC) works, is faster than for protocols -- is instance w/ protocols is a runtime checkable thing that does subclass check for presence of method and static type checking for signature match - - allows more control of what's exposed to runtime checking -- ABCs will yell at class instantiation time, protocols better integrated with static type checking - -- Summary - - both will work fine, ABCs are status quo, don't expect multiple implementations which is where differences are expected to matter - - - -# June 12 -## Agenda -_attending_: @tacaswell, @efiring, @ksunden, @story645, @timhoffm, @QuLogic, Kari Hall, Kamila Stepniowska - - -### new business -- [ ] NF Code of Conduct onboarding meeting (NF coming to our meeting) - -## Notes -### Code of Conduct - -- summary of recommendation vs decision modes - - notifying NumFocus that matplotlib is using decision mode -- need a charter document for delegating some decision making/enforcement authority to mods/maintainers - - NumFocus will share boilerplate -- Decision process purposefully keeps Matplotlib out of the loop - - NumFocus potentially looping in project when conflict resolution is necessary - - option to opt in project leadership to who was in involved + outcome - - NumFocus would already loop in when Matplotlib needs to enforce decision (banning, losing commit rights, etc) -- To do: - - update goverance + add charters for moderator - - then pull request new CoC - -- Summary/meta information about reporting at end of year (modeled on PSF) - - - -# June 5th -_attending_: @tacaswell, @ksunden, @efiring, @story645, @trygve, @QuLogic, @timhoffm -## Agenda - -### Old Business -- [x] RSE updates -- [x] font updates - - -### New Business -- [x] [name=hannah] triage nomination project board -- [x] [name=QuLogic] [Type 1 subsetting tests](https://github.com/matplotlib/matplotlib/pull/20716#issuecomment-2942877182) -- [x] [name=ksunden] containers in main - - -## Notes -### RSE updates - - Kyle: - - playing around with integrating data-prototype work into core - - can we merge just the container part - - attended new contributor meeting (though only Melissa was there) - - Logistics for SciPy Travel - - Elliott - - font!s - - bit of triage, some hatching - - Tom - - just some review - -### fonts -- now have a project board: https://github.com/orgs/matplotlib/projects/7 -- have a long-lived feature branch on main repo - - commit the images changes "as we go", but rebase to have all changes it the last commit - - locked so that only Elliott can merge to it - -### triage nomination project board -- Will defer process discussion until we have Melissa available - -### font subsetting testing -- go with option 3 (only install fonts on some runners) - - -### multinorm - -- maybe do not inherent from Normalize - - protocol or ABC -- does usin a protocol have implecations for our use of type stubs - - no - -```mermaid -graph TD; - protocol:Norm-->Normalize; - protocol:Norm-->MultiNorm; -``` - -### containers on main -- can get a number of nice features from just the container half of dataprototype work - - allows for pulling data on demand rather than needing it all in memory -- only need just enough of the pipelines for query to work -- goal is maintain full back-compatiblity - - roll out w/ native matplotlib artists -- do not expand the scope of things that are "mapped" -- leverage the data kwarg to reuse datacontainers/pass container across functions -- creates a uniform interface for data -> (units, color, etc) -- moves the data attributes off the artist (line.data.x/line.data.y) into a container object - -# May 29 -_attending_: @efiring @ksunden @story645 @QuLogic -## Agenda - -### Old Business -- [ ] RSE updates -- [ ] font updates - -### New Business -- [ ] [name=hannah] triage nomination project board - - wait til next week - -## Notes -- @ksunden prepping presentation - - organizing thoughts on data prototype stuff -- @QuLogic more font work - - libraqm is nearly there - - has working for raster backends - - needs another PR for vector backends - - two stacked prs: freetype + libraqm - - freetype is giant b/c also has everything that needs to rebuild images - - debating changing how this review stuff is going - - maybe do everything targeting a feature branch - - shouldn't have heavy rebase issues b/c kinda standalone - - advantage is that image changes can be per pr rather than 1 big PR - - 2 commits per pr - 1 w/ test related image changes, 2 w/ all changes, merge 1st commit into feature branch - - add a PR for pdf/ps side of things - - PR count: @QuLogic has 4, @anntzer has 3 (2 are subsumed into freetype PR), jouni has a pdf one - - https://github.com/matplotlib/matplotlib/pull/30059 drop intermediate buffer is priority - - freetype, libraqm - - Freetype PR - - 12 commits - - 2 will be replaced by #30059 - - 4 are updating tests (could be contained to one PR) - - about 50 images change cause of kerning and ligarature (libraqm) - - 1 updating to freetype - - updating kerning and text hinting factor - -# May 22 -## Agenda -_attending_: @efiring, @greglucas, @QuLogic, @ksunden, @trygve, @story645 - -### Old Business -- [x] RSE updates -- [x] font updates -- [x] [name=hannah]New Contributor meeting - -## Notes -### New Contributor Meeting June 3rd -- @story645 needs someone to cover 'cause Jewish holiday -- will send @ksunden an invite -- @melissawm said she can cover - -### RSE updates -@ksunden was at scientific python summit -- lots of discussions on cross project compataibility, particulary on scalers vs. 0D arrays -- standardizing on what ArrayLike means -- spent time thinking on interactive tutorials tooling - - https://github.com/scientific-python/executable-tutorials - - Serving here: https://scientific-python.github.io/executable-tutorials/ - - having a set of markdown based jupyter notebooks - - CI/CD type things, deployed to website + jupyterlite online + jupyter locally - - https://scientific-python.github.io/executable-tutorials/ - - inline jupyterlite/executable - - https://github.com/matplotlib/matplotlib/pull/29506 - -@QuLogic -- updated WASM CI https://github.com/matplotlib/matplotlib/pull/29093 - - plan to move to project builds -- font work -- removing the intermediate buffer allows for color support (intermediate is in gray school) - - mplcairo doesn't use ft2font -- plan for fonts is individual commits + image updates on last commit -- alt text PR is targted for 3.11 -- potentially get a couple of font formats in as part of ongoing work - -@greglucas plans to start grant work - - -### Funding page/funding acknowledgements -- Discussion of steering-council to create that page - - large-scale acknowledgement of grants, including grant numbers. - - do gsoc and gsod count - - do we list numfocus small dev grants - -- debate about whether now might be a good time to have it b/c could be seen as partisan -- can also send stuff to numfocus for their announcements/annual reports/blog posts -- @greglucas will send email to steering-committee about it - - -### Multinorm - -- https://github.com/matplotlib/matplotlib/pull/29876 -- then plotting functions: https://github.com/matplotlib/matplotlib/pull/29221 -- then needs colorbars function -> aim is for next next release -- [x] @story645 will ask for trygve to get triage rights - - - -# May 15 -## Agenda -_attending_: @tacaswell, @QuLogic, @story645 -### Old business -- [x] RSE updates -- [x] font updates - -### New business - - [ ] public aria API - -## Notes -### RSE updates - - Kyle: - - at scientific-python summit this week - - Tom: - - some review - - Elliott: - - fonts - - alt text - -### font stuff -- #29816 will be a huge PR where commits are stacked - - is just freetype + other changes independent of libraqm - - change hinting factor from 8 to 1, means images change here and not w/ libraqm -- font features/language changes are API changes/independent - - should land before libraqm but needs a test font - - same alphabet set, English has ligatures but not German -- libraqm - - requires less image changes -- freetype in limbo b/c of @anntzer's feedback -- maybe add an rc_param for ligatures -- todo: pulling up more than one font from file -- adding superfamilies - needs design discussion -- alpha compositing [#30043](https://github.com/matplotlib/matplotlib/pull/30043) - - should have reference for where math/procedure comes from - - smoother alpha compositing between adjacent glyphs - - -### aria api -- https://github.com/matplotlib/matplotlib/pull/21328 - - add aria properties to artist - - set_aria and take a blind dictionary, do we want to validate to known aria types - - maybe validate if keys are allowed to take values/ validate values when possible - - in documentation add that this is for downstream consumers, we only use to pass along to filemetadata - - do we want to fail/accept/warn? - - depends on how fast the standards move - - dateelements property in html -> free form dictionary - - look at attributes rather than roles, -- https://github.com/highcharts/highcharts/tree/master <- is apparently very good at accessibility -- stash alt_text on file metadata (png on info/text) -- how is update managed [comment](https://github.com/matplotlib/matplotlib/pull/21328#discussion_r1025694368) -- [widget](https://matplotlib.org/devdocs/gallery/widgets/index.html) - don't expose enough information for gui to use the information - - GUI toolkits render as rgba buffer - - missing focus + exposure of internal state - - tracks click through and updates png, can't tab to keyboard (GUI doesn't know it's a widget) - - add note about how our widgets are not accessible widgets, you need to use a GUI toolkit library for that -- svg can get all the things, static aria description is analog to alt text -- aria label is more about image + text, described by element - - telephone icon + telephone text -> description for icon comes from text - - description - describing things about element - -# May 8 -## Agenda -_attending:_ @tacaswell, @efiring, @QuLogic, @ksunden, @story645 - -### old business - - [x] RSE updates - - [x] font stuff - - [x] [name=hannah] CoC adoption timeline - - missed end of April deadline, next deadline is September - -### New business -- [ ] affliation/sponsership (offer from https://www.matplotlib-journey.com/) - - [ ] how do we feel about non-free external resources? -- [x] py314 compat https://github.com/matplotlib/matplotlib/pull/29393 - -## Notes -### py314 issue -- go ahead and merge it - -### CoC -- submitted form to adopt this round -- consensus of discussions is to go with response as the option - -### RSE updates - - Kyle - - gotten 3.10.3 out, docs need to rebuild - - planning meeting for summit next week - - data prototype communication / presentation work - - Elliott - - fonts! - - intra-PR review of code from Antony - - have full implemetantion of libraqm with font features + language - - PR with libraqm (just core, not features + language) - - Tom - - mostly swamped with other work - -### fonts - - incorperating Antony's changes - - place mathtext from the bottom rather than top - - remove some back-compat to reporduce bugs from ttconf (that we no longer use) - -### affiliation -- what is the ask? -- adding paid training to external resources w/o tracking (just kick back an optional contribution) -- endorsement: adding to our page fine, us on their page would be very high bar - - adding to our page might need some kind of bar - -## Notes - -# May 1 -## Agenda -_attending:_ @ksunden, @[anntzer](pXw4hSgTQF2--OciPYwa1w), @trygve, @QuLogic, @story645 - -### old business - - [x] RSE updates - - [x] font stuff - - [x] [name=hannah] CoC adoption timeline - - missed end of April deadline, next deadline is September - -### New business - -## Notes -### CoC -- needs timeline for pr/public comment period - - soft consensus towards independent arbitrator -### Font/RSE -- fonts waiting on some small things from @anntzer + @QuLogic - - 18181 may have backcompat code that needs to be removed - - needs review: [mapping of dvi glyph indices to freetype indices](https://github.com/matplotlib/matplotlib/pull/29829) - - timeline for freetype migration - - aim for 3.10.{2,3} -- PEP 735 (dependency groups) now implemented in PEP - - please try/review [#29281](https://github.com/matplotlib/matplotlib/pull/29281) - -### 3.10.x/RSE -- waiting on release critical draft PR: [deep copy](https://github.com/matplotlib/matplotlib/pull/29393) - - don't know if Python is keeping the change that motivated this PR or has suggested work arounds -- CI build release broken - - need to investigate which backports are failing tests - - some PRs that need to be merged: https://github.com/matplotlib/matplotlib/pulls?q=is%3Aopen+is%3Apr+milestone%3Av3.10.2 - -### RSE -- Kyle admin around summit - - -# April 24 -## Agenda -_attending:_ @QuLogic @ksunden @QWhXj01mSwmTjk5kN1H_qQ @story645 @tacaswell -### old business - - [x] RSE updates - - [x] font stuff - -### New business - -## Notes -### RSE updates - - Kyle: - - work on getting data-prototype on pypi - - some churn due to renaming (mpl-data-containers) - - Elliott - - font stuff - - rebased freetype (again) as all the place-holder stuff is in - - only one new issue in that the kerning looks off in someplaces - - spacing between a 't' and 'e' is off, reverts back to correct with libraqm - - fixed a bug in mathtex - - Tom - - some review, mostly other responsibilities this week - - -### fonts -- looking good -- @story645 will provide hebrew text to add to test image -- still need to look into the the above discussed kerning between t and e - - -# April 17 -## Agenda - -_attending:_ @QuLogic @ksunden @tacaswell @story645 - -### Old business - - [x] RSE updates - - [x] grant updates - - [x] freetype migration - - [x] mpl-gui integration progress - - -## Notes -### RSE updates - - Kyle: data-prototype stuff, goal is on pypi tomorrow - - Elliott: - - mostly font stuff - - updated PR enabling windows on arm (public beta on arm runners), no numpy wheels yet, so we are not running tests yet - - rebased freetype PR again - - found another old bug that Mike had already written a patch for - - moved language to text objects - - Tom: some issue / PR review, trying to drop py310 - -### Freetype migration -- still going -- computer modern alphabet looks a bit worse, but not sure if it appears in real words - -### last-resort font -- needs review + bump font cache number - -### mpl-gui - -- still agreement we liked last week's consensus - -# April 10 -_ -## Agenda -_attending:_ @QuLogic @ksunden @tacaswell @story645 @QWhXj01mSwmTjk5kN1H_qQ (@efiring) - -### Old business - - [x] RSE updates - - [x] grant updates - - [x] ultimate fallback font - -### New business -- [x] mpl-gui integration -- [ ] tex work -- [x] drop py3.10 support - -## Notes -### RSE updates - - Tom: healthy again - - Kyle: image support in dataprototype + inspection tools - - Elliott: mostly text stuff - - 29872 -> decorator to replace text with rectangle to buffer from font rendering changes - - rebased freetype 2.13 PR again - - found one more place we need to thread passing `Text` object through apis -### Grant updates - - none - -### last-resort fallback font - - just needs review - -### drop 3.10 -- we should do it on our schedule -- https://github.com/matplotlib/matplotlib/pull/29840 is (closed) PR from running a tool that was a bit more churn than we wanted -- mostly minor cleanup changes, no major new language features -- main work to do is rip out CI + metadata - -### mpl-gui [#29836](https://github.com/matplotlib/matplotlib/pull/29836) -- big picture: do we want this at all (what problems are we trying to solve): - - pyplot state/object stateless interface mixing - - unclear what's being tracked and what's not being tracked (what needs to be garbage collected?) - - consensus is towards minimal changes -- questions about naming / transition plans (in mpl-top level?, get its own?) - - pro of being in own namespace: - - gives future path of doing "now recommended thing" - - need to - - shim it underneath pyplot (pyplot manages everything) + own namespace where user manages everything - - put "nice" helpers in `mpl` to get Figure + Axes sets which never gets a GUI + import display to display -- current behavior in Matplotlib: - - plt.figure() -> creates GUI + registers with our global state - - Figure -> untracked figure object (normal Python gc rules) - - picks right backend on save - - no way to show via current machinary - - minimal change is to: - - add way to register figure to pyplot ``plt.{adopt, add, register}_figure`` and/or ```plt.show([list of figures])``` - - what's the priority queue for figures added to registry + added in show? - - show 'em all vs. show list of figures (maybe keyword or positional arg) - - no duplicates - - seperate figure creation from state management - - make a figure active via `plt.figure(fig)` b/c fig is currently a creation + retrievial API -- mpl-gui layers - - promotion machinary that matches figure object w/ approprirate figure canvas - - display: pass list of figure objects that it attaches GUI too, then runs event loop until dead - - state management (context manager): with figure(): -> calls display after the figure - - global registry (implemented like plt.ion by adapting a context manager) - - mpl & mpl-gui seperation of responsibilities: - - mpl: figure/subplot/etc creation helpers, - - mpl-gui: implementation of registeries/promotion stuff/etc, figure registeries - - pyplot uses mpl gui (mpl-gui is akin to _pyplot) - - -#### conclusions -- go with minimal apporach -- make it possible to (via `plt.figure`) register a "free" Figure with pyplot -- make `plt.show()` take a list of Figure objects that it will arrange to be shown -- declare victory for 3.11 -- mpl-gui stays as a radical experimental project - -# April 3 -_attending:_ @QuLogic, @tacaswell, @ksunden, @efiring, @story645 -## Agenda -### Old Business - - [x] RSE updates - - [ ] Grant updates - - [x] freetype upgrade - - [ ] ultimate fallback font - - [x] font shaping work - -### New business - - [ ] mpl_gui integration - - [ ] tex work - -## Notes -### RSE updates - - Tom: not much due to personal contraints - - Kyle: working on improving the visualization of the graphs in the artists that can be explained to someone else - - Elliott: font stuff. have libraqm working in all cases including pdf/ps. still working on ligatures. Can get same results as before, but new stuff is broken - -### Fonts! -- https://github.com/matplotlib/matplotlib/pull/29827 (remove images) -- https://github.com/matplotlib/matplotlib/pull/29816 (update freetype) - -Take advantage of regenerating all of the images to remove a bunch of "back-compat" settings (hinting and kerning_factor). - -- https://github.com/matplotlib/matplotlib/pull/29356 (last resort) - -Long discussion about where to put features and languages - -- https://github.com/matplotlib/matplotlib/pull/29695 (font features) -- https://github.com/matplotlib/matplotlib/pull/29794 (add language parameter) - -Came to conclusion to put both on the `Text` object and require backends to -pull language/feature information from that. - -Only do `Text` object level granularity for now (and open an issue to implement sub-string application) - -# March 27 -_attending_: @ksunden, @efiring, @QuLogic, @anntzer , @story645 - -### Old business - - [ ] RSE updates - - [ ] grant updates - -### New business -- https://github.com/matplotlib/matplotlib/pull/29807 - -### Notes -- kyle: mostly data prototype stuff -- Elliot: freetype/text work - - -### March 20th -_attending_: @ksunden, @efiring, @ksunden, @story645 - -### Old business - - [x] RSE updates - - [x] grant updates - -### Notes -- [cve against freetype](https://nvd.nist.gov/vuln/detail/CVE-2025-27363) - fixed in 2.13.3 - - not sure if mpl is affected b.c. don't support the features being exploited -- plan is to transition to new freetype - - need new tests b/c can't do blanket tolerance update -- -### move release managers listing -- move listing of release managers from [governance](https://github.com/matplotlib/governance/pull/41) to: - - top of [release manager](https://matplotlib.org/devdocs/devel/release_guide.html) - - top of https://matplotlib.org/devdocs/users/next_whats_new.html -- link/embed release manager info from release guide - - -### March 13th -_attending_: @story645 @efiring @ksunden @timhoffm - -### Old business - - [x] RSE updates - - [x] grant updates - - [x] [name=hannah] numfocus coc: - - recommend or response version? From Kamila (Numfocus): - - **response**: "NF CoC WG will handle communication with the reporter and reported person. Any bans, or permissions restrictions would be rather on Project's since NF CoC WG will not have a physical possibility to do that. In some cases NF CoC WG would also need some help from a Project to contact the reported person, since they might not have a contact." "your community is obligated to implement the WG decision." - - **recommend**: "all the actions and communication with reported and reporting person is done by a Project", "The main argument here is that the report will be worked on by an external, independent, trained Working Group." you just need to acknowledge that you received the recommendations and you will consider them." "There is no defined path for what would happen if the decision would not be implemented. It's a matter for discussion. - - - -### New business -## Notes - -### COC - -Underlying questions: -- Do we trust Numfocus to handle this well? -- If we were doing it ourselves, or would want to handle things differently, how different would the outcomes be? - -Numfocus modes: -- response: - - pro: we as a project don't have to deal with it: we don't have to set up rules and procedures how to handle CoC issues - - pro: we are not experts and can delegate appropriate handling of the topic to a third party (like we do with legal stuff) - - pro: having a third party handling this removes possible conflict of interest - - con: concern is that recommendations won't align w/ projects values - - con: Project is yielding what might be viewed as a responsibility. -- recommend: - - needs codification/process for communicating decision w/ reporter + reportee + process (w/justifications) for amendments - - Whole process could be slower. Does that make for a better outcome, or worse, on balance? - -Proposal 1: go with response; if it doesn't work out, switch to recommend, or ditch Numfocus COC help. - -Proposal 2: go with recommend; if it becomes a burden or causes problems, switch to response. - -### March 6th -_attending_: @tacaswell, @efiring, @rcomer, @ksunden, @story645 - -### Old business - - [x] RSE updates - - [x] grant updates - - [x] [name=hannah] numfocus coc: - - recommend or response version? - - response - numfocus working group manages consequences & enforcement - - recommend - matplotlib COC commitee manages consequences & enforcement (WG gives recommendations) - - multiple projects want clarity on moderation guidelines, Numfocus suggests using online event guide for now - -### New business -## Notes -### RSE updates -- kyle - - scipy talk propsoal in - - Cleanup of 3.10.1 release (docs/announcement/etc) -- elliott - - on vacation! -- tom - - some review - -### CoC updates - - two modes of opting-in - - respond - - recommend - - discussion of prompt moderation is a common discussion across projects - - one way to think about this is all maintainers are delegated "event staff" - - NF is working on clarifying guidance for this - - -# Feb 27 -_attending_: @tacaswell @ksunden @trygvrad @story645 @QuLogic - -## Agenda -### Old business - - [x] RSE updates - - [x] grant updates - -### New business - -## Notes -### RSE updates -- Elliott - - fonts! - - libraqm working except for font fallback - - 2 PRs coming setting up features for libraqm - - last resort font done (but docs are not buliding right) - - sent mail from discourse to mailtester which reports everything is good - - off for next 2 weeks -- Kyle - - 3.10.1 is tagged - - currently fighting latex doc build - - working on scipy proposal (now due next week instead of yesterday) -- Tom - - some review, moving grant paper work along - -### scipy -- tutorial? - - no descion yet - - -### social media stuff -- no response from linkdin -- bluesky verification is doen - - -# Feb 20 -_attending_: @tacaswell, @ksunden, @trygvrad, @story645 - -## Agenda -### Old business - - [x] RSE updates - - [x] grant updates - -### New business -- [x] NF CoC update - - have on-boarded and trained their working group (by ottertech) - - call to action in March to opt-in (as an existing project) - - NumFOCUS CoC Information Session Tuesday, March 4th, 8:00 - 9:00 am PST / 16:00 - 17:00 UTC https://numfocus-org.zoom.us/j/87592551095?pwd=Kcabspakme5pNm3omCvgGP1aAMbCzV.1 - - -## Notes -### RSE updates -- kyle - - data-prototype work - - making progress on 3.10.1 release out -- tom - - grant work -- Elliott - - webservers cut over to new droplets - -### grant updates - - NASA still moving - -### CoC -- action in March on our part -- adopting this would be governance change - -### PRs - -##### multivariate colormapping -- https://github.com/matplotlib/matplotlib/pull/29221 - - aiming for 3.11, - - next stages are example/user guide docs + colormaps - - - - -# Feb 13 -_attending_: @tacaswell @ksunden @greglucas @story645 @QuLogic @timhoffm - -## Agenda -### Old business -- [x] RSE Updates -- [x] NASA status -- [x] [name=hannah] [bluesky verification](https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial) - - @matplotlib.matplotlib.org - - allows for @*username*.matplotlib.org if we wanna allow third party packages to register - - @matplotlib.org - - technically we can do both -> @matplotlib.org doesn't prevent @*username*.matplotlib.org - -### New business - -### Issues and PRs -* review backlog: - - [name=hannah][Fix behaviour of Figure.clear() for SubplotParams](https://github.com/matplotlib/matplotlib/pull/27183) - - [x] [name=greglucas]Order of setting norm changes depending on colorbar on figure or not https://github.com/matplotlib/matplotlib/issues/29522 - - [x] [name=hannah][hatchcolor in collections](https://github.com/matplotlib/matplotlib/pull/29044) - - versioning backends - - using GraphContext instead of parameter list in `draw_path_collection` -## Notes -### Nasa grant 2024 -- still moving (on both sides) - -### RSE updates - - Kyle: - - still making progress on data prototype work - - working on organizing, getting everything on one branch - - Tom: - - some review - - Elliott: - - work on website - - no complaints about discourse so will turn off old droplet - - preparing to move main website droplet to f41 (from f39) - - email sending on discourse - - had no DMARC records - - things that go into DNS that say to check other verications (that we do have setup) - - set DNS to say "please check and report errors" - - will get reports if it fails - -### bluesky -- going with `@matplotlib.org` does not prevent adding user names in the future -- go with the simpler -- @story645 will do bluesky side, @QuLogic will do DNS side - -### linkdin -- have a ticket in to get control of matplotlib company page - -### order of setting norm changes depending on colorbar on figure or not -- can autoexpansion go into drawing of the images on collection so that it would autoexpand the norm - - mayb norm?colorbar? fail at drawtime, maybe warning but draw correctly - - problem is that colorbar is calling an eager draw_without_rendering? - - for calculating the values from the norm - - potentially move the autoscale logic out of colorbar into colorizer - - or move the computaion/resolution logic to colorbar `.draw` - - might have singular value problems - - Move singular expansion logic on the colorbar over to the Norm autoscaling logic - - This may impact people who draw images without colorbars because previously the images would choose the "low" color, whereas we would autoexpand symmetrically. - - Do we have issues with auto-expansion and different scales like a LogNorm choosing the non-center color for a singular norm expansion. - -### hatchcolor collections -- managing 3rd party backend compatability -- potentially changing the backend interface w/ a versioning interface - - possibly moving towards graphic context dataclass - - what would be needed to support more backends? - - potentially can transforms be movable? (intermediate layers for supporting 3D?) - - current backend API has a lot of fallbacks if backend doesn't support more specific method -- discussion continued on PR - - -### 3.10.1 -- maybe next week - - -# Feb 6 -_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @tacaswell, @ksunden, @QuLogic, @story645 - -## Agenda -### Old business -- [x] RSE Updates -- [x] NASA status - -### New businesses -- [ ] [name=hannah][matplotlib linked-in](https://www.linkedin.com/company/matplotlib/) -- [ ] [name=hannah][GSOC decision ](https://github.com/matplotlib/matplotlib/issues/29583) - -## Notes -### RSE updates - - Kyle - - still chipping away on data-prototype - - Tom - - minimal work, paper work is moving - -- Elliott - - working on text stuff - - working on website - - plausible work - - updated discourse, caused minor down time - - old droplet is still running if we need to investigate - - turn of within a week - -### GSOC -- @story645 will email matplotlib-dev to see if anyone wants to mentor, currently does not look like we can support this - -### linkd-in -- @tacaswell will try to get admin access -- @story645 wants access to publish announcements -- -### bluesky - -- @story645 will write up options for domain verification for next week - -# Jan 30 -_attending_: @tacaswell @pawvelJ [@efiring](@QWhXj01mSwmTjk5kN1H_qQ ) @ksunden @QuLogic @story645 -## Agenda -### Old business -- [x] RSE Updates -- [x] NASA status - -### New business -- [ ] [name=hannah] What to do about X (contingent on Pawel attending the meaning) -- [x] [name=tacaswell] wheel policy - - propsoal: if all our compiled dependencies have have wheels, CIbuildwheel will build it, the build is a reasonable time, and someone asks for it, then we will build that platform. Tier 1 and Tier 2 platforms we build wheels for (https://peps.python.org/pep-0011/) will block a relaese if the wheel builds are failing, all other platforms do not block a release and wheels may be skipped - - -## Notes -### Introductions - - Pawel joined this week - -### RSE updates -- Kyle - - rebuilt and republished 3.10 - - continue on data-prototype stuff (mostly line and image so far) -- Elliott - - took care of Fedora build issues - - expand tolerances to additional archs, there is PR - - font work is on going, need to open PRs - - https://github.com/matplotlib/matplotlib/pull/29356 -- Tom - - not much, some paperwork - -### wheels -- propsoal seems good, @tacaswell will write up - -### twitter - -- remove icon/demphasize participation on public site but keep status quo -- - -# Jan 23 -_attending_: @tacaswell, @efiring, @ksunden, @timhoffm, @scottshambaugh, @story645, @QuLogic, @trygvrad - -## Agenda -### Old business -- [x] RSE updates -- [x] NASA status - -### New business -- [x] [name=hannah][where to put repllite?](https://github.com/matplotlib/matplotlib/pull/29506) -- [ ] [name=tim] [Grouped bar chart PR #28560](https://github.com/matplotlib/matplotlib/pull/28560) is ready for review -- [x] [name=scott] Numpy vectorization speedups in [3D plot_wireframe #29399](https://github.com/matplotlib/matplotlib/pull/29399) broke some plots. The potential fixes in [#29435](https://github.com/matplotlib/matplotlib/pull/29435) all change the return somehow. Revert? 10x speed difference. -- [x] [name=scott] https://github.com/matplotlib/matplotlib/pull/29287 ready for review -- [x] [name=trygvard] [bivariate/multivariate cmap #29221](https://github.com/matplotlib/matplotlib/pull/29221) -## Notes -### RSE updates -- Kyle - - more pyplot compatibility with data prototype - - roll out plan - - start with separate project on pypi -- Tom - - some review work, CI work -- Elliott - - finishing up performance work - - got 17% memory and 35% runtime savings in RGBA pipeline (avoid copies!) - - look at making colormapping step faster by going to c++ and removing a lot of copies - - looks like there may be a factor of 4 available - - showing up as a problem now due to 3.10 change to interpolation stage - - when interpolating in data space always colormap a "small" array - - https://github.com/matplotlib/matplotlib/blob/769f7a49403a8f520f0a0283d8744a98b7ed761d/lib/matplotlib/colors.py#L770-L838 - - np.vectorize didn't help - - numexpr or numba might help, but not acceptable as deps - - looking at failing builds on fedora - - may need updated tolerances on non-x68_64 platforms - - font work? - - PRs next week - - - -### replite -- start on docs landing page (stable/index) - - make sure it builds before moving it around - - make sure not putting heavy network load in most common pages -- potentially move the live repl to quickstart -- adding repls and launch buttons to examples is downstream PR - -### grouped bar charts -- ready for review - -### 3D things broke -- looking at how to preserve speedups without breaking non-square wire frames -- most of the speedup was in the autoscale code, maybe call that twice rather than forcing a ragged array with nans - -### discussion about color map -- why do we do lookup? - - general method that works for all color maps - - has performance benfits - - some discritization artifacts still possible with our default size - - intentionally using a small number of samples when can lead to better compressed pngs - -### multi-dimension colormap -- @tacaswell will look today or tomorrow -- needs review -- adds extra call signature to `imshow` -- pay attention to docstrings - - -### what to focus on in grouped bar chart - -# Jan 16 -_attending_: @tacaswell @timhoffm [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) @ksunden @QuLogic @story645 - -## Agenda -### old business -- [x] NASA updates -- [x] RSE updates - -### new business -- [x] [name=hannah] consolidate [Summer of Code project ideas](/bcLJpTPdSCuKTJd2OSeYeQ) and [Medium sized projects](/GgtrcXTlTfuoyHO76_LMLg) pages - -## Notes -### NASA -- grant paper work is moving so we can start spending money - -### RSE updates -- kyle - - planning stages for data-prototype work to be ready for scipy submissions - - list of pyplot functions to re-implement - - wrap of partially implemented thoughts - -- elliott - - catching up, going over PRs - - took a break on font stuff - - looking at performance thing - - have an open PR to cut down memory usage in RGBA stage interpolation - - 25-30% memory reduction for 100K size increase on the so -- Tom - - mostly grant management - - some review - -### consolidate small-medium project pages - -ok, sounds good to do - -### trade mark claims - -paperwork is moving with legal - - - - -# Jan 9 -_attending_: @greglucas, @efiring, @story645, @tacaswell, @rcomer, @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) @timhoffm - -## Agenda -### old business -- [x] 3.10 doc tweaks -- [x] NASA updates -- [x] RSE updates - -### new business - -## Notes - -### RSE updates -- Tom - - time off - - python-build-standalone - - https://github.com/astral-sh/uv/issues/6893#issuecomment-2565965851 - - some review -- Kyle - - some time off - - working on planning the next 2 months of work - - catch up - -### what big stuff is in the pipe? - - bivariate colormap (has PR, needs review) - - bezier work (from Bruno) - - PR to vectorize 3D code - - some have been resurected by Scott - - font work! (raq) - - groupbar chart - - what artists get a label attribute - - start to look at ticks - - -### [labels](https://github.com/matplotlib/matplotlib/issues/29422) - - to ideas: - - want to have a unique id so you can select artist by name [2](https://github.com/matplotlib/matplotlib/issues/29429) - - sometimes people (ab)used the label API for this - - label is top-level artist property to be used in legends even on things that should never be in the legend (like the Legend itself or the whole figure) diff --git a/meeting_notes/2025/q2.md b/meeting_notes/2025/q2.md deleted file mode 100644 index 44ec5c1..0000000 --- a/meeting_notes/2025/q2.md +++ /dev/null @@ -1,2283 +0,0 @@ -# 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. - -## Sep 11 2025 - - -###### tags: `2025 dev call` - - -Call co-ordinates: Thursdays @ 21:00 (9:00PM) Berlin time (20:00 UTC during winter, **19:00 UTC during summer**) - -[

Zoom link

](https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09) - -### [Find your time](https://time.is/0900PM_19_March_2026_in_Berlin/UTC/New_York/MT/Vancouver/Hawaii/London?matplotlib_weekly_meeting) - - ---- - -Previous notes: [Meeting Agendas](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) -Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) - -#### [projects](https://hackmd.io/@matplotlib/projectslist) - -#### [RSE worklog](https://hackmd.io/@matplotlib/HyVoUHlSo) - - - ---- - -# August 20th - -_attending_: - - -## Agenda - -- [ ] [name=iccir] - Requesting a brief history of "ToolManager" and "NavigationToolbar2" if we have time. - -## Notes - - ---- - -# August 13th - -_attending_: @iccir, @story645, @ksunden, @QuLogic - - -## Agenda -- [x] RSE updates - -## Notes - -### Data containers -Data container phase: - -uniform interface for artists that go in axes - - defined by the `describe` and `query` methods - -- subphase 1: core (artists will use this functionality) - - reviewer documentation: - - how to review core and future artists - - classes ported over from datacontainers/vendored internally: - - protocol class for containers - - definition of description - - `arraycontainer(arrayLike)` - - `funccontainer(callable: arrayLike->arrayLike)` - - minimum version of graph data->viz pipeline - - e.g. transfrom edge - - theoretically parameters are graph edges are encoding functions - - e.g. color - - single artist: Line2d w/ Line2D data container - - goal is `query` will take over a lot of what `set_data` is currently used for - - helper functions - - graph building for `data -> axes -> display` transforms - - error handling - -- subphase 2: extending to more artists types - - e.g. image, patch, etc - - 3d will likely happen in parallel - - might be split up by families: AxesImages, Patches, Text, etc. - - then collections - -- note: delay implementing changes on artist 'til more artists need it - - private helper functions when shared by few artists - - base stuff til all artists are implemented - -- subphase 3: extending functionality: - - more visual parameters: eg color, shape, etc - - initial is name data fields w/ parameter name - - needs discussion: how data field->visual parameter associations happen in API - - semantic containers: e.g. stats like hist - - downstream containers: e.g. sympy, pandas, - - maybe reconcile mpl-data-containers w/ built ins - -visual pipeline phase: -- worry about after DC is in - -# August 6th -_attending_: @iccir, @efiring, @ayshih, @scottshambaugh, @QuLogic, @ksunden, @tacaswell, @story645 - - -## Agenda -- [x] RSE updates -- [x] [name=hannah][32113: 2 reviews for large doc prs](https://github.com/matplotlib/matplotlib/pull/32113) -- [] [name=hannah][29124: plotting section for user guide](https://github.com/matplotlib/matplotlib/pull/29124) -- [x] [name=ayshih][32107: alpha handling when flattening images](https://github.com/matplotlib/matplotlib/pull/32107) - - -## Notes -### RSE updates - - Kyle - - planning around data prototype - - how we get things merged - - PR review - - Elliott - - short week due to holiday - - looked at WASM, confused again - - reviews - - merged core text - - reviewing blend modes - - cartopy - - waiting on others - - Tom - - emails out looking for grant collaborators, starting to hear back - -### 2 reviews for large docs -- fuzzy definition of large docs but will clarify for now -- side discussion on loosening review requirements for code - - @tacaswell strongly opposed - -### alpha -- simplified code and fixed bug - -### blending modes / groups -- Elliott still reviewing - -### Mac work -- progressing -- @iccir looked at pybind11 and nanobind and decided that direct binding is still best - - pybind11 increases binary size -- @iccir will make an issue/project/something listing all the moving pieces - -### toolbar icon -- https://github.com/matplotlib/matplotlib/pull/32095 -- needs second review - -### oxipng -- https://github.com/matplotlib/matplotlib/pull/29925 -- waiting on broken github actions + rebase, need to verify new precommit works - -### GSOC update - - discussed simplified scheme for being explicit about layers rather than implicitly extract from the artist tree as discussed on call last week - ---- - -# July 30th -_attending_: @iccir, @tacaswell, @QuLogic, @story645, @ksunden, @scottshambaugh, @timhoffm - - -## Agenda -- [x] RSE updates -- [x] [name=iccir] macOS backend questions -- [x] GSOC updates (+ Layering API) -- [ ] [name=hannah][32113: 2 reviews for large doc prs](https://github.com/matplotlib/matplotlib/pull/32113) -- [ ] [name=hannah][29124: plotting section for user guide](https://github.com/matplotlib/matplotlib/pull/29124) - -## Notes -### RSE updates - - Elliott - - cartopy work - - close to getting an update out - - some decisons on projects still need to be made - - GSOC work - - looking at WASM tests again - - know what, but not why - - Kyle - - paperwork - - GSOC moving forward - - Tom - - tiny bit of review - - un-pushed work on stub-files for backends - -### macOS backend -- have a rework branch that addresses every open issue -- do we want to do a dual release with old vs new - - merge new + keep old 1/ two cycle deprecation - - slowly patch in changes across the release cycle -- nothing changes from the user perspective - - mostly improvements that are better integrations w/ mac - - also some blitting improvements - - no changes to code -- scale of change: - - splits out macos backend into obj-c pairs to conform to objc standards, might lose git history - - figuremanager now a window controller, figurecanvas is now view - - cleanup event loop - - will go in as chunked/staged/stacked PRs -- risk/failure modes - - limited use of matplotlib, might not catch less common use cases - - worst case is some fancy event/interaction doesn't work - - remediation is downgrade and wait on bugfix release -- would maybe need a .mm (objc c++) glue file -consensus: -- introduce new backend as macOS, keep old as mac/osx - - might delete before release, then wire up aliasing/renaming - - if we rename the backend, then rename rcparams to new name and keep old name as backends - -### GSOC: -- individual rendering layers, maybe individual renderers down the line - - marimo does JS rendering on top of mpl rendering - - zoom boxes is client side rendering - - better seperation between GUIs and renderer -- render to seperate buffers & then composite buffers - - layer attribute that ids layer - - filter by layer for draw - - maybe: ```layer = fig.add_to_layer(id, obj(ax))``` - -Managing the draws: -- before: figure.draw just draws children -- after: build draw tree as groupby layer - - has a problem w/ artist that draws children in child method - - possibly some double draws/maybe impart constraints - - some explicit subartists some containers of artists - - parent child currently manages removal & maybe knowing about each other for transform purposes -- alt: maybe as a decorator on draw that filters on layer - - or as a meta class that modifies draw - -todo: -- patch `fig.add_artist(obj, layer=)` - - maybe down the line `ax.add_artist` or threading threw or whatever - - use this to bypass insertion into draw tree - - down the line -- move layering management to figure - - - -# July 23rd -_attending_: @efiring, @ayshih, @iccir, @story645, @ksunden, @QuLogic, @melissawm, @trygve, @tacaswell, @timhoffm - -## Agenda -- [x] RSE updates -- [x] [name=QuLogic] Cairo backends (cf. [#32084](https://github.com/matplotlib/matplotlib/issues/32084)) - -### PRs & Issue -- [ ] [name=QuLogic] [pybind11 v3 #30291](https://github.com/matplotlib/matplotlib/pull/30291) -- [ ] [name=QuLogic] [std::visit to exhaust std::variant possibilities](https://github.com/matplotlib/matplotlib/pull/30773) -- [ ] [name=ayshih] [path snapping #32018](https://github.com/matplotlib/matplotlib/pull/32018) -- [ ] [name=ayshih] [blend modes, of course! #31162](https://github.com/matplotlib/matplotlib/pull/31162) - - -## Notes - -### RSE updates -Melissa: -- enforcing that PR templates are filled - - unfilled templates are usually a strong signal - - [shorten PR template](https://github.com/matplotlib/matplotlib/pull/32100) - - [pr content check](https://github.com/matplotlib/matplotlib/pull/32082) -- poll on discourse about meeting times - -Elliott: -- GSOC, midterm evals due -- 3.11.1 released -- couple of things came in for 3.11.2 -- working on subpixel snapping for markers and AGG stuff - -Kyle: -- GSOC -- [mpl-altair](https://github.com/matplotlib/mpl-altair) -> matplotlib backend - - instead just do a straight vega-grammer to mpl implementation (akin to [plotnine](https://plotnine.org/)) - -Tom: -- Scipy - -### Cairo fonts -- cairo can't support new features b/c of current API making it so we can't use glyph indices - - limitations of toy API - - choices: - - give up on cairo for fonts and use freetypes instead - - might cause problems with pdfs (selecting text?) - - mplcairo uses full API instead of toy API, so use this instead - - would require an extra install (unless we want to inline this) - - sticking point was c++ version incompatability which might be resolved - - @qulogic long term this is probably the best path forward -- proposal: - - deprecate cairo backend - - special case 'mplcairo' - - make it an extras `matplotlib[mplcairo]` - - next step: @qulogic will open an issue w/ proposal to deprecate Cairo - -- is cairo worth maintaining? - -tangent: seperate renderer from toolkit - - - - -# July 16th -_attending_: @melissawm, @ayshih, @QuLogic, @story645, Scott Shambaugh, Ricci Adams - -## Agenda -- [ ] RSE updates - -### PRs & Issue -- [fix for path snapping #32018](https://github.com/matplotlib/matplotlib/pull/32018) -- [fix for mouseover and canvas height #32038](https://github.com/matplotlib/matplotlib/pull/32038) -- [x] [multivar imshow](https://github.com/matplotlib/matplotlib/pull/30597) - - [x] [Commonize 3D zmargin handling with x and y axes](https://github.com/matplotlib/matplotlib/pull/31287) - -## Notes -### RSE updates -- Tom & Kyle - scipy -- Melissa - - set up and run triage meetings ([Matplotlib Triage Team Guide](https://hackmd.io/@matplotlib/triage) - feedback on this presentation is welcome!) - - asking for next ideas - - bringing in meeting notes to meeting - - Idea: clean up architecture doc PR (tick whatever is done from the todo list) - - finish up dev docs rearch [26196](https://github.com/matplotlib/matplotlib/issues/26196) - - Audit style docs/format docs [26392](https://github.com/matplotlib/matplotlib/issues/26392) - - Audit/summarize automated AI review tools available to see what would fit the repo best. Maybe start with API guidelines - - Autoclose PRs that don't correctly fill PR template: investigate if this is easy to implement -- Elliott - - 3.11.1 work - 1? PR left on milestone? - - cartopy work, waiting on pyproj - -### jupyterlite -- hang up is test w/ fonts slightly different/ WASM issues -- might be ok w/ pyodide pre-built wheels - -### 3D margin - -- fix either way, question is which margin to use: - - keep plots looking mostly the same - - improves the look -- half the tests get updated -- major regression change w/ either choice - -### mpl-bench -- devs should have write access - -### multivar and z margins -need decisions from @timhoffm - -# July 9th - -_attending_: @tacaswell, @ksunden, @ayshih, @qulogic, @story645 - -## Agenda - - [x] RSE updates - - -## Notes -### RSE updates - - Kyle - - general maintence - - reviewed accessiviz - - submitted, deadline pushed to July 21 if we want more edits - - work an dataproto type - - GSOC - - Elliott - - 3.11.1 work - - review accessivis paper - - looked at discourse for why mailing list forwarding is not working - - will think about how to deal with dropped mail - - cartopy - - fixed up their tests with 3.11 - - waiting for review - - -> [name=hannah] is very grateful for everyone's help - -- Tom - - some review -- Meliisa - - Triage meeting: https://hackmd.io/@melissawm/HysO1VNXMx -### scipy notes - - next week - - Tom and Kyle will be there and miss this call - - need to write tools plenary - - hit font work - - advertise triage team/NCM meetings - - tease alpha blending - -### Blend modes -- can support fancy blends in vector backends that do not natively supported -- not supported means no clear path to implementation -- most likely done - -### docs milestone -needs to be manually published, should either automate or drop - - -# July 2nd -_attending_: Scott Shambaugh, @ksunden , @tacaswell, @QuLogic , @timhoffm , [@anntzer](@pXw4hSgTQF2--OciPYwa1w), @story645, - -## Agenda -- [x] RSE updates -- [x] 3.11.1 ? -- [x] [name=hannah] [accessviz](https://github.com/story645/accessviz) due July 8th -- [ ] [name=scott] [3d offsets](https://github.com/matplotlib/matplotlib/pull/31279) -- [ ] blend mode PR - -## Notes -### RSE updates - - Kyle - - working on plan to review data prototype and prep - - GSOC - - Elliott - - GSOC - - working on cartopy - - 3.11 looked at pdf subsetting - - there is subsetting bug in PDF (reported as surprise ligature) - - Tom - - minor review - - dealt with a privacy disclosure -### 3.11.1 -- no emergency -- aim for next week - -### acessiviz -- Kyle, Tim, and Scott will look at - -# June 25th -_attending_: @ksunden @tacaswell @QuLogic @efiring @story645 @ayshih @scott shambaugh - -## Agenda -- [x] 3.11 fallout -- [x] RSE updates -- [ ] blend modes - -## Notes -### 3.11 fallout - - some minor regressions, mostly fixed - - -### RSE updates -- Kyle - - looking at data prototype stuff - - some review, helping with 3.11 - - still looking at gif read failure on azure - - one failure on one azure job on windows reading a baseline gif -- Tom - - mostly swamped with other stuff -- Elliott - - 3.11 followup - - GSOC - - looking at cartopy release prep - - - -# June 18th -_attending_: @ksunden, @melissawm, @QuLogic, @ayshih, @story645, @trygve - -## Agenda -- [ ] RSE -- [ ] GSOC -- [ ] 3.11 -- [ ] PR review - - [Add path.sketch_seed to control sketch randomness #31311](https://github.com/matplotlib/matplotlib/pull/31311): API design decision - -## Notes - -### RSE -- sphinx-gallery implemented tags, @melissawm will investigate transtion - - tagging as sprint activity - - @ayshih : SunPy is using this new functionality (in fact, it was developed under SunPy OSTFL funding), and here's an [example page](https://docs.sunpy.org/en/latest/generated/gallery/plotting/index.html) that shows how tag filtering works -- 3.11 has been out for a week - - 3.11.1 planned out soon - -@QuLogic: -- investigating 3.11 bug reports -- fixing type hints -- helping w/ cartopy release -- gsoc - -@ksunden: -- review, gsoc, data-prototype -- debugging failing windows test - -@melissawm: -- deactivated inclusion of items in new contributor board -- consolidated dependency(dependabot) labels -- started triaging backlog -- [Add path.sketch_seed to control sketch randomness #31311](https://github.com/matplotlib/matplotlib/pull/31311): API design decision - - Needs verification that tests are implemented correctly, not just an API decision. - - Might be a good sprint task? - -### Path.sketch_seed -- most of the review work is checking that the tests check what they're supposed to -- API decision of seperate parameter or extend sketch to 4 tuple - - reason for seperate was mostly b/c implementation for seed management is independent of sketch - -### GSOC - -- Tue/Thu schedule to assign tasks and onboard contributor into MPL draw stack. - ---- -# June 11th -_attending_: @efiring, @tacaswell, @QuLogic, @ayshih, @ksunden, @story645 - -## Agenda -- [x] RSE -- [x] GSOC -- [x] 3.11 - - -## Notes -### Scipy / JDH lunch discussion -- [x] @story645 will send email to our dev list soliciting stories / memories - -### RSE -- Tom - - very little mpl last two weeks -- Kyle - - GSOC - - found an issue to add pre-draw event in our event system - - still working on data-prototype PR -- Elliott - - closed the 3.11 milestone - - ball is rolling on doing final release - - PR reviewed, tag locally - - -# June 4th -_attending_: @efiring, @ayshih, @ksunden, @story645, @scottshambaugh, @melissawm, @timhoffm, @QuLogic, @trygve - - -## Agenda - - [x] RSE updates - - [x] GSOC updates - - [x] 3.11 - - [x] Multivariate colorbars – https://github.com/matplotlib/matplotlib/pull/31214 - -## Notes - -### RSE -- [name=Elliot] 3.11 prep, docs/review -- [name=Kyle] 3.11 review, gsoc, data prototype -- [name=Melissa] - - https://hackmd.io/@matplotlib/triage - - Updating some labels? - - https://github.com/matplotlib/matplotlib/pull/31479 - -### New contributor meeting -- make next one triage focused - - explain labels - - discuss patterns for finding issues - - walk through triage -- have more advert roll out -- use structured presentations: - - [Matplotlib Triage Team Guide](https://hackmd.io/ldtuYHHXSOmyXhdprUM7rg#/) - - [How can you contribute to Matplotlib?](https://hackmd.io/zdaQtgq0QsWjm95TSMw0YA#/) - -### GSoC -- discussion in https://discourse.matplotlib.org/chat/c/gsoc/21 -- work-log: https://hackmd.io/DIYP5uqhSi6D2ek4E8ObsA -- on going task: design work on where the bookeeping happens for overlay - -### multivariate -- rebase and merge [multivar imshow](https://github.com/matplotlib/matplotlib/pull/30597) -- rebase colorbar PR onto imshow - - needs review - -### 3.11 -- [update sphinx theme](https://github.com/matplotlib/matplotlib/pull/31539) -- [reduce duplicates in contributor stats](https://github.com/matplotlib/matplotlib/pull/31815) -- - -# May 28th - -_attending_: @tacaswell @efiring @ksunden vikash @QuLogic @story645 @timhoffm - -## Agenda - - [x] RSE updates - - [x] GSOC updates - - [x] 3.11 - - [ ] GSOC kickoff - -## Notes -### RSE updates - - Kyle - - review for 3.11 - - getting back onto data-prototype work - - starting to ramp up GSOC - - Tom - - mostly not - - Elliott - - 3.11 - - finished off docs - - posted update on downstream testing, can probaly close downstream tracker issue 31589 - - need to commit guide on how to deal with text test image changes - - some outstanding 3D bugs , have PRs for them - - examples from third-party examples with 3D looked ok - -### GSOC -- intros -- what is the project - - overlay API for Matplotlib - - this in the first call --todo: write short/pro-con on two approaches: - - layer concept inside figure (managed in draw) - - layer concept outside figure, (calls figure draw as part of managing layers) - -### 3.11 -- final within a week - - waiting on 3D + review of whats new - -# May 21st - -_attending_: @tacaswell @QWhXj01mSwmTjk5kN1H_qQ @ksunden @QuLogic @story645 @ayshih - -## Agenda -- [x] RSE updates -- [ ] PR review -- [x] 3.11 status - -## Notes - -### RSE - -- [name=melissa] (will join at the second half hour!) PRs waiting for review/decision: - - [DOC: Update triage team nomination instructions#31089](https://github.com/matplotlib/matplotlib/pull/31089) - - [Add template for new triage team invitation#47](https://github.com/matplotlib/governance/pull/47) - - [MAINT: Set "skip internal contributors" to PR welcome bot#31479](https://github.com/matplotlib/matplotlib/pull/31479) - - There is a current bug upstream but even when fixed I think it's a good idea to have this option set to true, which means creating the `GH_PAT_READ_ORG` secret. - - Another option is to close this PR and try to detect first-time-contributors from the triage board. - - Tom: swamped with other things - - Kyle: - - mostly review - - did spot check of recent pushes for malicious commits - - hardened some of our "do not push to branch with out PR" settings - - Elliott - - slow week (long weekend) - - through fedora rebuild and it appears all issues (other than image changes due to text) addressed - - waiting on docs update - -### 3.11 - - in home stretch, see Elliott's notes above - -### PR review -- blend mode PR https://github.com/matplotlib/matplotlib/pull/31162 -- https://github.com/matplotlib/matplotlib/pull/31703 the joys of floating point -- reviewed triage team, will merge tomorrow -- invite template in review process -- wait on bug upstream for new-contirbutor bot and look at alterantives / pinning back. - ---- - -# May 14th - -_attending_: @efiring, @ayshih, @QuLogic, @ksunden, @story645, @timhoffm - -## Agenda -- [x] RSE updates -- [ ] PR review -- [x] 3.11 status -- [ ] [name=hannah][Accessviz](https://ieeevis.org/year/2026/info/program/workshops/#accessible-vis) - - 3rd Workshop on Accessible Data Visualization - - due mid july (?) - - seeking feedback/co-authors: [draft](https://github.com/story645/accessviz) - -## Notes -### RSE -- RC2 released Tuesday - - fixed seaborne related tests failures - - cartopy CI indicates fixed CI - - @QuLogic prepping release notes -- @ksunden review + data prototype (mostly review) - -### 3.11 -- few test issues left, likely ghostscript related - -### accessiviz -- thesis: architecture/design decisions facilitates acessibility -- modeled on [bokeh accessibility audit](https://bokeh-a11y-audit.readthedocs.io/) - -### Blend mode and blend groups -- https://github.com/matplotlib/matplotlib/pull/31162 -- blend mode - - blends to below based on z order -- blend group which fixes bugs - - blend artists by groups - - needs renderer calls - open/close_blend_group - -- `ArtistGroup` helper function for plotting layer - - usually users don't call renderer directly - - calls draw on group w/ blend mode, result then gets added to draw stack - - - can this be spun into it's own thing for all things grouping artists - - this PR leaves `ArtistGroup` as example, spin off `ArtistGroup` as API as a standalone PR - -- How are artists currently grouped? - - collection of `same` Artist - - container of `different` Artists - - potential: compound Artist for semantic groupings - - PieContainer if it had a draw method - - > [name=hannah] we should document this in architecture docs - -# May 7th - -_attending_: @efiring, @timhoffm, @rcomer, @ayshih, @ksunden, @QuLogic, @story645, @tacaswell - -## Agenda -- [x] RSE updates -- [x] PR review -- [x] 3.11 status - - [x] [PolarTransform `apply_theta_transform` deprecation](https://github.com/matplotlib/matplotlib/issues/31624) - - [x] [3.11 rc issues](https://github.com/matplotlib/matplotlib/issues/31589) -- [ ] (if time permits) Triage - - [ ] [#31346 - Disable auto-loading custom matplotlibrc files](https://github.com/matplotlib/matplotlib/issues/31346) - -## GSOC -- not starting til after May 20th, -- google granted 16 week extension, 1st eval moved to July 20th - -## RSE -- 3.11 finalizing + release notes - -## 3.11 RC issues -- reported upstream: myst-nb, animatplot, iplotx, mapclassify, scalebar, pytest-mpl -- @qulogic put in pr for seaborn + #31590 -- #31624 PolarTransform - - deprecate vs. delete? - - set true/none triggers warning to set to false - - false currently fails silently (is what set in docs) - - currently half deprecated, should it be full? - - yes, make it full deprecration - -## auto-loading custom matplotlibrc -- disable autoloading for security reasons -- options: - - add another option to matplotlibrc environment variable - - add turn off flag "MATPLOTLIBRC_UNSAFE_CWD=1" - - pro: easy to document - - con: creates coupling btw/ MATPLOTLIBRC \which takes filepath) * and MATPLOTLIBRC_UNSAFE_CWD - - USE/NOT USE takes priority - -deprecation path: go through current list, report list and warning that in future must be listed explicitly - -consensus: add empty flag to current RC - - -# April 30th -_attending_: @ksunden, @QuLogic, @ayshih, @trygve, @story645 - -## Agenda -- [ ] RSE update -- [ ] PR review -- [ ] 3.11 status - - [ ] [3.11 rc issues](https://github.com/matplotlib/matplotlib/issues/31589) - - [ ] [Expire some missed deprecations from 3.9](https://github.com/matplotlib/matplotlib/pull/31588) - - [ ] [Should `_make_axis_parameter_optional` handle `None`](https://github.com/matplotlib/matplotlib/issues/31590) -- [ ] (if time permits) Triage - -## Notes - -### RSE updates: -#### Kyle & Elliott -- 3.10.9 + 3.11 RC out - - dealing w/ the bug reports -#### Kyle -- contracts and backend things -#### Elliott -Fedora as proxy for general problems: -- found 10 failures -- reporting to downstream projects --Release Critical: decide what to do w/ `make_axis_ parameter` - - seaborn passes a string into `scale` for the axis argument, but axis is never used so it's ignored. eventual goal is maybe to remove/deprecate. - - since seaborne doesn't pass in an axis, is not ignored and blows up - - raises ambiguity w.r.t. first parameter -- will probably do a second RC to check if issues are resolved -needs decisions/to be in by next RC -- expiring deprecations (needs review) -- make_axis_parameter - -#### Melissa - -- The triage team nomination instruction PR is I think ready: DOC: Update triage team nomination instructions by melissawm · Pull Request #31089 · matplotlib/matplotlib · GitHub - - will review the current template used to invite new maintainers and potentially reuse it for triagers -- will update the reviewer guide to include a note about when to stop reviewing low-effort PRs. -- will also include a link to the new triage board. -- If you have other suggestions for tasks or activities please let Melissa know. Thanks! - -#### after 3.11 triaging -- alpha blending -- multi-variate colorbar - - -#### GSoC -@story645 will email accepted person to kick off community bonding - ---- -# April 23rd -_attending_: @tacaswell, @efiring, @QuLogic, @ksunden, @story645, @ayshih, @timhoffm, @melissawm - -## Agenda -- [x] RSE update -- [ ] PR review -- [x] Feedback on new triage board: https://github.com/orgs/matplotlib/projects/11 -- [x] 3.11 status -- [ ] (if time permits) Triage - -## Notes - -### RSE updates -- Kyle - - GSOC list in, just ranked one choice as we can only take one - - going through release checklist for 3.10.9 today, will be tagged after meeting -- Tom - - mostly BNL stuff, project management / paperwork -- Elliott - - getting through 3.11 PRs - - all PRs in - - fixed website - - internal cert expried between DO and CF - - [#23616: mathtext support underline](https://github.com/matplotlib/matplotlib/pull/23616#issuecomment-4230062034) - - accept trade off of sometimes looking great/terrible over consistently looking ok - -### 3.11 -- one last PR (underline one discussed above) -- branch today ! -- first one for Elliott using new (seperate repo) process - -### Triage -- once a consensus is reached on thread, @ksunden and @QuLogic can add person - - what is consensus? what is the timeline? - - leave nom up for a week, if nobody opposes we accept - - email invite template - whoever can add people to theme - - add label email sent - - close thread when they accept/reject -- [Nomination instructions PR](https://github.com/matplotlib/matplotlib/pull/31089) - -### new board -- Caswell thinks it looks great -- @melissawm will check w/ upstream on whether the board can be customized or we need to fork to customize -- user merged rather than closed? -- bot detection -- retire first time contributor board bt merging into triage board -- add new view for approved unmerged w/ flakey tests - -### [privatize formatter attributes](https://github.com/matplotlib/matplotlib/pull/31416) -- track internal state so shouldn't be user modifiable - -# April 16th -_attending_: @QuLogic, @efiring, @ksunden, @tacaswell, @story645, @timhoffm - -## Agenda -- [x] RSE update -- [x] fonts -- [x] other 3.11 -- [ ] PR review - - [ ] Changing 'animation.html' to [make `Animation._repr_html_` more useful](https://github.com/matplotlib/matplotlib/pull/31510) - -## Notes -### GSOC applicate notes and down selection -(not taking notes for obvious reasons) - -### RSE update -- Kyle - - looked at flaky tests - - startup time of subprocess was longer than we thought - - some review - - GSOC review -- Elliott - - publicized the nightlys coming - - seeing some people update their test images, but have not complianed - - Albert may have handled at least 2 of these so know it was coming and all the details - - also worked on the flaky test - - put is PR to fix pybind11 failure - - GSOC review -- Tom - - got ROSE 2020 grant final report -- Melissa via staff chat - - MAINT: Add PR triage board action by melissawm #31499 - - DOC: Update triage team nomination instructions by melissawm #31089 - - following up on the triage team nominations - what are the next steps here? - - -### font - -nothing came up - -### other 3.11 - -- giving some time for nightly complaints -- branch today, aim for RC on Tuesday -- outstanding PR on setting image styles - - kept default as None, raise deprecation warning that it's changing to mpl20 -- ran through a bunch of PRs - -### - - ---- -# April 9th -_attending_: @ksunden @QuLogic @scottshambaugh @efiring @ayshih @timhoffm @melissawm - -## Agenda -- [x] RSE update -- [x] fonts -- [ ] other 3.11 -- [ ] PR review -- [x] [name=hannah][use minigallery on tutorial landing page](https://github.com/matplotlib/matplotlib/pull/31275) - - needs a yes/no: replace hardcoded html thumbnails w/ minigallery directive - -## Notes - -### RSE Updates - -- Kyle: - - 3.11 review - -- Elliott: - - 3.11 PRs - - looking at some doc build speedup - -- Melissa: - - Fix for first-contribution action: https://github.com/matplotlib/matplotlib/pull/31479 - - Melissa to report upstream and we'll give it 2 weeks to see if an actual fix is merged. - - Triage board: can anyone with permissions create a GitHub app for the Jupyter Triage Board? https://github.com/jupyter/pr-triage-board-bot#set-up - - (I can probably take care of duplicating the board and setting the rest of the items up, but I can't create an org app) - - Kyle to set this up and communicate back with updates. - -### Minigallery (31275) - -- PR summary needs re-writing -- PR is an improvement, worth merging -- Elliott to take care of merging after meeting - -### GSOC -- Kyle & Elliott have started looking at the applications, dividing into subject categories. Two biggest are the transform (11) and the overlay (15). -- schedule meeting to select top few - -## Triage (if there's time) - -- [ ] One approval: [Adds plot_exclude_patterns config to selectively disable plot_directive.#31270](https://github.com/matplotlib/matplotlib/pull/31270) -- [ ] Needs review: [[BUG] Fix alpha bug on 3D PathCollection plots.#25478](https://github.com/matplotlib/matplotlib/pull/25478) -- [ ] Very old, needs review/decision: [Let twin-axis aligned at the specified position#26109](https://github.com/matplotlib/matplotlib/pull/26109) -- [ ] Recent, needs discussion/decision: [Fix #21409: Make twin axes inherit parent position#31353](https://github.com/matplotlib/matplotlib/pull/31353) - - - ---- - -# April 2nd -_attending_: @ksunden @QuLogic @tacaswell, @ayshih, @efiring - -## Agenda -- [x] RSE update -- [ ] fonts -- [ ] other 3.11 -- [ ] PR review - -## Notes - -### RSE updates - -- Kyle - - slow week, some travel and out of pattern - - have 41 GSOC applications - - 10 for indirect transfrom - - 14 for overlay - - rest are misc -- Tom - - took 3 of 5 last work days off -- Elliott - - PR review, lots of small PRs while waiting for big PRs to land. - - some new font fetures (maybe not for 3.11) - -### fonts! - - -# March 26th -_attending_: @ksunden, @melissawm, @ayshih, @scottshambaugh, @efiring, @QuLogic, @story645, @tacaswell @timhoffm - -## Agenda -- [x] RSE updates -- [x] 3.11 -- [x] setuptools scmscm -- [ ] first time contributor review - -### RSE updates -- Kyle -- Elliot -- Melissa - - discussion about reducing number of open PRs -- Tom - - Y2 funding from NASA is with NF - -### 3.11 -- text things need review and merge - -### setuptools-scm -- 10.0.2 broke all of our tests -- we should pin to less than 10 for now -- sort out if we need to do our own thing - - https://discuss.python.org/t/please-make-package-version-go-away/58501 -- only a dev dependency so not too worried about pinning - -### eval patch -- we should backport to 3.10.9 and make sure there is a release note -- pick one or the other for recursing when handling args/kwargs - - will go with recurse on both - -# March 19th -_attending_: @ksunden, @QuLogic, @tacaswell, @melissawm, @ayshih, @story645 -jetbrains: Natalia, Galina -## Agenda -- [x] Jetbrains styles -- [ ] RSE update -- [ ] 3.11 -- [ ] PR - -## Notes -### Pycharm styles -- 2 new styles - light/dark. - - paired light + dark - - 10 colors in a cycle - - cvd friendly, + accessibility - - made by a designer - - manage updates - add version # - - licensing: no intent to limit the schemes -### RSE updates -- Kyle - - doing backports to 3.10 for some security hardening - - review for 3.11 -- Elliott - - going through open PRs and clear them out - - now have WASM ci to produce nightlies for py312 - - py313 broken for reasons we don't understand and don't got pypi - - jupyterlite docs being looked at again - - we can now run the devdocs against these wheels - - font stuff - - updated the font height PR -- Tom - - mostly vacation -- Melissa - - 3 PR open that need review - - [minor formatting and linting issues](https://github.com/matplotlib/matplotlib/pull/31338) - - [triage team nom process](https://github.com/matplotlib/matplotlib/pull/31089) - - [focus on one pr](https://github.com/matplotlib/matplotlib/pull/31329) - - invitation to discuss triage with Melissa - - Feel free to book at time with me at https://calendly.com/melissawm/chat - -### 3.11 - - -# March 12th -_attending_: @tacaswell, @efiring, @QuLogic, @ksunden, @trygve, @scottshambaugh, @story645 - -## Agenda -- [x] Security issues -- [x] RSE updates -- [x] 3.11 -- [ ] PR review - - -## Notes - - -### RSE updates -- Tom: - - just review work - - found pybind11 regression on their main -- Elliott - - 3.11 prep - - finished off text metric work (should be last thing!) -- Kyle - - mostly 3.11 prep - - going thorugh at PRs with atleast 1 approval (particuarlly Elliott's) -- Melissa - - autoclose tag name - - current needs XXX not clear enough - - proposal from Caswell: "autoclose candidate" - - Hannah / Melissa should just make a choice - - updates to new contributors PR table (gh project) - - thinking through exact process for handling triage team nominations so we do not lose track of things in flight - -### Security issues -- Security policy: https://github.com/matplotlib/matplotlib/security/policy -- How much should we handle these in public? Is there a private channel for this? Role of Tidelift? - - please report things that should be confidential through tidelift - - this does send emails to the team, only gotten spam so far so haven't "stress tested" the process yet -- Always backport security issues? GH tag? - - depends on severity -- for the current set - - more hardening than vulnerabilities, backport to 3.10.x - - scott has 1-2 more to submit - -### 3.11 status -- only fonts left and hardening PRs -- would be good to land a few more performance PRs -- fontmetric PR - - https://github.com/matplotlib/matplotlib/pull/31291/ - - consenus of call is that single line does not need line spacing -- https://github.com/matplotlib/matplotlib/pull/31281 - -### PR review -- - -### triage/maintainers/discourse -- Orphan PR cleanup -- [name=Melissa] First-time contributors PRs project: https://github.com/orgs/matplotlib/projects/1/views/3 - - Recently updated. If you feel like it, take a look at some of the "Needs decision" PRs. -- [name=Melissa] Autoclose bot: https://github.com/matplotlib/matplotlib/pull/31283 - - Can we agree on the label name? -- [name=Melissa] Triage team nominations: https://discourse.matplotlib.org/c/development/private-discussion-about-nominations-to-the-triage-team/23 - - Next steps? - - -# March 5th -_attending_: @tacaswell, @efiring, @timhoffm, @melissawm, @scottshambaugh, @ksunden, @ayshih, @story645, @anntzer - -## Agenda -- [x] more AI related fallout -- [x] RSE updates -- [x] 3.11 -- [ ] PR review - - -## Notes -### adopt some of np's wording for new contributor message -- adding a "why here?" to the pr greeting bot for new contributors - - NumPy wording: https://github.com/numpy/numpy/pull/30932/changes -- -### RSE updates -- Kyle - - scipy tutorial proposal - - PR review for 3.11 -- Tom - - minimal -- Melissa - - New contributors meeting - students from Portugal - - [Remove gitter from docs](https://github.com/matplotlib/matplotlib/pull/31236) - - [DOC: Update triage team nomination instructions#31089](https://github.com/matplotlib/matplotlib/pull/31089) - - Discussion: Triage chat on Discourse? - - Looking into https://github.com/matplotlib/matplotlib/issues/31108 - - Next: autoclose bot - - Elliott - - font stuff - -### 3.11 status -- https://github.com/matplotlib/matplotlib/issues/31220 (linesize) - - historically the height of lines was to measure height of `lp` - - maybe actualy text as for taller things - - this is not reliably as it is possible to have fonts without either an l or p (e.g. emoji, CJK) - - can ask the fonts directly for the size rather than use heur - - istics - - but this will change tests - - thearding this through the backend API is a big lift - - accepted propsoal: hard-code the answers for the default font (dejavu) for 3.11 so the tests do not change when we implement this in the future - - con: bit brittle - - pro: prevents us from needing major changes - -### PR review -- Alpha compositing [#31162](https://github.com/matplotlib/matplotlib/issues/31162) - - [alpha blending modes](https://hackmd.io/d4jJmDiKR2G4DAM4nVZTtA#Alpha-compositing) - - currently renderer level, matches the API style of agg filters - - do not try to thread this through main plotting API - - concern about re-using/co-opting `rendered.{open,close}_group` - - this provides compositing groups - - if drawing artist with alpha on an existing background using - - there are other compositing modes, but do not want to do globally - - really want to render a subset of artists together with the other mode and then composite that whole thing into one - - discussion about pulling blending groups out into their own functions - - some concern about dealing with interleaved blend and filter groups in Agg but we think that this is tractable with - -- [name=Scott] A few ready-to-go PRs with one review (thanks Tim!) that need one more. No rush, just highlighting: - - Bugfix https://github.com/matplotlib/matplotlib/pull/31061 - - Performance https://github.com/matplotlib/matplotlib/pull/31005 - - Performance https://github.com/matplotlib/matplotlib/pull/31004 - - Performance https://github.com/matplotlib/matplotlib/pull/30995 - - 3D log axes https://github.com/matplotlib/matplotlib/pull/30980 - -### triage/maintainers/discourse -- public discourse channel -- private triage + maintainers team + channel - - [x] move triage nomination to this category - - [x] traige, maintainer teams added to discourse - -# Feb 26 -_attending_: @efiring, @rcomer, @tacaswell, @ayshih, @ksunden, @melissawm, @timhoffm, @scottshambaugh, @story645, @QuLogic, Ammar Sharif (@Ammar Sharif) -## Agenda -- [x] RSE -- [ ] 3.11 -- [x] [name=hannah] change chat links to discourse -- [x] [name=hannah][autoclose bot](https://github.com/matplotlib/matplotlib/issues/31164) -- [x] [name=hannah][moderator guidelines](https://github.com/matplotlib/matplotlib/pull/31200) -- [ ] review https://github.com/matplotlib/matplotlib/pull/31021 - -### PR review - - -## Notes - -- RSE updates - - Melissa - - Working on https://github.com/matplotlib/matplotlib/pull/31089 - - Reviewing triage team nominations - - Reviewing more PRs - - Met with Tim to discuss triage - - Tom - - minor paperwork and issue review - - Kyle - - issue review trying to get 3.11 out the door - - planning a tutorial for scipy - - Elliott - - sick last week, not super productive - - font work - - preparing issues for tracking work for follow on - -### chat on discourse - -- should we cut over? -- seems to be going tell - -decision: lets cut over! - -- Melissa will submit PR to update links - -### 3.11 - -- doing OK, last minute mathtext threw monkey wrench in -- need to land one more PR that changes test images, can delay features to next version -- RC target next week - - two or three PRs to clean up images - - should we move tests to new style? -- request to get #31021 in for 3.11 - - yes - -### autoclose bot - -- we put a label onlow-quality PRs - - bot posts instructions on how to get reviewed - - bot auto-closes if no after a week or so if no feedback -- possible use https://github.com/2ndSetAI/good-egg to flag score/reputation of contributor - - some concerns about posting a public behavior report to an issue - - if we do this should put it someplace private that auto posts - - a services that we put a GH handle into and get a report - - a bot that flags on someting very simple like "more than 50 opened PRs in last week" - - use new-contributor project board - -going to go with: - - trigger this to new contirbutor board -> Melissa will work on this - - turn on bot with 2 week timeout - -### moderator guidelines -- violates our contribution guidelines -- enforcement: - - three verbal warnings (temp ban an #3) - - temporary ban - - three more verbal warnings? - - when people come back from temporary ban, unlikly a second temporary band will help - - if behvior persists/doesn't improve, then escalate - - consult in chat as needed -- bring both temproary and permenant bans to this meeting for awareness - - we should comment on issue anyway -- platform specific bans, ban from all is CoC -- AI can just be banned b/c it's not a person w/ feelings - -### image placement: [31021](https://github.com/matplotlib/matplotlib/pull/31021) - -# Feb 19 -_attending_: @tacaswell, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @timhoffm, @ksunden, @scottshambaugh, @ayshih, @rcomer, @melissawm, @guenp, @story645 -github: Camilla Moraes (@, Abigail Cabunoc Mayes (@abbycabs), Sarah Kaiser, Ashley Wolf (@ashleywolf, mrjf -numfocus: Arliss - -## Agenda -- [ ] AI agents -- [ ] RSE updates -- [ ] 3.11 - -## Notes - -### AI agents -- please don't take down @crabby-rathbun, for historical records -- labeling accounts as AI/Human - - would be nice to know if the code is human generated - - github has a bot flag, but used more for automation - - at which level? account, post, both? -- clarify that user bears responsibility for their agents in TOS -- unclear expectations around guardrails for copilot -- surface Ai policy/agents.md as community health type documents (like license.md) - - setting expectations around AI use - - no standard for agents.md contents yet, github might be able to set one -- managing pr allowances/restrictions - - allow lists/chains of trust - - moderation levels/roles - - - adding people efficiently -- efficacy of reviewing/dealing w/ random agentic PRs - - maintainers can use agents too -- enforce contributing guidelines that the bots need to follow - - github has an AI tool for reviewing incoming contributions based on contributions guidelines -- two problems - - good actors - follow agents.md, etc, - - bad actors - ignore agents.md, etc, -- rate limit accounts scaled by account age/reputation -- requiring issue before PR - - agents are looking for issues - require issue assignment to open PR - - manually assign people to allowlist? - - roles can bypass this gate - -### RSE updates - -- Melissa - - Working on https://github.com/matplotlib/matplotlib/pull/31089 - - Reviewing triage team nominations - -# Feb 12 -_attending_: -[efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @tacaswell, @melissawm, @story645, @timhoffm, @scottshambaugh, @trygve, @ayshih, @julian p (gh), - -## Agenda -- [ ] RSE updates -- [x] abusive AI agents -- [ ] 3.11 - - -## Notes -### RSE updates - -- Melissa - - Met with Albert to gather impressions on onboarding, documentation and the triage team expectations in general - - Will use results also to finish up https://github.com/matplotlib/matplotlib/pull/31089 - -### Abusive AI - -https://github.com/matplotlib/matplotlib/pull/31132 - - - can we block - - probaly not easily, if it is using api / gh cli tool to do this - - is this against GH ToS? - - @melissawm did report this as spam/inauthentic activity - - can we speculate on the motivation of the human in the back? - - probably not - - probably does not really matter - - how do we deal with AI agents? - - on level is a human doing copy/paste to the agent - - fully autonomous just go do stuff - - code generation - - in pre-AI code generation was expensive, so we work together to generate code - - add effort in PR review to gatekeep / keep quality up - - now code generation is super cheap, but review is still expensive - - thing we want from contributors is their thoughts and expericances - - if we want to take AI code to code base, should have core developers drive the agents - - more efficent, cuts down review loop - - LLVM has good language for this - - "extractive contributions" https://llvm.org/docs//AIToolPolicy.html - - explain that gfi is training [#31142](https://github.com/matplotlib/matplotlib/pull/31142) - - do we want to do any media prep? - - asks for GH? - - rate limit new account to opening new PRs / number of total open PRs - - add a flag to the user account when they have done spammy / verbose thing - - does the blog violate GH ToS - - can add requirement to flag AI generated as such - - looks like there was another issue involved that commented, had a comment hidden, and is now completely gone - - may GH deleted the account / comments? - - analogy to classes using us in classes - - we are getting used as unpaid, involentary test subjects - - cheap for agent owners, expensive for projects - - fully automated PRs are effectively DDOS attacks on projects - - seems like this is coming up everywhere at at same time (numpy/scipy, napari, scienitific pyhon, ...) - - https://github.com/matplotlib/matplotlib/pull/31026 merged to get clearer rules in - - keep these rules framed as being about maintaining the health of the project over the long term - - looks like there is going to a continium of human and machine interaction - - AI seems to work surprisingly well - - but you need to know what you are doing to make good use of it - - limit AI/LLM for GSOC - - we should make clear that the "get to know you PR" should be done with brain - - concerns about full ban on AI for english as an additional language speakers - - add wording that we expect authentic engagement - - make clear AI is a tool and we want your efforts / thoughts - -# Feb 05 -_attending_: - -[efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @tacaswell, @melissawm, @story645, @greglucas, @timhoffm, @QuLogic, @scottshambaugh, @ayshih, - -## Agenda -- [x] RSE updates -- [ ] 3.11 updates -- [ ] context menus vs menu bars -- [x] [name=hannah] GSOC -- [x] move away from pre-commit to prek - - -## Notes -### RSE updates -- Melissa - - Hannah created the Discourse category https://discourse.matplotlib.org/c/staff/private-discussion-about-nominations-to-the-triage-team/23 - - Created PR to fix new contributor bot: https://github.com/matplotlib/matplotlib/pull/31090 - - Created PR to fix docs on triage team nomination instructions: https://github.com/matplotlib/matplotlib/pull/31089 -- Tom - - mostly paperwork, some review -- Kyle - - PR review, moving 3.11 along -- Elliott - - mostly font things - - cleaned up docs server - - a big and un-useful space was the dev-docs - - tried tuning the reflog / gc on all of the repos -- Greg - - no work - -### move away from pre-commit to prek -- https://github.com/matplotlib/matplotlib/pull/31081 -- faster to setup, runtime about the same - -### GSOC -soft-missed the NF deadline, but try anyway: -- https://github.com/numfocus/gsoc/pull/565 - -projects to propose: - -- pull "relative" transforms out of annotate -- ~pull all style information into a dataclass hanging off the object (aligns well with dataprototype)~ too much design work -- add a first-class "overlay" layer API for interactive backends -- leave "choose your own adventure" - -### context menu vs menu bar -- https://github.com/matplotlib/matplotlib/pull/30976 -- add the ability have a right-click context menu - - concern is that users have already added their own context menus and we need to be careful about breaking user - - also concern that right-click is not availble on all platforms -- next idea was to move everything to the menu bar - - discovered issue: how does this map to sub-plots - - "magic wand" like pan/zoom - - dropdown menu of subplots (may be confusing with badly named subplots) - - broadcast to all applicable subplots - - rely on current axes -- if we have overlay infrastructure can do "hot corners" -- do "locked and discrete" motion (like x/y lock pan/zoom) - - we have roll now through mouse so might be hard - - hold control to snap to nearest 5 deg on top of current rotation -- add something like the blender gizmo in corner, put into that -- add "turn on context menu button" to menu bar - - works, but awkward user experiance -- put into the Qt plot updater - - propbly would require porting to atleast tk and macos -- could take the position that if we create the figure window we can control the context menu - - maybe go with this option with: - - rcparam and API to turn off all together - - detect if the user registers a right-click and remove ours + warn (with knob to supress the warning) - - -CONSENSUS - - try menu that turns itself off on detecting conflict - - create issue to snap 3D navigation anyway - - -### very fast fonts -- re-review 31046 now matches the constasts from LaTeX -- https://github.com/matplotlib/matplotlib/pull/31046#issuecomment-3846257438 is the font people will see the most, but latex in dejavu does not support math text - -# Jan 29 -_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ) @ksunden @QuLogic @tacaswell - -## Agenda -- [x] RSE updates -- [x] font discussions - -## Notes -All PR review - - -# Jan 22 - -_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ), @melissawm, [@anntzer](@pXw4hSgTQF2--OciPYwa1w), @story645, @ksunden, @tacaswell, @scottshambaugh, @timhoffm , @QuLogic - -## Agenda -- [x] RSE updates -- [x] NASA updates -- [ ] 3.11 status - -## Notes - -### RSE updates -- Tom: - - minimal work, in operation/project -- Melissa: Created a doc for discussion around triage team: https://hackmd.io/@matplotlib/r1g8K31Ubx - - [ ] Melissa to create a subcategory on discourse for maintainers to add/nominate people to the triage team - - [ ] Melissa to figure out a way to add AI use disclosure/information on docs - - [ ] Caswell will investigate GH group permissions / external contributor for triage -- Kyle: - - still waiting on contract - - mostly review/issue - -### NASA -- slow progress -- final report for previous roses is due in April - -### 3.11 -- [#30059 drop intermediate buffer](https://github.com/matplotlib/matplotlib/pull/30059) - - blockers: - - design decision is wrong, properly would be to have intermediate buffer in different position - - slight issue around positioning fraction bars when drawing math - - want to draw fraction bars exactly on pixel, requires controlling snapping better - - accept snapping b/c improvement over fuzzyness - - bars are slightly too low/high/wrong position - fix is figure out if floor or ciel rounding - - bar positioning issue is independent of buffer - - is here to avoid regenerating all the fraction images - - maybe kick fraction image regenerating down the road - - ok w/ edge case of overlapping glyphys? - - yes - - consensus: should go in, put buffer positioning and fraction bar on "nice to have" stack - -- [#30974 widget blitting](https://github.com/matplotlib/matplotlib/pull/30974) - - not sure if problen is in MNE tests, widget blitting code, or base canvas API (vs Gui canvas API) - - fire events where handler forces a draw that asks for a renderer that the base canvas doesn't have - - MNE is holding a canvas reference that calls for a non-existent canvas - -## other PRs -- [#30974 right click context menu](https://github.com/matplotlib/matplotlib/pull/30976) - - turn off able b/c other tools provide context menu - - general API figure.add_context_menu + callback - - squeeze into toolbar? - - add hamburger to toolbar w/ additional tools likes context menu - -[#30980 log axes on 3d plot](https://github.com/matplotlib/matplotlib/pull/30980) - - needs reviews, would fix oldest open bug! - - -# Jan 15 -_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @melissawm, @story645, @ayshih, @timhoffm - -## Agenda -- [x] RSE updates -- [x] NASA updates -- [x] 3.11 status -- [x] review Albert's PRs - - [x] [Accuracy bugs with image resampling ](https://github.com/matplotlib/matplotlib/pull/30184) - sig changes post review -- [ ] [name=timhoffm]review [blitting errors in {check, radio} button widgets](https://github.com/matplotlib/matplotlib/pull/30945) - -## Notes -### RSE updates -- Melissa - - getting re-onboarded - - discovering build issues - - thinking about triage team and how to get recruitment going -- Elliott - - writing statement of work - - waiting on responses from @tacaswell to start contract process - - alt-text is almost done, but needs some finishing touches -- Kyle - - still waiting on contract - - little bit of issue review - - setting up hi-dpi monitor -- Tom - - little mpl work, swamped with other things - -### NASA -- contracts are moving - -### 3.11 -- still holding on Antony's PR - > https://github.com/matplotlib/matplotlib/pull/30059? - - need to check one last thing and merge - - need to check do a scan thourgh one final time to make sure that nothing changes by too much -- https://github.com/matplotlib/matplotlib/pull/30945 -- -### image resampling -- grid lines and pixel lines not lining up w/ non-affine transforms -- this PR loosens tolerances to avoid updating baseline images, gets resolved by font prs - - text changes b/c of change in computation of kernal used in text rotation - - 20 images had to be changed, about 40-45 loosened for text & noted with TODO -- [30824](https://github.com/matplotlib/matplotlib/pull/30824) b/c bivariate was using agg interpolator for non-viz purposes, agg takes shortcuts - -### radio/check buttons -- merged -- work left in whats new & todos: not all widgets work properly after swapping canvas - - blitting should be better encapsulated, hindered by how state is stored in widgets - - store if user wants blitting and if canvas supports blitting - - use case is standalone figure that might get attached to canvas - -# Jan 8 -_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @tacaswell, @QuLogic, @ksunden, @timhoffm, @story645 - -## Agenda -- [ ] RSE updates -- [x] NASA updates -- [x] 3.11 status -- [x] 3.10.8 / build overhaul status - RELEASED -- [x] [name=@rcomer] Trial [Discourse Chat](https://meta.discourse.org/t/discourse-chat/230881) as replacement for Gitter? -- [x] [name=@hannah] GSOC: backend API improvements - - builds on [versioning](https://github.com/matplotlib/matplotlib/pull/30777) - - [GraphicsContext data classes](https://github.com/matplotlib/matplotlib/pull/30811) - - [fonts](https://github.com/matplotlib/matplotlib/issues/30890#issuecomment-3690830981) -- [x] Docs are getting big on digital ocean - -## Notes -### RSE updates -* Melissa - - starting this week! -* Tom - - very busy, some grant management -* Kyle - - Purchased some ARM machines with money from pevious grant - - linux on ARM is harder than we expected -* Elliott - - not much over break - - review a few things, update freetype and harfbuzz - - few minor changes that are improvements - -### NASA updates -- Starting to spend money on ROSES 2024 - - Y2 funds are in-process -- need to write grant report on ROSES 2020 - -### 3.11 status -- still need to review Antony's PR -- image resampling PR affects some text images - - one in, one pending -- widget canvas handeling PR was not enough -- aim for RC end of next week -- Elliott is release manager -- https://github.com/matplotlib/matplotlib/pull/30777 (reviewed and merged) -- https://github.com/matplotlib/matplotlib/pull/30871/changes (reviewed) -- https://github.com/matplotlib/matplotlib/pull/30886 (reviewed and merged) - -### chat in discourse? -- no love of element/gitter expressed -- proposal: - - turn discourse chat on - - redirect conversation from gitter -> discourse for a month - - posts made and pinned on matplotlib/community/incubator - - at end of month either turn it off or document and shutter element channels -- Turned it on and created 3 channels - - @rcomer should weigh in on how to further organize - -### 3.10.8 - -- out and merged up -- publish removed from the main repo -- need to double check that the trusted publisher from the main repo removed on pypi side -- publishing from external repo worked - -### docs too big -- checked out docs are now 32G+ -- running out of disk space on venus (our file server) -- git seems to be doing a very good job at compression (the `.git` folder is 6-7G) -- to get out of the jam we will prune old micro docs for non-current releases and replace with permenant redirects in caddy. - - can get back if we _really_ need it - - will buy us some more time before we run out of disk again -``` -163M 1.2.1 -196M 1.3.0 -173M 1.3.1 -249M 1.4.0 -249M 1.4.1 -249M 1.4.2 -189M 1.4.3 -230M 1.5.0 -236M 1.5.1 -233M 1.5.3 -205M 2.0.0 -203M 2.0.1 -204M 2.0.2 -134M 2.1.0 -126M 2.1.1 -143M 2.1.2 -146M 2.2.0 -174M 2.2.2 -169M 2.2.3 -168M 2.2.4 -173M 2.2.5 -183M 3.0.0 -152M 3.0.2 -172M 3.0.3 -169M 3.1.0 -200M 3.1.1 -191M 3.1.3 -194M 3.2.0 -201M 3.2.1 -199M 3.2.2 -285M 3.3.0 -288M 3.3.1 -285M 3.3.2 -290M 3.3.3 -298M 3.3.4 -300M 3.4.0 -301M 3.4.1 -301M 3.4.2 -301M 3.4.3 -579M 3.5.0 -628M 3.5.1 -627M 3.5.2 -628M 3.5.3 -606M 3.6.0 -606M 3.6.1 -588M 3.6.2 -589M 3.6.3 -626M 3.7.0 -631M 3.7.1 -629M 3.7.2 -629M 3.7.3 -573M 3.7.4 -629M 3.7.5 -658M 3.8.0 -659M 3.8.1 -659M 3.8.2 -662M 3.8.3 -662M 3.8.4 -594M 3.9.0 -595M 3.9.1 -602M 3.9.2 -555M 3.9.3 -571M 3.10.0 -572M 3.10.1 -572M 3.10.3 -572M 3.10.5 -573M 3.10.6 -573M 3.10.7 -573M 3.10.8 -``` -- Dropping 1.x and 2.x will save 2.7G -- Dropping 3.0.x is 334M -- Dropping 3.1.x is 368M -- Dropping 3.2.x is 395M -- Dropping 3.3.x is 1.2G -- Dropping 3.4.x is 901M -- Dropping 3.5.x is 1.8G -- Dropping 3.6.x is 1.8G -- Dropping 3.7.x is 3.1G -- Dropping 3.8.x is 2.6G -- Dropping 3.9.x is 1.8G -- Dropping 3.10.x is 3.4G - -### GSOC backend project -- hard part is the design phase - how - - moving backend function signatures from parameter list to data class of backend parameters - - in fonts, all the new feautures only available indirectly - - drawing text as last parameter takes text object - - measurement doesn't take text object so can't compute directly - - is likely a medium sized GSOC project, w/ a lot of testing work - - @tacaswell has some concerns about this not having enough concrete upside for the cost of the code churn -- alternative idea - - PR 30516 / issue [30515](https://github.com/matplotlib/matplotlib/issues/30515) - - how to push more "native" overlays into the backends to allow cross hairs and similar - - try out new scheme for passing things into the backend using dataclasses as entry point to using the pattern in the backend - -# Dec 18 -_attending_: @QuLogic, @greglucas , [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) - -## Agenda -- [x] RSE updates -- [x] NASA updates -- [x] 3.11 status -- [x] 3.10.8 / build overhaul status -- [ ] triage - -## Notes - -### RSE updates - - Elliot - - Rebased intermediate buffer work, looking into results of that - - Worked on the WASM stuff as well - - Question about RFB Buffer work and the status of that. - - May require JupyterRFB as a dependency - - If we do the toolbar, might need ipywidgets as well - - Might be some issues with closure and not saving the final state when done with the cell - - Could do some optional dependency magic similar to qt and other backends but a little more complex because of the Jupyter integrations - - - Greg - - Some Cartopy reviews, not spending much time on the project currently - - -### 3.11 status -- Primarily waiting on font work reviews - - #30161 has been updated and is the final PR to look at full integration - - No glaring bugs that Elliot has seen in the text rendering - - Might be nice to fix/figure out fraction bar differences -- Discussion about Agg resampling PRs -- [name=greglucas] asked a question about whether we are waiting too long for 2 reviews on complex issues where it might be hard to get 2 experts to review something. Should we instill more trust in the first reviewer / author if they are a core contributor? - -### Triage - -Some review of widget PRs and text / Agg PRs. Discussion about DPI handling and moving that to the canvas, a logical pixel intermediate and implications of doing so. - -### Next meeting - -Likely not many people on the next two calls with Christmas and New Year holiday. - ---- -# Dec 11 -_attending_: @tacaswell, @ksunden, @QuLogic, @story645, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ) - -## Agenda -- [x] RSE updates -- [x] NASA updates -- [x] 3.11 status -- [x] 3.10.8 / build overhaul status -- [x] [name=hannah]GSOC 2026: org apps Jan 19 - Feb 3 -- [ ] triage - -## Notes -### RSE updates - - Kyle - - cleaning up containers PR - - 3.10.8 on pypi from dedicated release repo - - need to do docs still -- Tom - - small review -- Elliott (as volunteer) - - some review - -### NASA updates - - waiting on NASA side for some things - - buying 3 arm boxes and 1 high-dpi monitor on remaining grant funds - -### 3.10.8 -- on pypi with trusted publisher -- few clean up tasks - - merge up branches on building repo - - remove publishing code workflow from main - - document new release process - - -### 3.11 -- still just the font stuff -- waiting on intermediate buffer PR - - don't have good image diffs to see what the difference are - - :+1: to use snapping to control snapping - - Issues with fraction bar placement still outstanding - -### GSOC -- time to start thinking about what projects we want -- ideas - - pull the relative / offset code in annotations into reusable transforms - - [IndirectTransform](https://github.com/matplotlib/matplotlib/issues/22223#issuecomment-1011957191) - - @tacaswell is supportive of this - - pull others from medium scale projects: [projects page](https://hackmd.io/d4jJmDiKR2G4DAM4nVZTtA?stext=862%3A67%3A1%3A1765484613%3Ah94Zi0&edit=) - -### triage - - https://github.com/matplotlib/matplotlib/pull/30750 - - https://github.com/matplotlib/matplotlib/pull/30835 - - https://github.com/matplotlib/matplotlib/pull/30533 - - https://github.com/matplotlib/matplotlib/pull/30815 - - https://github.com/matplotlib/matplotlib/pull/30808 - - https://github.com/matplotlib/matplotlib/pull/30775 - - https://github.com/matplotlib/matplotlib/pull/29093 - - -# Dec 4 -_attending_: @tacaswell, @greglucas, @ksunden [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @QuLogic, @story645 - -## Agenda -- [x] RSE updates -- [x] NASA updates -- [x] 3.11 status -- [x] 3.10.8 / build overhaul status -- [x] containers-on-main status -- [x] triage - - [x] [backend versioning](https://github.com/matplotlib/matplotlib/pull/30777) - - [x] [font collections]( https://github.com/matplotlib/matplotlib/pull/30334) -## Notes - -### NASA -- grant 1 expires in dec - - post some kind of public report/summary to link from matplotlib.org -- Melissa and Greg start in Jan, now respectively -- -### RSE updates - - kyle - - dataprototype work - - makeing sure later design work feed into first implementations - - goal of draft PR opened by Dec 15 - - Tom - - project / grant management - - Greg - - reviewing cartopy - - starting work on adaptive re-sampler - - Elliott - - keeping font work going - - finally have reproducer for a very old font issue - - working on getting reviews out - -### 3.11 -- still waiting on fonts - - 2 outstanding PRs - - all fonts from collection: https://github.com/matplotlib/matplotlib/pull/30334 - - drop intermediate buffer: https://github.com/matplotlib/matplotlib/pull/30059 - - 1 possible isuse with bars - -### 3.10.8 / build process refactor -- waiting on reviews - - 2 reviews from steering council on policy - - one technical comment with improved configuration - -- is configured so release only uploads/pushes tag after all jobs succeed - - run w/ upload pointed to tag is standalone process - - -- needs documentation about which teams have access (@release-managers, @steering-council) -- questions about how cibuildwheel configurations cascade -- config in toml? - - optional for 3.10.8, do it for 3.11 - - -### dataprototype work - -- making progress, sorting out what nice helper methods are needed. - -### triage - -- [backend versioning](https://github.com/matplotlib/matplotlib/pull/30777) - - version backends so that third-party libraries know when Backend API signature changes - - useful for fonts work, threading hatchcolors through, updating the backend - - use mpl version vs. standalone semantic versioning - - question on what's the best way to implement this - - who has to sign off? defer to @timhoffm - -- font in collections: - - current path looks for and opens font - - PR adds in subclass of strings called `FontPath` that: - - keeps stringpath - - adds index for font - - now in fontmanager, now searches for ttc, ask freetype for # faces (fonts) - - loads subfonts + adds to fontmanager - - allows user to request subfonts - - change: if they call findfont, will get back the FontPath object rather than the string path - -# Nov 20 -_attending_: @tacaswell @story645 @trygve @ksunden - -## Agenda -- [x][name=hannah] triage backlog - - use meetings w/ no agenda as triage meetings/use first 15 minutes for triage -## Notes -- triaging multivariate norm - - -# Nov 13 -_attending_: @ksunden @tacaswell @QWhXj01mSwmTjk5kN1H_qQ @story645 - -short meeting, ended early - -## Agenda -- [x] RSE -- [x] 3.10.8 - -## Notes -### 3.10.8 - -- cibuildwheel failed due to pillow not having wheels for pypy310, we did not pin to binary only so we failed on missing jpeg libarries - - moving to external cibuildwheel repo sooner rather than later to re-build - - discovered that we have dropped including vendored license files in sdist/wheels - -### RSE updates -- Kyle - - 3.10.8 - - working on collections -- Tom - - some issue review - - took vacation/holiday - - -### containers / compound artists -- https://github.com/matplotlib/matplotlib/pull/30733#issuecomment-3506119332 -- need to make sure is synced with Kyle's work - - - - -# Nov 6 - -_attending_: @ksunden @story645 @tacaswell @QWhXj01mSwmTjk5kN1H_qQ (Eric Firing) - -## Agenda -- [x] RSE -- [ ] 3.11 -- [x] 3.10.8 - -## Notes -### RSE - - Kyle - - dealing with DPI things in collection - - paper work - - Tom - - some review - - Contract with Quansight has been signed, work to start soon - - Elliott - -### 3.10.8 - -- intend to tag tomorrow, everything that is going in has gone in - - -### short meeting - - -# Oct 30 -_attending_: @ksunden @QuLogic @story645 @tacaswell - -## Agenda -- [x] RSE -- [x] 3.11 status -- [x] 3.10.8 - -## Notes -### RSE updates -- Kyle - - Making progress on containers on main work - - most problems understood, but not fixed yet -- Tom - - on travel last week, catching up on other work this week -- Elliott - - mostly working on 3.11 - - font stuff is waiting for review - - progress on dropping the intermediate buffer PR - - need to open PR for alt-text - -### 3.11 status -- waiting on font review - - 3 or 4 open - - 7 in project - - some latex changes unrelated, can punt to 3.12 -- blitting PR from @timhoffm [#30591](https://github.com/matplotlib/matplotlib/pull/30591) - -### 3.10.8 - -- two free-threaded macOS PRs (one merged to main, waiting on backport one waiting to merge to main) -- zoom box PR needs a bit of tweaking - -@ksunden will do 3.10.8 next Friday (Nov 7). - -### colorizer work -- PR to expose the colorizer is merged -- next PR will expose out to top-level API -- next-next PR will require designing 2D colorbar API - -# Oct 23 -_attending_: @efiring, @QuLogic, @ksunden, @story645 - -## Agenda -- [ ] RSE -- [ ] 3.11 status? -- [ ] 3.10.8 plan - -## Notes - - -### bivariate colormap -- discussion over putting function roll out work on its own branch -- question of whether multivar & bivar should have same interface for unpacking (self.N, self.m) vs (part.N for par in self.cmap) -### triage -- criteria for making a decision and appealing it -- what is an issue? wish list or to do list? - - incomplete PRs can be more frustrating b/c paralyze next decision - - don't want to overly eagerly close b/c alienates contributors - - so does ignoring pr - - lack non-tech criteria for evaluating a PR: - - e.g. "does it fit mission/scope/technical direction" - - criteria for reasonable next steps - - e.g. "does this PR accomplish the goals of resolving the issue" - -### Watch for daylight savings time in Europe - - -# Oct 16 -_attending_: @tacaswell, @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @greglucas, @story645 - -## Agenda -- [ ] RSE -- [ ] 3.11 status? -- [ ] 3.10.8 plan? - -## Notes -### RSE update -- Tom - - minimal, busy with other stuff -- Kyle: - - progress on data-prototype-to-main work -- Greg: - - busy with other stuff - -### 3.11 -- waiting on fonts - - libraqm - - freetype - - alt-text - - discussion of https://github.com/matplotlib/matplotlib/pull/30334: subclassing `str` in `FontPath` avoids an API break; looks OK. - -### 3.10.8 -- Backported MacOS Freethreading PR -- Will wait a week or two to make a release to see if more things come in - - -### Meeting attendance -- Is there a better time for the meeting? -- Send an e-mail to dev list so it isn't just people on the call voting -- Look into alternating times every other week to support Asia / Europe sectors? - -# Oct 9 -_attending_: @ksunden, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @story645, @tacaswell - -## Agenda -- [x] RSE update -- [x][name=hannah] [release critical: restore violinplot alpha behavior #30636](https://github.com/matplotlib/matplotlib/pull/30636) - -## Notes -- merge up for 3.10.7 in progress [#30646](https://github.com/matplotlib/matplotlib/pull/30646) -- AI: - - continue to be kind to contributors, watch for burn out due to workslop - - -### RSE -- Kyle - - 3.10.7 released! - - docs/merge up ongoing - - will let pyparsing know in our issues - - starting to look at numpy's approach to doing releases, which is to seperate out release process into stand-alone locked down release repo -- Tom - - almost no mpl, BNL operations work - -### Notes -- violin plot restore previous artist alpha default, needs 2nd reviewer -- PR backlog - stalebot not working - - triage team - - needs guidance/examples - - maybe maintainers need a test run - - decisions need some level of stickiness - - triage team can summarize & flag for discussion - - maybe triage sprint on specific tasks - - needs:rebase - - status:orphan (sprint task) - - untriaged - - clean up labels to one page - - github rolling out heirarchical labels - - replace some labels with types: - - https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/managing-issue-types-in-an-organization - - -# Oct 2 -_attending_: @ksunden, @QuLogic - -## Agenda -- [ ] RSE update - -## Notes - -It was just the two of us, so we just did some PR review for 3.10.7 and 3.11.0 - - -# Sept 25 -_attending_: @tacaswell, @QuLogic, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @story645, [@anntzer](@pXw4hSgTQF2--OciPYwa1w) - -## Agenda -- [x] RSE update -- [x] https://github.com/matplotlib/matplotlib/pull/29998 -- [x] https://github.com/matplotlib/matplotlib/pull/30591 -- [x] https://github.com/matplotlib/matplotlib/pull/30184 - -## Notes -### RSE updates - - Tom - - some review - - Kyle - - continuing down collection + data contanier work - - working on the vector of paths for PathCollection - - Elliott - - moving along with fonts - - working on review to get everything else for 3.11 done - - will work on alt-text - - -### PR review -- [30184: image resampling accuracy](https://github.com/matplotlib/matplotlib/pull/30184) - - linear upsampling, array of weights shifted by one - - accept higher tolerances on texts, @qulogic will fix in image regeneration -- [30591: widget blitting compatible with swapped canvas](https://github.com/matplotlib/matplotlib/pull/30591) - - semantics of blitting w/ transparency is not well defined - - potentially make background RGBA - - add/expose? restore_background functionality -- [29998: head resizing for arrow boxstyle](https://github.com/matplotlib/matplotlib/pull/29998) - - padding isn't constant/consistent - should it be? - - changing angle of arrowhead means text could go out of bounds - - instead keep all text in arrow body - - images change in tests - - suggestions: - - no margin - - algorithm: pin middle instead of tail for padding computation - - accept there's a jump - - consensus: @tacaswell will post on PR - - fixed padding always - - algorithm to always make it fit -- DVIPNG PR waiting on intermediate buffer PR - -# Sept 18 -_attending_: @tacaswell, @efiring, @ksunden, @story645, @QuLogic - -## Agenda - - [x] RSE update - - [x] font status - - [x] multi-norm status - -## Notes -### RSE updates - - Kyle: - - data prototype work, adjusted apporach to collections - - some review - - aiming for 3.12 release cycle for common parts/approachable usage - - Tom: - - review work - - grant management work - - Elliott - - moving along well on fonts - - [anntzer](@pXw4hSgTQF2--OciPYwa1w) is reviewing / updating to keep work moving - - looking through backlog - - [30581](https://github.com/matplotlib/matplotlib/pull/30581) - ci: Force Agg backend test in environment variable test - - [30579](https://github.com/matplotlib/matplotlib/pull/30579) - merge back into branch to fix macOS - - [29794](https://github.com/matplotlib/matplotlib/pull/29794) - language parameter to Text - - -### fonts! -- 29794, 30581 need review -- font-feature PR will come after language lands -- font-collections, will cause conflicts redo after everything else lands -- Antony stuff is moving - - intermediate buffer removal: should help with layouts and simple form of emojis -- alt text is also moving, on a branch, need to open a PR - -### colorizer / multi-norm - - waiting for review on [30511](https://github.com/matplotlib/matplotlib/pull/30511) - - -# Sept 11 -_attending_: @tacaswell, @ksunden, @QuLogic, @story645, @timhoffm, @trygve - -## Agenda - - [x] RSE updates - - [x] font status - - [x] 3.11 progress - -## Notes -### RSE updates - - Kyle - - data prototype stuff, making progress on proof-of-concept of containers-on-main - - mostly work on collections, some cleanup of images and and lines - - Elliott - - text is mostly done, need one rebase - - working on alt-text - - 3D algorithm for clipping in 3D (PR pending) - - extending to all the artist types - - Tom - - some review, wrapping up PRs - -### Font status - - waiting on review - -### 3.11 - - stand-alone figure - - needs manual testing on OSX - - font metrics cache - - maybe flaky tests - - fonts (see above) - - multivariate PR: https://github.com/orgs/matplotlib/projects/9 - - colormaps - - some were add in https://github.com/matplotlib/matplotlib/pull/28454 - - names might need improvement - - add more? green purple, and dark mode (black centered) biPeak, CVD friendly maps, multi-variate - - how many are enough to be useful? - - explicitly mark multivar/bivar as provisional - - consensus: start w/ what already merged & mark provisional, leave open to add more later - - maybe add the darkmode for accessibility - - next steps, which is the public top level API (aim for 3.12): - - expose to imshow/pcolor/other toplevel - - colorbar analogs - - choose public colormaps for shipping - -### Replace BoundaryNorm -- https://github.com/matplotlib/matplotlib/issues/21911#issuecomment-3281819503 -- problem: BN maps to integers rather than to 0-1 like all the other norms -- concern: size is used to ensure that colormap can be cut up into N bins diff --git a/meeting_notes/2026/2026_01_jan.md b/meeting_notes/2026/2026_01_jan.md new file mode 100644 index 0000000..e89417b --- /dev/null +++ b/meeting_notes/2026/2026_01_jan.md @@ -0,0 +1,297 @@ +# Matplotlib Weekly Meeting: January 2026 + +###### tags: `2026 dev call` + +--- + +# January 8, 2026 + +_attending_: [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @tacaswell, @QuLogic, @ksunden, @timhoffm, @story645 + +## Agenda +- [ ] RSE updates +- [x] NASA updates +- [x] 3.11 status +- [x] 3.10.8 / build overhaul status - RELEASED +- [x] [name=@rcomer] Trial [Discourse Chat](https://meta.discourse.org/t/discourse-chat/230881) as replacement for Gitter? +- [x] [name=@hannah] GSOC: backend API improvements + - builds on [versioning](https://github.com/matplotlib/matplotlib/pull/30777) + - [GraphicsContext data classes](https://github.com/matplotlib/matplotlib/pull/30811) + - [fonts](https://github.com/matplotlib/matplotlib/issues/30890#issuecomment-3690830981) +- [x] Docs are getting big on digital ocean + +## Notes +### RSE updates +* Melissa + - starting this week! +* Tom + - very busy, some grant management +* Kyle + - Purchased some ARM machines with money from pevious grant + - linux on ARM is harder than we expected +* Elliott + - not much over break + - review a few things, update freetype and harfbuzz + - few minor changes that are improvements + +### NASA updates +- Starting to spend money on ROSES 2024 + - Y2 funds are in-process +- need to write grant report on ROSES 2020 + +### 3.11 status +- still need to review Antony's PR +- image resampling PR affects some text images + - one in, one pending +- widget canvas handeling PR was not enough +- aim for RC end of next week +- Elliott is release manager +- https://github.com/matplotlib/matplotlib/pull/30777 (reviewed and merged) +- https://github.com/matplotlib/matplotlib/pull/30871/changes (reviewed) +- https://github.com/matplotlib/matplotlib/pull/30886 (reviewed and merged) + +### chat in discourse? +- no love of element/gitter expressed +- proposal: + - turn discourse chat on + - redirect conversation from gitter -> discourse for a month + - posts made and pinned on matplotlib/community/incubator + - at end of month either turn it off or document and shutter element channels +- Turned it on and created 3 channels + - @rcomer should weigh in on how to further organize + +### 3.10.8 + +- out and merged up +- publish removed from the main repo +- need to double check that the trusted publisher from the main repo removed on pypi side +- publishing from external repo worked + +### docs too big +- checked out docs are now 32G+ +- running out of disk space on venus (our file server) +- git seems to be doing a very good job at compression (the `.git` folder is 6-7G) +- to get out of the jam we will prune old micro docs for non-current releases and replace with permenant redirects in caddy. + - can get back if we _really_ need it + - will buy us some more time before we run out of disk again +``` +163M 1.2.1 +196M 1.3.0 +173M 1.3.1 +249M 1.4.0 +249M 1.4.1 +249M 1.4.2 +189M 1.4.3 +230M 1.5.0 +236M 1.5.1 +233M 1.5.3 +205M 2.0.0 +203M 2.0.1 +204M 2.0.2 +134M 2.1.0 +126M 2.1.1 +143M 2.1.2 +146M 2.2.0 +174M 2.2.2 +169M 2.2.3 +168M 2.2.4 +173M 2.2.5 +183M 3.0.0 +152M 3.0.2 +172M 3.0.3 +169M 3.1.0 +200M 3.1.1 +191M 3.1.3 +194M 3.2.0 +201M 3.2.1 +199M 3.2.2 +285M 3.3.0 +288M 3.3.1 +285M 3.3.2 +290M 3.3.3 +298M 3.3.4 +300M 3.4.0 +301M 3.4.1 +301M 3.4.2 +301M 3.4.3 +579M 3.5.0 +628M 3.5.1 +627M 3.5.2 +628M 3.5.3 +606M 3.6.0 +606M 3.6.1 +588M 3.6.2 +589M 3.6.3 +626M 3.7.0 +631M 3.7.1 +629M 3.7.2 +629M 3.7.3 +573M 3.7.4 +629M 3.7.5 +658M 3.8.0 +659M 3.8.1 +659M 3.8.2 +662M 3.8.3 +662M 3.8.4 +594M 3.9.0 +595M 3.9.1 +602M 3.9.2 +555M 3.9.3 +571M 3.10.0 +572M 3.10.1 +572M 3.10.3 +572M 3.10.5 +573M 3.10.6 +573M 3.10.7 +573M 3.10.8 +``` +- Dropping 1.x and 2.x will save 2.7G +- Dropping 3.0.x is 334M +- Dropping 3.1.x is 368M +- Dropping 3.2.x is 395M +- Dropping 3.3.x is 1.2G +- Dropping 3.4.x is 901M +- Dropping 3.5.x is 1.8G +- Dropping 3.6.x is 1.8G +- Dropping 3.7.x is 3.1G +- Dropping 3.8.x is 2.6G +- Dropping 3.9.x is 1.8G +- Dropping 3.10.x is 3.4G + +### GSOC backend project +- hard part is the design phase - how + - moving backend function signatures from parameter list to data class of backend parameters + - in fonts, all the new feautures only available indirectly + - drawing text as last parameter takes text object + - measurement doesn't take text object so can't compute directly + - is likely a medium sized GSOC project, w/ a lot of testing work + - @tacaswell has some concerns about this not having enough concrete upside for the cost of the code churn +- alternative idea + - PR 30516 / issue [30515](https://github.com/matplotlib/matplotlib/issues/30515) + - how to push more "native" overlays into the backends to allow cross hairs and similar + - try out new scheme for passing things into the backend using dataclasses as entry point to using the pattern in the backend + +--- + +# January 15, 2026 + +_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @QuLogic, @melissawm, @story645, @ayshih, @timhoffm + +## Agenda +- [x] RSE updates +- [x] NASA updates +- [x] 3.11 status +- [x] review Albert's PRs + - [x] [Accuracy bugs with image resampling ](https://github.com/matplotlib/matplotlib/pull/30184) - sig changes post review +- [ ] [name=timhoffm]review [blitting errors in {check, radio} button widgets](https://github.com/matplotlib/matplotlib/pull/30945) + +## Notes +### RSE updates +- Melissa + - getting re-onboarded + - discovering build issues + - thinking about triage team and how to get recruitment going +- Elliott + - writing statement of work + - waiting on responses from @tacaswell to start contract process + - alt-text is almost done, but needs some finishing touches +- Kyle + - still waiting on contract + - little bit of issue review + - setting up hi-dpi monitor +- Tom + - little mpl work, swamped with other things + +### NASA +- contracts are moving + +### 3.11 +- still holding on Antony's PR + > https://github.com/matplotlib/matplotlib/pull/30059? + - need to check one last thing and merge + - need to check do a scan thourgh one final time to make sure that nothing changes by too much +- https://github.com/matplotlib/matplotlib/pull/30945 +- +### image resampling +- grid lines and pixel lines not lining up w/ non-affine transforms +- this PR loosens tolerances to avoid updating baseline images, gets resolved by font prs + - text changes b/c of change in computation of kernal used in text rotation + - 20 images had to be changed, about 40-45 loosened for text & noted with TODO +- [30824](https://github.com/matplotlib/matplotlib/pull/30824) b/c bivariate was using agg interpolator for non-viz purposes, agg takes shortcuts + +### radio/check buttons +- merged +- work left in whats new & todos: not all widgets work properly after swapping canvas + - blitting should be better encapsulated, hindered by how state is stored in widgets + - store if user wants blitting and if canvas supports blitting + - use case is standalone figure that might get attached to canvas + +--- + +# January 22, 2026 + +_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ), @melissawm, [@anntzer](@pXw4hSgTQF2--OciPYwa1w), @story645, @ksunden, @tacaswell, @scottshambaugh, @timhoffm , @QuLogic + +## Agenda +- [x] RSE updates +- [x] NASA updates +- [ ] 3.11 status + +## Notes + +### RSE updates +- Tom: + - minimal work, in operation/project +- Melissa: Created a doc for discussion around triage team: https://hackmd.io/@matplotlib/r1g8K31Ubx + - [ ] Melissa to create a subcategory on discourse for maintainers to add/nominate people to the triage team + - [ ] Melissa to figure out a way to add AI use disclosure/information on docs + - [ ] Caswell will investigate GH group permissions / external contributor for triage +- Kyle: + - still waiting on contract + - mostly review/issue + +### NASA +- slow progress +- final report for previous roses is due in April + +### 3.11 +- [#30059 drop intermediate buffer](https://github.com/matplotlib/matplotlib/pull/30059) + - blockers: + - design decision is wrong, properly would be to have intermediate buffer in different position + - slight issue around positioning fraction bars when drawing math + - want to draw fraction bars exactly on pixel, requires controlling snapping better + - accept snapping b/c improvement over fuzzyness + - bars are slightly too low/high/wrong position - fix is figure out if floor or ciel rounding + - bar positioning issue is independent of buffer + - is here to avoid regenerating all the fraction images + - maybe kick fraction image regenerating down the road + - ok w/ edge case of overlapping glyphys? + - yes + - consensus: should go in, put buffer positioning and fraction bar on "nice to have" stack + +- [#30974 widget blitting](https://github.com/matplotlib/matplotlib/pull/30974) + - not sure if problen is in MNE tests, widget blitting code, or base canvas API (vs Gui canvas API) + - fire events where handler forces a draw that asks for a renderer that the base canvas doesn't have + - MNE is holding a canvas reference that calls for a non-existent canvas + +## other PRs +- [#30974 right click context menu](https://github.com/matplotlib/matplotlib/pull/30976) + - turn off able b/c other tools provide context menu + - general API figure.add_context_menu + callback + - squeeze into toolbar? + - add hamburger to toolbar w/ additional tools likes context menu + -[#30980 log axes on 3d plot](https://github.com/matplotlib/matplotlib/pull/30980) + - needs reviews, would fix oldest open bug! + +--- + +# January 29, 2026 + +_attending_: [efiring](@QWhXj01mSwmTjk5kN1H_qQ) @ksunden @QuLogic @tacaswell + +## Agenda +- [x] RSE updates +- [x] font discussions + +## Notes +All PR review diff --git a/meeting_notes/2026/2026_02_feb.md b/meeting_notes/2026/2026_02_feb.md new file mode 100644 index 0000000..e594522 --- /dev/null +++ b/meeting_notes/2026/2026_02_feb.md @@ -0,0 +1,289 @@ +# Matplotlib Weekly Meeting: February 2026 + +###### tags: `2026 dev call` + +--- + +# February 5, 2026 + +_attending_: + +[efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @tacaswell, @melissawm, @story645, @greglucas, @timhoffm, @QuLogic, @scottshambaugh, @ayshih, + +## Agenda +- [x] RSE updates +- [ ] 3.11 updates +- [ ] context menus vs menu bars +- [x] [name=hannah] GSOC +- [x] move away from pre-commit to prek + + +## Notes +### RSE updates +- Melissa + - Hannah created the Discourse category https://discourse.matplotlib.org/c/staff/private-discussion-about-nominations-to-the-triage-team/23 + - Created PR to fix new contributor bot: https://github.com/matplotlib/matplotlib/pull/31090 + - Created PR to fix docs on triage team nomination instructions: https://github.com/matplotlib/matplotlib/pull/31089 +- Tom + - mostly paperwork, some review +- Kyle + - PR review, moving 3.11 along +- Elliott + - mostly font things + - cleaned up docs server + - a big and un-useful space was the dev-docs + - tried tuning the reflog / gc on all of the repos +- Greg + - no work + +### move away from pre-commit to prek +- https://github.com/matplotlib/matplotlib/pull/31081 +- faster to setup, runtime about the same + +### GSOC +soft-missed the NF deadline, but try anyway: +- https://github.com/numfocus/gsoc/pull/565 + +projects to propose: + +- pull "relative" transforms out of annotate +- ~pull all style information into a dataclass hanging off the object (aligns well with dataprototype)~ too much design work +- add a first-class "overlay" layer API for interactive backends +- leave "choose your own adventure" + +### context menu vs menu bar +- https://github.com/matplotlib/matplotlib/pull/30976 +- add the ability have a right-click context menu + - concern is that users have already added their own context menus and we need to be careful about breaking user + - also concern that right-click is not availble on all platforms +- next idea was to move everything to the menu bar + - discovered issue: how does this map to sub-plots + - "magic wand" like pan/zoom + - dropdown menu of subplots (may be confusing with badly named subplots) + - broadcast to all applicable subplots + - rely on current axes +- if we have overlay infrastructure can do "hot corners" +- do "locked and discrete" motion (like x/y lock pan/zoom) + - we have roll now through mouse so might be hard + - hold control to snap to nearest 5 deg on top of current rotation +- add something like the blender gizmo in corner, put into that +- add "turn on context menu button" to menu bar + - works, but awkward user experiance +- put into the Qt plot updater + - propbly would require porting to atleast tk and macos +- could take the position that if we create the figure window we can control the context menu + - maybe go with this option with: + - rcparam and API to turn off all together + - detect if the user registers a right-click and remove ours + warn (with knob to supress the warning) + + +CONSENSUS + - try menu that turns itself off on detecting conflict + - create issue to snap 3D navigation anyway + + +### very fast fonts +- re-review 31046 now matches the constasts from LaTeX +- https://github.com/matplotlib/matplotlib/pull/31046#issuecomment-3846257438 is the font people will see the most, but latex in dejavu does not support math text + +--- + +# February 12, 2026 + +_attending_: +[efiring](@QWhXj01mSwmTjk5kN1H_qQ), @ksunden, @tacaswell, @melissawm, @story645, @timhoffm, @scottshambaugh, @trygve, @ayshih, @julian p (gh), + +## Agenda +- [ ] RSE updates +- [x] abusive AI agents +- [ ] 3.11 + + +## Notes +### RSE updates + +- Melissa + - Met with Albert to gather impressions on onboarding, documentation and the triage team expectations in general + - Will use results also to finish up https://github.com/matplotlib/matplotlib/pull/31089 + +### Abusive AI + +https://github.com/matplotlib/matplotlib/pull/31132 + + - can we block + - probaly not easily, if it is using api / gh cli tool to do this + - is this against GH ToS? + - @melissawm did report this as spam/inauthentic activity + - can we speculate on the motivation of the human in the back? + - probably not + - probably does not really matter + - how do we deal with AI agents? + - on level is a human doing copy/paste to the agent + - fully autonomous just go do stuff + - code generation + - in pre-AI code generation was expensive, so we work together to generate code + - add effort in PR review to gatekeep / keep quality up + - now code generation is super cheap, but review is still expensive + - thing we want from contributors is their thoughts and expericances + - if we want to take AI code to code base, should have core developers drive the agents + - more efficent, cuts down review loop + - LLVM has good language for this + - "extractive contributions" https://llvm.org/docs//AIToolPolicy.html + - explain that gfi is training [#31142](https://github.com/matplotlib/matplotlib/pull/31142) + - do we want to do any media prep? + - asks for GH? + - rate limit new account to opening new PRs / number of total open PRs + - add a flag to the user account when they have done spammy / verbose thing + - does the blog violate GH ToS + - can add requirement to flag AI generated as such + - looks like there was another issue involved that commented, had a comment hidden, and is now completely gone + - may GH deleted the account / comments? + - analogy to classes using us in classes + - we are getting used as unpaid, involentary test subjects + - cheap for agent owners, expensive for projects + - fully automated PRs are effectively DDOS attacks on projects + - seems like this is coming up everywhere at at same time (numpy/scipy, napari, scienitific pyhon, ...) + - https://github.com/matplotlib/matplotlib/pull/31026 merged to get clearer rules in + - keep these rules framed as being about maintaining the health of the project over the long term + - looks like there is going to a continium of human and machine interaction + - AI seems to work surprisingly well + - but you need to know what you are doing to make good use of it + - limit AI/LLM for GSOC + - we should make clear that the "get to know you PR" should be done with brain + - concerns about full ban on AI for english as an additional language speakers + - add wording that we expect authentic engagement + - make clear AI is a tool and we want your efforts / thoughts + +--- + +# February 19, 2026 + +_attending_: @tacaswell, [@efiring](@QWhXj01mSwmTjk5kN1H_qQ), @timhoffm, @ksunden, @scottshambaugh, @ayshih, @rcomer, @melissawm, @guenp, @story645 +github: Camilla Moraes (@, Abigail Cabunoc Mayes (@abbycabs), Sarah Kaiser, Ashley Wolf (@ashleywolf, mrjf +numfocus: Arliss + +## Agenda +- [ ] AI agents +- [ ] RSE updates +- [ ] 3.11 + +## Notes + +### AI agents +- please don't take down @crabby-rathbun, for historical records +- labeling accounts as AI/Human + - would be nice to know if the code is human generated + - github has a bot flag, but used more for automation + - at which level? account, post, both? +- clarify that user bears responsibility for their agents in TOS +- unclear expectations around guardrails for copilot +- surface Ai policy/agents.md as community health type documents (like license.md) + - setting expectations around AI use + - no standard for agents.md contents yet, github might be able to set one +- managing pr allowances/restrictions + - allow lists/chains of trust + - moderation levels/roles + - - adding people efficiently +- efficacy of reviewing/dealing w/ random agentic PRs + - maintainers can use agents too +- enforce contributing guidelines that the bots need to follow + - github has an AI tool for reviewing incoming contributions based on contributions guidelines +- two problems + - good actors - follow agents.md, etc, + - bad actors - ignore agents.md, etc, +- rate limit accounts scaled by account age/reputation +- requiring issue before PR + - agents are looking for issues - require issue assignment to open PR + - manually assign people to allowlist? + - roles can bypass this gate + +### RSE updates + +- Melissa + - Working on https://github.com/matplotlib/matplotlib/pull/31089 + - Reviewing triage team nominations + +--- + +# February 26, 2026 + +_attending_: @efiring, @rcomer, @tacaswell, @ayshih, @ksunden, @melissawm, @timhoffm, @scottshambaugh, @story645, @QuLogic, Ammar Sharif (@Ammar Sharif) +## Agenda +- [x] RSE +- [ ] 3.11 +- [x] [name=hannah] change chat links to discourse +- [x] [name=hannah][autoclose bot](https://github.com/matplotlib/matplotlib/issues/31164) +- [x] [name=hannah][moderator guidelines](https://github.com/matplotlib/matplotlib/pull/31200) +- [ ] review https://github.com/matplotlib/matplotlib/pull/31021 + +### PR review + + +## Notes + +- RSE updates + - Melissa + - Working on https://github.com/matplotlib/matplotlib/pull/31089 + - Reviewing triage team nominations + - Reviewing more PRs + - Met with Tim to discuss triage + - Tom + - minor paperwork and issue review + - Kyle + - issue review trying to get 3.11 out the door + - planning a tutorial for scipy + - Elliott + - sick last week, not super productive + - font work + - preparing issues for tracking work for follow on + +### chat on discourse + +- should we cut over? +- seems to be going tell + +decision: lets cut over! + +- Melissa will submit PR to update links + +### 3.11 + +- doing OK, last minute mathtext threw monkey wrench in +- need to land one more PR that changes test images, can delay features to next version +- RC target next week + - two or three PRs to clean up images + - should we move tests to new style? +- request to get #31021 in for 3.11 + - yes + +### autoclose bot + +- we put a label onlow-quality PRs + - bot posts instructions on how to get reviewed + - bot auto-closes if no after a week or so if no feedback +- possible use https://github.com/2ndSetAI/good-egg to flag score/reputation of contributor + - some concerns about posting a public behavior report to an issue + - if we do this should put it someplace private that auto posts + - a services that we put a GH handle into and get a report + - a bot that flags on someting very simple like "more than 50 opened PRs in last week" + - use new-contributor project board + +going to go with: + - trigger this to new contirbutor board -> Melissa will work on this + - turn on bot with 2 week timeout + +### moderator guidelines +- violates our contribution guidelines +- enforcement: + - three verbal warnings (temp ban an #3) + - temporary ban + - three more verbal warnings? + - when people come back from temporary ban, unlikly a second temporary band will help + - if behvior persists/doesn't improve, then escalate + - consult in chat as needed +- bring both temproary and permenant bans to this meeting for awareness + - we should comment on issue anyway +- platform specific bans, ban from all is CoC +- AI can just be banned b/c it's not a person w/ feelings + +### image placement: [31021](https://github.com/matplotlib/matplotlib/pull/31021) diff --git a/meeting_notes/2026/2026_03_mar.md b/meeting_notes/2026/2026_03_mar.md new file mode 100644 index 0000000..9144609 --- /dev/null +++ b/meeting_notes/2026/2026_03_mar.md @@ -0,0 +1,221 @@ +# Matplotlib Weekly Meeting: March 2026 + +###### tags: `2026 dev call` + +--- + +# March 5, 2026 + +_attending_: @tacaswell, @efiring, @timhoffm, @melissawm, @scottshambaugh, @ksunden, @ayshih, @story645, @anntzer + +## Agenda +- [x] more AI related fallout +- [x] RSE updates +- [x] 3.11 +- [ ] PR review + + +## Notes +### adopt some of np's wording for new contributor message +- adding a "why here?" to the pr greeting bot for new contributors + - NumPy wording: https://github.com/numpy/numpy/pull/30932/changes +- +### RSE updates +- Kyle + - scipy tutorial proposal + - PR review for 3.11 +- Tom + - minimal +- Melissa + - New contributors meeting - students from Portugal + - [Remove gitter from docs](https://github.com/matplotlib/matplotlib/pull/31236) + - [DOC: Update triage team nomination instructions#31089](https://github.com/matplotlib/matplotlib/pull/31089) + - Discussion: Triage chat on Discourse? + - Looking into https://github.com/matplotlib/matplotlib/issues/31108 + - Next: autoclose bot + - Elliott + - font stuff + +### 3.11 status +- https://github.com/matplotlib/matplotlib/issues/31220 (linesize) + - historically the height of lines was to measure height of `lp` + - maybe actualy text as for taller things + - this is not reliably as it is possible to have fonts without either an l or p (e.g. emoji, CJK) + - can ask the fonts directly for the size rather than use heur + - istics + - but this will change tests + - thearding this through the backend API is a big lift + - accepted propsoal: hard-code the answers for the default font (dejavu) for 3.11 so the tests do not change when we implement this in the future + - con: bit brittle + - pro: prevents us from needing major changes + +### PR review +- Alpha compositing [#31162](https://github.com/matplotlib/matplotlib/issues/31162) + - [alpha blending modes](https://hackmd.io/d4jJmDiKR2G4DAM4nVZTtA#Alpha-compositing) + - currently renderer level, matches the API style of agg filters + - do not try to thread this through main plotting API + - concern about re-using/co-opting `rendered.{open,close}_group` + - this provides compositing groups + - if drawing artist with alpha on an existing background using + - there are other compositing modes, but do not want to do globally + - really want to render a subset of artists together with the other mode and then composite that whole thing into one + - discussion about pulling blending groups out into their own functions + - some concern about dealing with interleaved blend and filter groups in Agg but we think that this is tractable with + +- [name=Scott] A few ready-to-go PRs with one review (thanks Tim!) that need one more. No rush, just highlighting: + - Bugfix https://github.com/matplotlib/matplotlib/pull/31061 + - Performance https://github.com/matplotlib/matplotlib/pull/31005 + - Performance https://github.com/matplotlib/matplotlib/pull/31004 + - Performance https://github.com/matplotlib/matplotlib/pull/30995 + - 3D log axes https://github.com/matplotlib/matplotlib/pull/30980 + +### triage/maintainers/discourse +- public discourse channel +- private triage + maintainers team + channel + - [x] move triage nomination to this category + - [x] traige, maintainer teams added to discourse + +--- + +# March 12, 2026 + +_attending_: @tacaswell, @efiring, @QuLogic, @ksunden, @trygve, @scottshambaugh, @story645 + +## Agenda +- [x] Security issues +- [x] RSE updates +- [x] 3.11 +- [ ] PR review + + +## Notes + + +### RSE updates +- Tom: + - just review work + - found pybind11 regression on their main +- Elliott + - 3.11 prep + - finished off text metric work (should be last thing!) +- Kyle + - mostly 3.11 prep + - going thorugh at PRs with atleast 1 approval (particuarlly Elliott's) +- Melissa + - autoclose tag name + - current needs XXX not clear enough + - proposal from Caswell: "autoclose candidate" + - Hannah / Melissa should just make a choice + - updates to new contributors PR table (gh project) + - thinking through exact process for handling triage team nominations so we do not lose track of things in flight + +### Security issues +- Security policy: https://github.com/matplotlib/matplotlib/security/policy +- How much should we handle these in public? Is there a private channel for this? Role of Tidelift? + - please report things that should be confidential through tidelift + - this does send emails to the team, only gotten spam so far so haven't "stress tested" the process yet +- Always backport security issues? GH tag? + - depends on severity +- for the current set + - more hardening than vulnerabilities, backport to 3.10.x + - scott has 1-2 more to submit + +### 3.11 status +- only fonts left and hardening PRs +- would be good to land a few more performance PRs +- fontmetric PR + - https://github.com/matplotlib/matplotlib/pull/31291/ + - consenus of call is that single line does not need line spacing +- https://github.com/matplotlib/matplotlib/pull/31281 + +### PR review +- + +### triage/maintainers/discourse +- Orphan PR cleanup +- [name=Melissa] First-time contributors PRs project: https://github.com/orgs/matplotlib/projects/1/views/3 + - Recently updated. If you feel like it, take a look at some of the "Needs decision" PRs. +- [name=Melissa] Autoclose bot: https://github.com/matplotlib/matplotlib/pull/31283 + - Can we agree on the label name? +- [name=Melissa] Triage team nominations: https://discourse.matplotlib.org/c/development/private-discussion-about-nominations-to-the-triage-team/23 + - Next steps? + +--- + +# March 19, 2026 + +_attending_: @ksunden, @QuLogic, @tacaswell, @melissawm, @ayshih, @story645 +jetbrains: Natalia, Galina +## Agenda +- [x] Jetbrains styles +- [ ] RSE update +- [ ] 3.11 +- [ ] PR + +## Notes +### Pycharm styles +- 2 new styles - light/dark. + - paired light + dark + - 10 colors in a cycle + - cvd friendly, + accessibility + - made by a designer + - manage updates - add version # + - licensing: no intent to limit the schemes +### RSE updates +- Kyle + - doing backports to 3.10 for some security hardening + - review for 3.11 +- Elliott + - going through open PRs and clear them out + - now have WASM ci to produce nightlies for py312 + - py313 broken for reasons we don't understand and don't got pypi + - jupyterlite docs being looked at again + - we can now run the devdocs against these wheels + - font stuff + - updated the font height PR +- Tom + - mostly vacation +- Melissa + - 3 PR open that need review + - [minor formatting and linting issues](https://github.com/matplotlib/matplotlib/pull/31338) + - [triage team nom process](https://github.com/matplotlib/matplotlib/pull/31089) + - [focus on one pr](https://github.com/matplotlib/matplotlib/pull/31329) + - invitation to discuss triage with Melissa + - Feel free to book at time with me at https://calendly.com/melissawm/chat + +### 3.11 + +--- + +# March 26, 2026 + +_attending_: @ksunden, @melissawm, @ayshih, @scottshambaugh, @efiring, @QuLogic, @story645, @tacaswell @timhoffm + +## Agenda +- [x] RSE updates +- [x] 3.11 +- [x] setuptools scmscm +- [ ] first time contributor review + +### RSE updates +- Kyle +- Elliot +- Melissa + - discussion about reducing number of open PRs +- Tom + - Y2 funding from NASA is with NF + +### 3.11 +- text things need review and merge + +### setuptools-scm +- 10.0.2 broke all of our tests +- we should pin to less than 10 for now +- sort out if we need to do our own thing + - https://discuss.python.org/t/please-make-package-version-go-away/58501 +- only a dev dependency so not too worried about pinning + +### eval patch +- we should backport to 3.10.9 and make sure there is a release note +- pick one or the other for recursing when handling args/kwargs + - will go with recurse on both diff --git a/meeting_notes/2026/2026_04_apr.md b/meeting_notes/2026/2026_04_apr.md new file mode 100644 index 0000000..8f98efc --- /dev/null +++ b/meeting_notes/2026/2026_04_apr.md @@ -0,0 +1,240 @@ +# Matplotlib Weekly Meeting: April 2026 + +###### tags: `2026 dev call` + +--- + +# April 2, 2026 + +_attending_: @ksunden @QuLogic @tacaswell, @ayshih, @efiring + +## Agenda +- [x] RSE update +- [ ] fonts +- [ ] other 3.11 +- [ ] PR review + +## Notes + +### RSE updates + +- Kyle + - slow week, some travel and out of pattern + - have 41 GSOC applications + - 10 for indirect transfrom + - 14 for overlay + - rest are misc +- Tom + - took 3 of 5 last work days off +- Elliott + - PR review, lots of small PRs while waiting for big PRs to land. + - some new font fetures (maybe not for 3.11) + +### fonts! + +--- + +# April 9, 2026 + +_attending_: @ksunden @QuLogic @scottshambaugh @efiring @ayshih @timhoffm @melissawm + +## Agenda +- [x] RSE update +- [x] fonts +- [ ] other 3.11 +- [ ] PR review +- [x] [name=hannah][use minigallery on tutorial landing page](https://github.com/matplotlib/matplotlib/pull/31275) + - needs a yes/no: replace hardcoded html thumbnails w/ minigallery directive + +## Notes + +### RSE Updates + +- Kyle: + - 3.11 review + +- Elliott: + - 3.11 PRs + - looking at some doc build speedup + +- Melissa: + - Fix for first-contribution action: https://github.com/matplotlib/matplotlib/pull/31479 + - Melissa to report upstream and we'll give it 2 weeks to see if an actual fix is merged. + - Triage board: can anyone with permissions create a GitHub app for the Jupyter Triage Board? https://github.com/jupyter/pr-triage-board-bot#set-up + - (I can probably take care of duplicating the board and setting the rest of the items up, but I can't create an org app) + - Kyle to set this up and communicate back with updates. + +### Minigallery (31275) + +- PR summary needs re-writing +- PR is an improvement, worth merging +- Elliott to take care of merging after meeting + +### GSOC +- Kyle & Elliott have started looking at the applications, dividing into subject categories. Two biggest are the transform (11) and the overlay (15). +- schedule meeting to select top few + +## Triage (if there's time) + +- [ ] One approval: [Adds plot_exclude_patterns config to selectively disable plot_directive.#31270](https://github.com/matplotlib/matplotlib/pull/31270) +- [ ] Needs review: [[BUG] Fix alpha bug on 3D PathCollection plots.#25478](https://github.com/matplotlib/matplotlib/pull/25478) +- [ ] Very old, needs review/decision: [Let twin-axis aligned at the specified position#26109](https://github.com/matplotlib/matplotlib/pull/26109) +- [ ] Recent, needs discussion/decision: [Fix #21409: Make twin axes inherit parent position#31353](https://github.com/matplotlib/matplotlib/pull/31353) + +--- + +# April 16, 2026 + +_attending_: @QuLogic, @efiring, @ksunden, @tacaswell, @story645, @timhoffm + +## Agenda +- [x] RSE update +- [x] fonts +- [x] other 3.11 +- [ ] PR review + - [ ] Changing 'animation.html' to [make `Animation._repr_html_` more useful](https://github.com/matplotlib/matplotlib/pull/31510) + +## Notes +### GSOC applicate notes and down selection +(not taking notes for obvious reasons) + +### RSE update +- Kyle + - looked at flaky tests + - startup time of subprocess was longer than we thought + - some review + - GSOC review +- Elliott + - publicized the nightlys coming + - seeing some people update their test images, but have not complianed + - Albert may have handled at least 2 of these so know it was coming and all the details + - also worked on the flaky test + - put is PR to fix pybind11 failure + - GSOC review +- Tom + - got ROSE 2020 grant final report +- Melissa via staff chat + - MAINT: Add PR triage board action by melissawm #31499 + - DOC: Update triage team nomination instructions by melissawm #31089 + - following up on the triage team nominations - what are the next steps here? + + +### font + +nothing came up + +### other 3.11 + +- giving some time for nightly complaints +- branch today, aim for RC on Tuesday +- outstanding PR on setting image styles + - kept default as None, raise deprecation warning that it's changing to mpl20 +- ran through a bunch of PRs + +### + +--- + +# April 23, 2026 + +_attending_: @tacaswell, @efiring, @QuLogic, @ksunden, @story645, @ayshih, @timhoffm, @melissawm + +## Agenda +- [x] RSE update +- [ ] PR review +- [x] Feedback on new triage board: https://github.com/orgs/matplotlib/projects/11 +- [x] 3.11 status +- [ ] (if time permits) Triage + +## Notes + +### RSE updates +- Kyle + - GSOC list in, just ranked one choice as we can only take one + - going through release checklist for 3.10.9 today, will be tagged after meeting +- Tom + - mostly BNL stuff, project management / paperwork +- Elliott + - getting through 3.11 PRs + - all PRs in + - fixed website + - internal cert expried between DO and CF + - [#23616: mathtext support underline](https://github.com/matplotlib/matplotlib/pull/23616#issuecomment-4230062034) + - accept trade off of sometimes looking great/terrible over consistently looking ok + +### 3.11 +- one last PR (underline one discussed above) +- branch today ! +- first one for Elliott using new (seperate repo) process + +### Triage +- once a consensus is reached on thread, @ksunden and @QuLogic can add person + - what is consensus? what is the timeline? + - leave nom up for a week, if nobody opposes we accept + - email invite template - whoever can add people to theme + - add label email sent + - close thread when they accept/reject +- [Nomination instructions PR](https://github.com/matplotlib/matplotlib/pull/31089) + +### new board +- Caswell thinks it looks great +- @melissawm will check w/ upstream on whether the board can be customized or we need to fork to customize +- user merged rather than closed? +- bot detection +- retire first time contributor board bt merging into triage board +- add new view for approved unmerged w/ flakey tests + +### [privatize formatter attributes](https://github.com/matplotlib/matplotlib/pull/31416) +- track internal state so shouldn't be user modifiable + +--- + +# April 30, 2026 + +_attending_: @ksunden, @QuLogic, @ayshih, @trygve, @story645 + +## Agenda +- [ ] RSE update +- [ ] PR review +- [ ] 3.11 status + - [ ] [3.11 rc issues](https://github.com/matplotlib/matplotlib/issues/31589) + - [ ] [Expire some missed deprecations from 3.9](https://github.com/matplotlib/matplotlib/pull/31588) + - [ ] [Should `_make_axis_parameter_optional` handle `None`](https://github.com/matplotlib/matplotlib/issues/31590) +- [ ] (if time permits) Triage + +## Notes + +### RSE updates: +#### Kyle & Elliott +- 3.10.9 + 3.11 RC out + - dealing w/ the bug reports +#### Kyle +- contracts and backend things +#### Elliott +Fedora as proxy for general problems: +- found 10 failures +- reporting to downstream projects +-Release Critical: decide what to do w/ `make_axis_ parameter` + - seaborn passes a string into `scale` for the axis argument, but axis is never used so it's ignored. eventual goal is maybe to remove/deprecate. + - since seaborne doesn't pass in an axis, is not ignored and blows up + - raises ambiguity w.r.t. first parameter +- will probably do a second RC to check if issues are resolved +needs decisions/to be in by next RC +- expiring deprecations (needs review) +- make_axis_parameter + +#### Melissa + +- The triage team nomination instruction PR is I think ready: DOC: Update triage team nomination instructions by melissawm · Pull Request #31089 · matplotlib/matplotlib · GitHub + - will review the current template used to invite new maintainers and potentially reuse it for triagers +- will update the reviewer guide to include a note about when to stop reviewing low-effort PRs. +- will also include a link to the new triage board. +- If you have other suggestions for tasks or activities please let Melissa know. Thanks! + +#### after 3.11 triaging +- alpha blending +- multi-variate colorbar + + +#### GSoC +@story645 will email accepted person to kick off community bonding diff --git a/meeting_notes/2026/2026_05_may.md b/meeting_notes/2026/2026_05_may.md new file mode 100644 index 0000000..f908fd5 --- /dev/null +++ b/meeting_notes/2026/2026_05_may.md @@ -0,0 +1,182 @@ +# Matplotlib Weekly Meeting: May 2026 + +###### tags: `2026 dev call` + +--- + +# May 7, 2026 + +_attending_: @efiring, @timhoffm, @rcomer, @ayshih, @ksunden, @QuLogic, @story645, @tacaswell + +## Agenda +- [x] RSE updates +- [x] PR review +- [x] 3.11 status + - [x] [PolarTransform `apply_theta_transform` deprecation](https://github.com/matplotlib/matplotlib/issues/31624) + - [x] [3.11 rc issues](https://github.com/matplotlib/matplotlib/issues/31589) +- [ ] (if time permits) Triage + - [ ] [#31346 - Disable auto-loading custom matplotlibrc files](https://github.com/matplotlib/matplotlib/issues/31346) + +## GSOC +- not starting til after May 20th, +- google granted 16 week extension, 1st eval moved to July 20th + +## RSE +- 3.11 finalizing + release notes + +## 3.11 RC issues +- reported upstream: myst-nb, animatplot, iplotx, mapclassify, scalebar, pytest-mpl +- @qulogic put in pr for seaborn + #31590 +- #31624 PolarTransform + - deprecate vs. delete? + - set true/none triggers warning to set to false + - false currently fails silently (is what set in docs) + - currently half deprecated, should it be full? + - yes, make it full deprecration + +## auto-loading custom matplotlibrc +- disable autoloading for security reasons +- options: + - add another option to matplotlibrc environment variable + - add turn off flag "MATPLOTLIBRC_UNSAFE_CWD=1" + - pro: easy to document + - con: creates coupling btw/ MATPLOTLIBRC \which takes filepath) * and MATPLOTLIBRC_UNSAFE_CWD + - USE/NOT USE takes priority + +deprecation path: go through current list, report list and warning that in future must be listed explicitly + +consensus: add empty flag to current RC + +--- + +# May 14, 2026 + +_attending_: @efiring, @ayshih, @QuLogic, @ksunden, @story645, @timhoffm + +## Agenda +- [x] RSE updates +- [ ] PR review +- [x] 3.11 status +- [ ] [name=hannah][Accessviz](https://ieeevis.org/year/2026/info/program/workshops/#accessible-vis) + - 3rd Workshop on Accessible Data Visualization + - due mid july (?) + - seeking feedback/co-authors: [draft](https://github.com/story645/accessviz) + +## Notes +### RSE +- RC2 released Tuesday + - fixed seaborne related tests failures + - cartopy CI indicates fixed CI + - @QuLogic prepping release notes +- @ksunden review + data prototype (mostly review) + +### 3.11 +- few test issues left, likely ghostscript related + +### accessiviz +- thesis: architecture/design decisions facilitates acessibility +- modeled on [bokeh accessibility audit](https://bokeh-a11y-audit.readthedocs.io/) + +### Blend mode and blend groups +- https://github.com/matplotlib/matplotlib/pull/31162 +- blend mode + - blends to below based on z order +- blend group which fixes bugs + - blend artists by groups + - needs renderer calls - open/close_blend_group + +- `ArtistGroup` helper function for plotting layer + - usually users don't call renderer directly + - calls draw on group w/ blend mode, result then gets added to draw stack + + - can this be spun into it's own thing for all things grouping artists + - this PR leaves `ArtistGroup` as example, spin off `ArtistGroup` as API as a standalone PR + +- How are artists currently grouped? + - collection of `same` Artist + - container of `different` Artists + - potential: compound Artist for semantic groupings + - PieContainer if it had a draw method + - > [name=hannah] we should document this in architecture docs + +--- + +# May 21, 2026 + +_attending_: @tacaswell @QWhXj01mSwmTjk5kN1H_qQ @ksunden @QuLogic @story645 @ayshih + +## Agenda +- [x] RSE updates +- [ ] PR review +- [x] 3.11 status + +## Notes + +### RSE + +- [name=melissa] (will join at the second half hour!) PRs waiting for review/decision: + - [DOC: Update triage team nomination instructions#31089](https://github.com/matplotlib/matplotlib/pull/31089) + - [Add template for new triage team invitation#47](https://github.com/matplotlib/governance/pull/47) + - [MAINT: Set "skip internal contributors" to PR welcome bot#31479](https://github.com/matplotlib/matplotlib/pull/31479) + - There is a current bug upstream but even when fixed I think it's a good idea to have this option set to true, which means creating the `GH_PAT_READ_ORG` secret. + - Another option is to close this PR and try to detect first-time-contributors from the triage board. + - Tom: swamped with other things + - Kyle: + - mostly review + - did spot check of recent pushes for malicious commits + - hardened some of our "do not push to branch with out PR" settings + - Elliott + - slow week (long weekend) + - through fedora rebuild and it appears all issues (other than image changes due to text) addressed + - waiting on docs update + +### 3.11 + - in home stretch, see Elliott's notes above + +### PR review +- blend mode PR https://github.com/matplotlib/matplotlib/pull/31162 +- https://github.com/matplotlib/matplotlib/pull/31703 the joys of floating point +- reviewed triage team, will merge tomorrow +- invite template in review process +- wait on bug upstream for new-contirbutor bot and look at alterantives / pinning back. + +--- + +# May 28, 2026 + +_attending_: @tacaswell @efiring @ksunden vikash @QuLogic @story645 @timhoffm + +## Agenda + - [x] RSE updates + - [x] GSOC updates + - [x] 3.11 + - [ ] GSOC kickoff + +## Notes +### RSE updates + - Kyle + - review for 3.11 + - getting back onto data-prototype work + - starting to ramp up GSOC + - Tom + - mostly not + - Elliott + - 3.11 + - finished off docs + - posted update on downstream testing, can probaly close downstream tracker issue 31589 + - need to commit guide on how to deal with text test image changes + - some outstanding 3D bugs , have PRs for them + - examples from third-party examples with 3D looked ok + +### GSOC +- intros +- what is the project + - overlay API for Matplotlib + - this in the first call +-todo: write short/pro-con on two approaches: + - layer concept inside figure (managed in draw) + - layer concept outside figure, (calls figure draw as part of managing layers) + +### 3.11 +- final within a week + - waiting on 3D + review of whats new diff --git a/meeting_notes/2026/2026_06_jun.md b/meeting_notes/2026/2026_06_jun.md new file mode 100644 index 0000000..30d7318 --- /dev/null +++ b/meeting_notes/2026/2026_06_jun.md @@ -0,0 +1,156 @@ +# Matplotlib Weekly Meeting: June 2026 + +###### tags: `2026 dev call` + +--- + +# June 4, 2026 + +_attending_: @efiring, @ayshih, @ksunden, @story645, @scottshambaugh, @melissawm, @timhoffm, @QuLogic, @trygve + + +## Agenda + - [x] RSE updates + - [x] GSOC updates + - [x] 3.11 + - [x] Multivariate colorbars – https://github.com/matplotlib/matplotlib/pull/31214 + +## Notes + +### RSE +- [name=Elliot] 3.11 prep, docs/review +- [name=Kyle] 3.11 review, gsoc, data prototype +- [name=Melissa] + - https://hackmd.io/@matplotlib/triage + - Updating some labels? + - https://github.com/matplotlib/matplotlib/pull/31479 + +### New contributor meeting +- make next one triage focused + - explain labels + - discuss patterns for finding issues + - walk through triage +- have more advert roll out +- use structured presentations: + - [Matplotlib Triage Team Guide](https://hackmd.io/ldtuYHHXSOmyXhdprUM7rg#/) + - [How can you contribute to Matplotlib?](https://hackmd.io/zdaQtgq0QsWjm95TSMw0YA#/) + +### GSoC +- discussion in https://discourse.matplotlib.org/chat/c/gsoc/21 +- work-log: https://hackmd.io/DIYP5uqhSi6D2ek4E8ObsA +- on going task: design work on where the bookeeping happens for overlay + +### multivariate +- rebase and merge [multivar imshow](https://github.com/matplotlib/matplotlib/pull/30597) +- rebase colorbar PR onto imshow + - needs review + +### 3.11 +- [update sphinx theme](https://github.com/matplotlib/matplotlib/pull/31539) +- [reduce duplicates in contributor stats](https://github.com/matplotlib/matplotlib/pull/31815) + +--- + +# June 11, 2026 + +_attending_: @efiring, @tacaswell, @QuLogic, @ayshih, @ksunden, @story645 + +## Agenda +- [x] RSE +- [x] GSOC +- [x] 3.11 + + +## Notes +### Scipy / JDH lunch discussion +- [x] @story645 will send email to our dev list soliciting stories / memories + +### RSE +- Tom + - very little mpl last two weeks +- Kyle + - GSOC + - found an issue to add pre-draw event in our event system + - still working on data-prototype PR +- Elliott + - closed the 3.11 milestone + - ball is rolling on doing final release + - PR reviewed, tag locally + +--- + +# June 18, 2026 + +_attending_: @ksunden, @melissawm, @QuLogic, @ayshih, @story645, @trygve + +## Agenda +- [ ] RSE +- [ ] GSOC +- [ ] 3.11 +- [ ] PR review + - [Add path.sketch_seed to control sketch randomness #31311](https://github.com/matplotlib/matplotlib/pull/31311): API design decision + +## Notes + +### RSE +- sphinx-gallery implemented tags, @melissawm will investigate transtion + - tagging as sprint activity + - @ayshih : SunPy is using this new functionality (in fact, it was developed under SunPy OSTFL funding), and here's an [example page](https://docs.sunpy.org/en/latest/generated/gallery/plotting/index.html) that shows how tag filtering works +- 3.11 has been out for a week + - 3.11.1 planned out soon + +@QuLogic: +- investigating 3.11 bug reports +- fixing type hints +- helping w/ cartopy release +- gsoc + +@ksunden: +- review, gsoc, data-prototype +- debugging failing windows test + +@melissawm: +- deactivated inclusion of items in new contributor board +- consolidated dependency(dependabot) labels +- started triaging backlog +- [Add path.sketch_seed to control sketch randomness #31311](https://github.com/matplotlib/matplotlib/pull/31311): API design decision + - Needs verification that tests are implemented correctly, not just an API decision. + - Might be a good sprint task? + +### Path.sketch_seed +- most of the review work is checking that the tests check what they're supposed to +- API decision of seperate parameter or extend sketch to 4 tuple + - reason for seperate was mostly b/c implementation for seed management is independent of sketch + +### GSOC + +- Tue/Thu schedule to assign tasks and onboard contributor into MPL draw stack. + +--- + +# June 25, 2026 + +_attending_: @ksunden @tacaswell @QuLogic @efiring @story645 @ayshih @scott shambaugh + +## Agenda +- [x] 3.11 fallout +- [x] RSE updates +- [ ] blend modes + +## Notes +### 3.11 fallout + - some minor regressions, mostly fixed + + +### RSE updates +- Kyle + - looking at data prototype stuff + - some review, helping with 3.11 + - still looking at gif read failure on azure + - one failure on one azure job on windows reading a baseline gif +- Tom + - mostly swamped with other stuff +- Elliott + - 3.11 followup + - GSOC + - looking at cartopy release prep diff --git a/meeting_notes/2026/2026_07_jul.md b/meeting_notes/2026/2026_07_jul.md new file mode 100644 index 0000000..eaf06ad --- /dev/null +++ b/meeting_notes/2026/2026_07_jul.md @@ -0,0 +1,276 @@ +# Matplotlib Weekly Meeting: July 2026 + +###### tags: `2026 dev call` + +--- + +# July 2, 2026 + +_attending_: Scott Shambaugh, @ksunden , @tacaswell, @QuLogic , @timhoffm , [@anntzer](@pXw4hSgTQF2--OciPYwa1w), @story645, + +## Agenda +- [x] RSE updates +- [x] 3.11.1 ? +- [x] [name=hannah] [accessviz](https://github.com/story645/accessviz) due July 8th +- [ ] [name=scott] [3d offsets](https://github.com/matplotlib/matplotlib/pull/31279) +- [ ] blend mode PR + +## Notes +### RSE updates + - Kyle + - working on plan to review data prototype and prep + - GSOC + - Elliott + - GSOC + - working on cartopy + - 3.11 looked at pdf subsetting + - there is subsetting bug in PDF (reported as surprise ligature) + - Tom + - minor review + - dealt with a privacy disclosure +### 3.11.1 +- no emergency +- aim for next week + +### acessiviz +- Kyle, Tim, and Scott will look at + +--- + +# July 9, 2026 + +_attending_: @tacaswell, @ksunden, @ayshih, @qulogic, @story645 + +## Agenda + - [x] RSE updates + + +## Notes +### RSE updates + - Kyle + - general maintence + - reviewed accessiviz + - submitted, deadline pushed to July 21 if we want more edits + - work an dataproto type + - GSOC + - Elliott + - 3.11.1 work + - review accessivis paper + - looked at discourse for why mailing list forwarding is not working + - will think about how to deal with dropped mail + - cartopy + - fixed up their tests with 3.11 + - waiting for review + - +> [name=hannah] is very grateful for everyone's help + +- Tom + - some review +- Meliisa + - Triage meeting: https://hackmd.io/@melissawm/HysO1VNXMx +### scipy notes + - next week + - Tom and Kyle will be there and miss this call + - need to write tools plenary + - hit font work + - advertise triage team/NCM meetings + - tease alpha blending + +### Blend modes +- can support fancy blends in vector backends that do not natively supported +- not supported means no clear path to implementation +- most likely done + +### docs milestone +needs to be manually published, should either automate or drop + +--- + +# July 16, 2026 + +_attending_: @melissawm, @ayshih, @QuLogic, @story645, Scott Shambaugh, Ricci Adams + +## Agenda +- [ ] RSE updates + +### PRs & Issue +- [fix for path snapping #32018](https://github.com/matplotlib/matplotlib/pull/32018) +- [fix for mouseover and canvas height #32038](https://github.com/matplotlib/matplotlib/pull/32038) +- [x] [multivar imshow](https://github.com/matplotlib/matplotlib/pull/30597) + - [x] [Commonize 3D zmargin handling with x and y axes](https://github.com/matplotlib/matplotlib/pull/31287) + +## Notes +### RSE updates +- Tom & Kyle - scipy +- Melissa + - set up and run triage meetings ([Matplotlib Triage Team Guide](https://hackmd.io/@matplotlib/triage) - feedback on this presentation is welcome!) + - asking for next ideas + - bringing in meeting notes to meeting + - Idea: clean up architecture doc PR (tick whatever is done from the todo list) + - finish up dev docs rearch [26196](https://github.com/matplotlib/matplotlib/issues/26196) + - Audit style docs/format docs [26392](https://github.com/matplotlib/matplotlib/issues/26392) + - Audit/summarize automated AI review tools available to see what would fit the repo best. Maybe start with API guidelines + - Autoclose PRs that don't correctly fill PR template: investigate if this is easy to implement +- Elliott + - 3.11.1 work - 1? PR left on milestone? + - cartopy work, waiting on pyproj + +### jupyterlite +- hang up is test w/ fonts slightly different/ WASM issues +- might be ok w/ pyodide pre-built wheels + +### 3D margin + +- fix either way, question is which margin to use: + - keep plots looking mostly the same + - improves the look +- half the tests get updated +- major regression change w/ either choice + +### mpl-bench +- devs should have write access + +### multivar and z margins +need decisions from @timhoffm + +--- + +# July 23, 2026 + +_attending_: @efiring, @ayshih, @iccir, @story645, @ksunden, @QuLogic, @melissawm, @trygve, @tacaswell, @timhoffm + +## Agenda +- [x] RSE updates +- [x] [name=QuLogic] Cairo backends (cf. [#32084](https://github.com/matplotlib/matplotlib/issues/32084)) + +### PRs & Issue +- [ ] [name=QuLogic] [pybind11 v3 #30291](https://github.com/matplotlib/matplotlib/pull/30291) +- [ ] [name=QuLogic] [std::visit to exhaust std::variant possibilities](https://github.com/matplotlib/matplotlib/pull/30773) +- [ ] [name=ayshih] [path snapping #32018](https://github.com/matplotlib/matplotlib/pull/32018) +- [ ] [name=ayshih] [blend modes, of course! #31162](https://github.com/matplotlib/matplotlib/pull/31162) + + +## Notes + +### RSE updates +Melissa: +- enforcing that PR templates are filled + - unfilled templates are usually a strong signal + - [shorten PR template](https://github.com/matplotlib/matplotlib/pull/32100) + - [pr content check](https://github.com/matplotlib/matplotlib/pull/32082) +- poll on discourse about meeting times + +Elliott: +- GSOC, midterm evals due +- 3.11.1 released +- couple of things came in for 3.11.2 +- working on subpixel snapping for markers and AGG stuff + +Kyle: +- GSOC +- [mpl-altair](https://github.com/matplotlib/mpl-altair) -> matplotlib backend + - instead just do a straight vega-grammer to mpl implementation (akin to [plotnine](https://plotnine.org/)) + +Tom: +- Scipy + +### Cairo fonts +- cairo can't support new features b/c of current API making it so we can't use glyph indices + - limitations of toy API + - choices: + - give up on cairo for fonts and use freetypes instead + - might cause problems with pdfs (selecting text?) + - mplcairo uses full API instead of toy API, so use this instead + - would require an extra install (unless we want to inline this) + - sticking point was c++ version incompatability which might be resolved + - @qulogic long term this is probably the best path forward +- proposal: + - deprecate cairo backend + - special case 'mplcairo' + - make it an extras `matplotlib[mplcairo]` + - next step: @qulogic will open an issue w/ proposal to deprecate Cairo + +- is cairo worth maintaining? + +tangent: seperate renderer from toolkit + +--- + +# July 30, 2026 + +_attending_: @iccir, @tacaswell, @QuLogic, @story645, @ksunden, @scottshambaugh, @timhoffm + + +## Agenda +- [x] RSE updates +- [x] [name=iccir] macOS backend questions +- [x] GSOC updates (+ Layering API) +- [ ] [name=hannah][32113: 2 reviews for large doc prs](https://github.com/matplotlib/matplotlib/pull/32113) +- [ ] [name=hannah][29124: plotting section for user guide](https://github.com/matplotlib/matplotlib/pull/29124) + +## Notes +### RSE updates + - Elliott + - cartopy work + - close to getting an update out + - some decisons on projects still need to be made + - GSOC work + - looking at WASM tests again + - know what, but not why + - Kyle + - paperwork + - GSOC moving forward + - Tom + - tiny bit of review + - un-pushed work on stub-files for backends + +### macOS backend +- have a rework branch that addresses every open issue +- do we want to do a dual release with old vs new + - merge new + keep old 1/ two cycle deprecation + - slowly patch in changes across the release cycle +- nothing changes from the user perspective + - mostly improvements that are better integrations w/ mac + - also some blitting improvements + - no changes to code +- scale of change: + - splits out macos backend into obj-c pairs to conform to objc standards, might lose git history + - figuremanager now a window controller, figurecanvas is now view + - cleanup event loop + - will go in as chunked/staged/stacked PRs +- risk/failure modes + - limited use of matplotlib, might not catch less common use cases + - worst case is some fancy event/interaction doesn't work + - remediation is downgrade and wait on bugfix release +- would maybe need a .mm (objc c++) glue file +consensus: +- introduce new backend as macOS, keep old as mac/osx + - might delete before release, then wire up aliasing/renaming + - if we rename the backend, then rename rcparams to new name and keep old name as backends + +### GSOC: +- individual rendering layers, maybe individual renderers down the line + - marimo does JS rendering on top of mpl rendering + - zoom boxes is client side rendering + - better seperation between GUIs and renderer +- render to seperate buffers & then composite buffers + - layer attribute that ids layer + - filter by layer for draw + - maybe: ```layer = fig.add_to_layer(id, obj(ax))``` + +Managing the draws: +- before: figure.draw just draws children +- after: build draw tree as groupby layer + - has a problem w/ artist that draws children in child method + - possibly some double draws/maybe impart constraints + - some explicit subartists some containers of artists + - parent child currently manages removal & maybe knowing about each other for transform purposes +- alt: maybe as a decorator on draw that filters on layer + - or as a meta class that modifies draw + +todo: +- patch `fig.add_artist(obj, layer=)` + - maybe down the line `ax.add_artist` or threading threw or whatever + - use this to bypass insertion into draw tree + - down the line +- move layering management to figure diff --git a/meeting_notes/2026/2026_08_aug.md b/meeting_notes/2026/2026_08_aug.md new file mode 100644 index 0000000..4010584 --- /dev/null +++ b/meeting_notes/2026/2026_08_aug.md @@ -0,0 +1,132 @@ +# Matplotlib Weekly Meeting: August 2026 + +###### tags: `2026 dev call` + +--- + +# August 6, 2026 + +_attending_: @iccir, @efiring, @ayshih, @scottshambaugh, @QuLogic, @ksunden, @tacaswell, @story645 + + +## Agenda +- [x] RSE updates +- [x] [name=hannah][32113: 2 reviews for large doc prs](https://github.com/matplotlib/matplotlib/pull/32113) +- [] [name=hannah][29124: plotting section for user guide](https://github.com/matplotlib/matplotlib/pull/29124) +- [x] [name=ayshih][32107: alpha handling when flattening images](https://github.com/matplotlib/matplotlib/pull/32107) + + +## Notes +### RSE updates + - Kyle + - planning around data prototype + - how we get things merged + - PR review + - Elliott + - short week due to holiday + - looked at WASM, confused again + - reviews + - merged core text + - reviewing blend modes + - cartopy + - waiting on others + - Tom + - emails out looking for grant collaborators, starting to hear back + +### 2 reviews for large docs +- fuzzy definition of large docs but will clarify for now +- side discussion on loosening review requirements for code + - @tacaswell strongly opposed + +### alpha +- simplified code and fixed bug + +### blending modes / groups +- Elliott still reviewing + +### Mac work +- progressing +- @iccir looked at pybind11 and nanobind and decided that direct binding is still best + - pybind11 increases binary size +- @iccir will make an issue/project/something listing all the moving pieces + +### toolbar icon +- https://github.com/matplotlib/matplotlib/pull/32095 +- needs second review + +### oxipng +- https://github.com/matplotlib/matplotlib/pull/29925 +- waiting on broken github actions + rebase, need to verify new precommit works + +### GSOC update + - discussed simplified scheme for being explicit about layers rather than implicitly extract from the artist tree as discussed on call last week + +--- + +# August 13, 2026 + +_attending_: @iccir, @story645, @ksunden, @QuLogic + + +## Agenda +- [x] RSE updates + +## Notes + +### Data containers +Data container phase: + +uniform interface for artists that go in axes + - defined by the `describe` and `query` methods + +- subphase 1: core (artists will use this functionality) + - reviewer documentation: + - how to review core and future artists + - classes ported over from datacontainers/vendored internally: + - protocol class for containers + - definition of description + - `arraycontainer(arrayLike)` + - `funccontainer(callable: arrayLike->arrayLike)` + - minimum version of graph data->viz pipeline + - e.g. transfrom edge + - theoretically parameters are graph edges are encoding functions + - e.g. color + - single artist: Line2d w/ Line2D data container + - goal is `query` will take over a lot of what `set_data` is currently used for + - helper functions + - graph building for `data -> axes -> display` transforms + - error handling + +- subphase 2: extending to more artists types + - e.g. image, patch, etc + - 3d will likely happen in parallel + - might be split up by families: AxesImages, Patches, Text, etc. + - then collections + +- note: delay implementing changes on artist 'til more artists need it + - private helper functions when shared by few artists + - base stuff til all artists are implemented + +- subphase 3: extending functionality: + - more visual parameters: eg color, shape, etc + - initial is name data fields w/ parameter name + - needs discussion: how data field->visual parameter associations happen in API + - semantic containers: e.g. stats like hist + - downstream containers: e.g. sympy, pandas, + - maybe reconcile mpl-data-containers w/ built ins + +visual pipeline phase: +- worry about after DC is in + +--- + +# August 20, 2026 + +_attending_: + + +## Agenda + +- [ ] [name=iccir] - Requesting a brief history of "ToolManager" and "NavigationToolbar2" if we have time. + +## Notes diff --git a/tools/diff_meeting_notes.py b/tools/diff_meeting_notes.py new file mode 100644 index 0000000..0965c99 --- /dev/null +++ b/tools/diff_meeting_notes.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 + +import argparse +import difflib +import subprocess +import sys +from pathlib import Path + + +def git(*args): + result = subprocess.run( + ["git", *args], + check=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + return result.stdout + + +def get_lines(commit: str, base_path: str): + lines = [] + + if commit == "working": + for path in base_path.rglob("*"): + if path.is_file() and not path.stem.startswith("."): + with open(path, "r") as f: + lines.extend(f.readlines()) + else: + output = git("ls-tree", "-r", "--name-only", commit, "--", str(base_path)) + for path in (output.splitlines() if output else [ ]): + content = git("show", f"{commit}:{path}") + lines.extend(content.splitlines(keepends=True)) + + return sorted(lines) + + +def get_lenient_lines(in_lines: list[str]) -> list[str]: + out_lines = [] + + for line in sorted([s.strip() for s in in_lines]): + if not out_lines or line != out_lines[-1]: + out_lines.append(line) + + return out_lines + + +def main(): + parser = argparse.ArgumentParser( + description="Diff contents of directory between two commits." + ) + parser.add_argument("--dir", type=Path, default="meeting_notes", help="Directory to diff") + parser.add_argument("--lenient", action="store_true", help="Unique sorted lines") + parser.add_argument("commit1", help="Hash of first commit") + parser.add_argument("commit2", help="Hash of second commit") + args = parser.parse_args() + + try: + lines1 = get_lines(args.commit1, args.dir) + lines2 = get_lines(args.commit2, args.dir) + except subprocess.CalledProcessError as e: + print(e.stderr, file=sys.stderr, end="") + sys.exit(e.returncode) + + if args.lenient: + lines1 = get_lenient_lines(lines1) + lines2 = get_lenient_lines(lines2) + else: + lines1 = sorted(lines1) + lines2 = sorted(lines2) + + diff = difflib.unified_diff(lines1, lines2, n = 0) + + for line in diff: + if ( + line.startswith("+++") or + line.startswith("---") or + line.startswith("@@") + ): + continue + if args.lenient: + print(line) + else: + sys.stdout.write(line) + +if __name__ == "__main__": + main() diff --git a/tools/import_meeting_notes.py b/tools/import_meeting_notes.py new file mode 100644 index 0000000..33f5490 --- /dev/null +++ b/tools/import_meeting_notes.py @@ -0,0 +1,206 @@ +""" +Tool to import meeting notes into per-month .md files +""" + +# To use: +# 1) Open https://hackmd.io/@matplotlib/SyePADPcxx +# 2) Save the current meeting notes as a .md file (/path/to/import.md) +# 3) python tools/import_meeting_notes.py --into meeting_notes/2026 /path/to/import.md + +import argparse +import re +from dataclasses import dataclass +from pathlib import Path +from datetime import datetime, date + + +@dataclass +class Meeting: + date: date + lines: list[str] + + def trimmed_contents(self) -> str: + """Removes leading/trailing lines which contain""" + """only whitespace or horizontal rule characters.""" + lines = self.lines + pattern = re.compile(r"^[\s\-_\*]*$") + + start = 0 + while start < len(lines) and pattern.match(lines[start]): + start += 1 + + end = len(lines) + while end > start and pattern.match(lines[end - 1]): + end -= 1 + + return "\n".join(lines[start:end]) + + +class InputFile: + def __init__(self, path: Path, year: int): + self.path = path + self.year = year + self.issues = [] + self.meetings_dict = {} + + with open(self.path, "r", encoding="utf-8") as f: + contents = f.read() + + filename = self.path.stem + contents = re.sub(r"", "", contents, flags=re.DOTALL) + + meeting = None + HEADING_RE = re.compile(r"^#\s+(.+?)\s*$") + FIRST_HEADING_RE = re.compile(r"^#\s+Matplotlib Weekly Meeting", re.IGNORECASE) + + for i, line in enumerate(contents.splitlines()): + match = HEADING_RE.match(line) + if match: + date = parse_date(match.group(1), self.year) + if date: + meeting = Meeting(date, []) + self.meetings_dict[date] = meeting + elif not FIRST_HEADING_RE.match(line): + self.issues.append( + f"{filename}:{i + 1}: Found dateless heading: '{line}'" + ) + elif meeting is not None: + meeting.lines.append(line) + + +def parse_date(date_str: str, default_year: int) -> date: + """Parses a date string in various formats into a date""" + text = date_str.strip() + text = re.sub(r"(\d+)(st|nd|rd|th)\b", r"\1", text) + text = re.sub(r"\bSept\b", "Sep", text) + text = re.sub(r",\s+", " ", text) + + for value in (text, f"{text} {default_year}"): + for fmt in [ + "%B %d %Y", # August 5 2020 + "%b %d %Y", # Aug 5 2020 + "%d %B %Y", # 5 August 2020 + "%d %b %Y", # 5 Aug 2020 + ]: + try: + return datetime.strptime(value, fmt) + except ValueError: + pass + + return None + + +def get_year_from_path(path: Path) -> int | None: + year = None + for part in path.parts: + if part.isdigit() and len(part) == 4: + year = int(part) + return year + + +def process_file( + path: Path, + year: int, + meetings_dict: dict[date, Meeting], + issues: list[str] +) -> None: + input_file = InputFile(path, year) + meetings_dict.update(input_file.meetings_dict) + issues.extend(input_file.issues) + + +def get_meetings_by_month( + meetings_dict: dict[date, Meeting], + month: int +) -> None: + meetings = meetings_dict.values() + return sorted( + (meeting for meeting in meetings if meeting.date.month == month), + key=lambda meeting: meeting.date, + ) + + +def main(): + parser = argparse.ArgumentParser(description="Process meeting notes") + parser.add_argument("--into", type=Path, required=True, + help="Directory containing archived .md files") + parser.add_argument("files", type=Path, nargs="*", help="Files to import") + + args = parser.parse_args() + + issues = [] + into_meetings_dict = {} + import_meetings_dict = {} + year = get_year_from_path(args.into) + + if not args.into.is_dir(): + raise ValueError(f"Path is not a directory: {args.into}") + + if year is None: + raise ValueError(f"No year found in path: {args.into}") + + for path in args.into.glob("*.md"): + process_file(path, year, into_meetings_dict, issues) + + for path in args.files: + if path.is_dir(): + for md_path in path.glob("*.md"): + process_file(md_path, year, import_meetings_dict, issues) + elif path.exists(): + if path.suffix == ".md": + process_file(path, year, import_meetings_dict, issues) + else: + raise ValueError(f"Could not read path: {path}") + + # Output meeting notes by month + meetings_dict = {} + meetings_dict.update(into_meetings_dict) + meetings_dict.update(import_meetings_dict) + + if ( + len(get_meetings_by_month(meetings_dict, 1)) > 0 and + len(get_meetings_by_month(meetings_dict, 12)) > 0 + ): + issues.append("Import file(s) contain both January and December meetings.") + + for month in range(1, 13): + meetings = get_meetings_by_month(meetings_dict, month) + + if len(meetings) == 0: + continue + + month_date = date(year, month, 1) + file_name = month_date.strftime("%Y_%m_%b.md").lower() + + output = [ + f"# Matplotlib Weekly Meeting: {month_date.strftime('%B %Y')}", + "", + f"###### tags: `{year} dev call`", + "" + ] + + for meeting in meetings: + output.extend(( + "---", + "", + f"# {meeting.date.strftime('%B')} {meeting.date.day}, {year}", + "", + meeting.trimmed_contents(), + "" + )) + + meetings_noun = "meeting" if len(meetings) == 1 else "meetings" + print(f"Wrote {len(meetings)} {meetings_noun} to '{args.into / file_name}'") + with open(args.into / file_name, "w", encoding="utf-8") as f: + f.write("\n".join(output)) + + if len(issues): + print("") + print("Issues:") + print("=" * 80) + for issue in issues: + print(issue) + + +if __name__ == "__main__": + main()