# May 2020 ###### tags: `2020 dev call` 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 25 ## Agenda * Merge rules for longer doc PRs * is it better more complicated for longer prose, cause can introduce confusion too * https://github.com/matplotlib/matplotlib/pull/16908 * FuncNorm: * #7631 & #7294 & #16391 * https://github.com/matplotlib/matplotlib/issues/16263 * https://github.com/matplotlib/matplotlib/issues/16463 * https://github.com/matplotlib/matplotlib/issues/17172 ## Notes ### Longer doc PR - do we want to make major new content docs 2 reviewer rather than 1? - Con: Long docs PR are hard to get reviewed - Pro: new content can do more harm than good - Con: 2 reviewer is to avoid locking us into poor APIs that we can't back out of - How can we make sure we get more eyes on things? - Resolution: go with judgement, get more attention on bigger PRs ### [16908: 2d support to quadmesh set_array](https://github.com/matplotlib/matplotlib/pull/16908) Merged! ### [16363: NEP29 (time-limited support) to IPython](https://github.com/matplotlib/matplotlib/issues/16263) * approx ~4 functions to set up event loop detection in ipython using stable APIS * don't need to warn that it doesn't work on old versions * but yell if it breaks and tell 'em to upgrade * push to 3.4 'cause status quo is fine ### [figsize & axes3D](https://github.com/matplotlib/matplotlib/issues/16463) * * TCaswell is going to look at these this afternoon ### GSOD * applications start June 9th end July 9th * https://developers.google.com/season-of-docs/docs/timeline * please look at: * https://discourse.matplotlib.org/tag/gsod ### [16603:axes collage name](https://github.com/matplotlib/matplotlib/pull/16603) * `subplots_from_dict` * `subplots_from_mosaic` * `subplots_from_tiled` * `subplot_mosaic` * `subplot_tiles` * `subplot_gridridrid` * grid,layout, are already part of library * later extension maybe is passing in projections... # May 18 ## Agenda * Season of Docs * https://discourse.matplotlib.org/tag/gsod * do we want a style guide * https://github.com/numpy/numpy/issues/16262 * Issues * https://github.com/matplotlib/matplotlib/issues/15474 This is a confirmed memory leak, which I think should therefore be high priority for getting attention. * PRs * `subplots(n, m, (j, k))` check (https://github.com/matplotlib/matplotlib/pull/17350) * update testing helpers (https://github.com/matplotlib/matplotlib/pull/16990) * [MEP30? (if there's time)](https://github.com/matplotlib/matplotlib/pull/17446) ## Notes ### [15474: memory leak]( https://github.com/matplotlib/matplotlib/issues/15474) * `axes.set_yscale('log')` on `AxesImage` objects * may be related to [9141: Qt5Agg leak](https://github.com/matplotlib/matplotlib/issues/9141) * theory is leaking in agg transform resample code in `AxesImage` code path * also leaking with Cairo which uses agg resample code ### [17350: `subplots(n, m, (j, k))` check](https://github.com/matplotlib/matplotlib/pull/17350) * @Qulogic blocking on `ax0 is ax1` ```python ax0 = fig.add_subplot(111) ax1 = fig.add_subplot(1,1,1) ax2 = fig.add_subplot(111) ax3 = fig.add_subplot(1,1,1) ``` * currently in process of deprecating `ax1` is a pointer to `ax0` * 9024 discusses deprecation * this PR creates new ax1 on top of ax0 as there are now two overlapping axes in position 1 * Deprecation warning that ``(111)`` is no longer equal to `(1,1,1)`` * `ax2` a pointer to `ax0` * `ax3` a pointer to `ax1` * `ax0` not a pointer to `(ax1,ax3)` * Can force everything is a pointer to everything (deprecated) by putting checking logic upfront ### [16990: update testing helpers](https://github.com/matplotlib/matplotlib/pull/16990) * concern was freetype but is called inside pytest configure inside conftest ### MEP 30 * user level canonical references for matplotlib primatives + parameters: * linestyle, collections, etc * little bit of narrative explaination + API reference + examples * proposal to make class whose docstring has this documentation - maybe ### Are MEPs deprecated? :shrugs: ### GSOD * https://discourse.matplotlib.org/tag/gsod * let Tom/Hannah know if you want to mentor * style guide? * no formal one, but should document informal ones * informal one exists under contributing->developer docs * pep + numpydoc + things we specified * add more there * lots of stuff there is PEP recommended * capitalization should be nailed down there * double spacing after dots (PEP8) # May 11 ## Agenda * PRs * FuncFormatter modification: https://github.com/matplotlib/matplotlib/pull/17288 perhaps not urgent, but controversial; clarification via discussion might be helpful. * https://github.com/matplotlib/matplotlib/pull/17266 has 2 approvals, ready to merge * https://github.com/matplotlib/matplotlib/pull/15127 has 3 approvals; is it ready, or is there some hesitation in view of other proposals regarding colormap copying and mutation? * https://github.com/matplotlib/matplotlib/pull/15104 needs reviews, but seems to fix a bug, and replaces a bunch of C++ with more compact Python * https://github.com/matplotlib/matplotlib/pull/15029 matplotlibrc as source of defaults; 2 approvals, but there was some controversy--maybe resolved now? * https://github.com/matplotlib/matplotlib/pull/14471 very small change, 2 approvals, but seems to have run into trouble; Thomas, can this be resolved, or should it be closed, or punted to 3.4? * Violinplot and KDEplot: structure stats package? ## Notes ### GSOD * We got season of docs ### 17288: Funcformat * https://github.com/matplotlib/matplotlib/pull/17288 `FuncFormatter` * move @tacaswell's try catch to setter ### 17266: ticklabels in sync with ticks * non-deterministic tests in the code * lines of codes in the tests not running * code coverage needs to get sorted out ### 15127: register_cmap * needs rebase and working tests * move to 3.4 ### 15104: multiprocessing on mac # May 4 ## Agenda * Social Media List: https://hackmd.io/@matplotlib/HkkVGQTtU * Please do not feed the trolls / help vampires * GSOD: https://developers.google.com/season-of-docs - due at 4:00PM * last year: overview (maybe usage guide as overview with more links?) * add: light doc restructuring - more detailed TOC/Documentation w/ reprioritization * https://docs.google.com/forms/d/e/1FAIpQLSfMZ3yCf24PFUbvpSOkVy4sZUJFY5oS7HbGyXTNXzFg2btp4Q/viewform * GSOC * Specialised Formatters: https://github.com/matplotlib/matplotlib/pull/7482 * savefig background color: https://github.com/matplotlib/matplotlib/pull/15111 * 3.3 work * PRs, picking some from the 3.3 milestone: * 13656 (https://github.com/matplotlib/matplotlib/pull/13656) * GridSpec.subplots() (https://github.com/matplotlib/matplotlib/pull/14421) * Sync ticklabels with ticks (https://github.com/matplotlib/matplotlib/pull/17266) * WX key press handling (https://github.com/matplotlib/matplotlib/pull/15177) * Do we have any other WX experts? * 15127: 3 approvals, just needs rebase (TAC) ## Notes ### social - add things to list to be tweeted - add your name to the list if you can do non-english ### trolls / help vampires - disengage quickly, state it's a COC violation, and lock the issue ### GSOC - we accepted @sidharth - request that we do the blog posts for gsoc through matplotblog - will cross-post to matplotblog and NF blog - currently in community engagement period - https://developers.google.com/open-source/gsoc/timeline - June 1st start day ### GSOD - applied - https://discourse.matplotlib.org/t/google-season-of-docs-2020/21146 - looking to get 1 technical writer ### 7482: specialized formatters - https://github.com/matplotlib/matplotlib/pull/7482/ - orthogonal to EngFormatter: https://github.com/matplotlib/matplotlib/pull/17315 ### 15111: savefig background color - https://github.com/matplotlib/matplotlib/pull/15111 (merged) ### 3.3 #### 13656: hist return bar container instead of silent_list - changes the return type to list of bar, but already unstable - collections participate in draw tree, containers don't - exchanging list for fancy tuple, latter is what's actually stored on the axes - can do everything but modification #### 14421: gridspec.subplots() - tim wants layout classes bound to figures - need to import gridspec to build unbound gridspec - bound is `fig.add_gridspec()` - long term should find a way to pull them apart - maybe add `rebind` - pull out template/data structure out - create `GridSpecLayout` - example usecase for the templating - gs.GridLayout.copy() - merged #### 17266: set_ticklabels - set_ticklabels can get out of sync with actual ticks on zoom/subsampling 'cause used fixedformatter` - calling set_ticklabels now uses FuncFormatter sets up `{locs:labels}` - `pos` arg is the index of the tick value in the lists of ticks - `x` is the data value at that tick - locator params should probably be after set ticklabels in tests - - bug shows up when someone calls ax.locator_params after setting ticks - fixed locator isn't actually fixed locator, it's set you're allowed to use & then it downsamples - set_ticks/set_tick labels are a matched pair, but then can't change ticks with locator params - in set_ticklabels raise an error if len(ticks) != len(ticklabels)