---
# System prepended metadata

title: May 2020
tags: [2020 dev call]

---

# 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)