# November 2020
###### tags: `2020 dev call`
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
## Agenda
### Old Business
- [x] Code of Conduct
### New Business
- [x] CZI
- [ ] [Travis CI stopped building PRs since 4 days ago](https://travis-ci.com/github/matplotlib/matplotlib)
- We can request new credits (currently used ~12000 out of 10000), but not sure when that started counting to estimate how much we'd need
- Other projects facing this:
- NumPy: https://github.com/numpy/numpy/issues/17824
- SciPy: https://github.com/scipy/scipy/issues/13109
- MDAnalysis: https://github.com/MDAnalysis/mdanalysis/issues/3036
- Iris is maybe moving to Cirrus CI: https://github.com/SciTools/iris/pull/3928
- We are currently duplicating on Azure Pipelines, but it's missing some things so is causing a coverage drop. I also don't like its poor SSO implementation.
- GitHub Actions are currently lightly used, and could be switched to
- Travis is the only(?) one with arm, ppc and s390x, but we don't build on these at the moment (though we just enabled arm on matplotlib-wheels); NumPy may be using shippable for arm
### PRs
- [ ] https://github.com/matplotlib/matplotlib/pull/18978
- Remove deprecated axes kwargs collision detection
## Notes
### CoC
- announced and no comments
- important to have some process that is transparent, but allows privacy.
- @story645 will do an inline edit... - finished
### CZI was renewd
- same levels
- need to announce on mailing lists...
- similar deliverables
- https://github.com/matplotlib/CZI_2020-07_mpl
### Travis
- not working because they want $
- need an update
- Astropy didn't get enough credits to last more than a week
- Github actions: lint, wheel builds
- Azure: Mac, linux, and Windows
- maybe hard to get an xserve spooled up?
- Travis: old mac build (10.12, xcode 9, versus 10.14 on Azure)
- maybe macmini on macstadium?
- currently running backend tests on TRavis
- old xcode on new systems?
- Github actions:
- good parallelizable
- can't have a maybe-pass job
- Can put in commit message `[ci skip]`
- https://docs.travis-ci.com/user/customizing-the-build/#skipping-a-build
- Wating to hear
- will start migrating if this is a problem...
- MPL docker so Qt doesn't need to be installed every build
- freetype, qhull, as well?
- https://github.com/matplotlib/mpl-docker
- Prs not hitting GUI code
### Remove deprecated axes kwargs collision detection
```
In [5]: plt.subplot(2, 1, 1)
Out[5]: <AxesSubplot:>
In [6]: plt.subplot(2, 1, 2)
Out[6]: <AxesSubplot:>
In [7]: plt.subplot(2, 1, 1)
<ipython-input-7-7ce69061fa46>:1: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
plt.subplot(2, 1, 1)
Out[7]: <AxesSubplot:>
```
https://github.com/matplotlib/matplotlib/issues/12513
- need to somehow track kwargs when creating `subplot`
- possible proposal:
- plt.subplot(2,1,1) the second time warns if passed with a kwarg?
- should we allow kwarg matched?
- current PR:
- removes from add_subplot
- a new PR would need to add the pyplot functionailty back
-
----------------------------------------------------------------
# 17 Nov
## Agenda
### Old Business
- [x] post CoC @story645
### New Business
- [x] 3.3.3 released
- [x] py 3.9?
- [x] MacOS Big Sur issues
- [x] Sprint report?
### PRs
- [x] Colorbar again (clip contours?)
- https://github.com/matplotlib/matplotlib/issues/18900
### PRs need review
- [ ] https://github.com/matplotlib/matplotlib/pull/18910
- [ ] https://github.com/matplotlib/matplotlib/pull/18869
## Notes
### CoC
- posted on twitter, discourse, mpl-users, mpl-dev
- deadline is Nov 24, 3:00EST
### 3.3.3
- built and published
- issue with py39 on hombrew built python only
- https://github.com/matplotlib/matplotlib/issues/18678
### big sur
- https://github.com/matplotlib/matplotlib/issues/18954
- looks like this is a pyqt5 issue (as there is an env work around and some reports that 5.13.0 work) we should wait for upstream to sort this out
### sprint report
- small, a few PRs
### colorbar extends
- if not clipping in either case is 1 line fix, lets do that
### PR review
- https://github.com/matplotlib/matplotlib/issues/18910
- removes vestigial code, removed without deprecation YOLO
- https://github.com/matplotlib/matplotlib/pull/18869
- settled on a 5 tubple of (major, minor, patch, release_type, number) to match cpython
- a, b, c, final, post as the allowed strings
- https://github.com/matplotlib/matplotlib/issues/7962
- issues with our version number is not playing nice with pip (due to where versionneer injects dev/post values)
- consider moving to setuptools-scm
- use same plugins as cartopy to get versions in archives
-------------------------------------------------------
# 10 Nov
## Agenda
### Old Business
- [x] GSoC ideas page @jklymak https://hackmd.io/bcLJpTPdSCuKTJd2OSeYeQ
- [x] label clean up @timhoffm
- [ ] post CoC @story645
### New business
- [x] do we want to fully abandon, try to negotiate, or fully abandon travis?
- https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
- Caswell has started the process of requesting an allotment from travis
- [ ] 3.9 wheel progress?
- 3.3.3?
### PRs and Issues
- (TH) Spines are not pickable
- https://github.com/matplotlib/matplotlib/issues/18879
- Caused by inconsistency of `Path.contains_point()` https://github.com/matplotlib/matplotlib/issues/18879#issuecomment-724323803
- (TH) 3D: `Path3DCollection.do_3d_projection()` and `Collection.update_scalarmappable()` both write facecolors, but different ones
- https://github.com/matplotlib/matplotlib/issues/18885
- Who knows about the update mechanism and can tell how to fix this?
- (JMK) Colorbar refactor
- https://github.com/matplotlib/matplotlib/issues/18900
- discussion: substantial tests would change.
- some just because of `_internal.classic_mode` not being supported.
- Some because difference in how wide colorbars were in old code with extends.
## Notes:
### Travis
- getting stricter
- @tacaswell asked to keep allotment
- slightly different dependency matrices compared to azure; could move there.
### labels
- unified colors, added pre-fixes
- please use agressively!
### GSOC: document up
### CoC: announce!
- discourse, mailing list, twitter
- 1 week lag
### 3.3.3
- 3.9 wheels all that remains
- @tacaswell will look at https://github.com/matplotlib/matplotlib/issues/18885
### Path contains point
https://github.com/matplotlib/matplotlib/issues/18879
- two vertices short circuits to no
- can change to at least one point
- Needs to use proper Line2D `picker`
- onPath?
- fix Spines picking
- edge degeneracy... floating point issue.
- needs to document in contains function.
### col
# 3 Nov
## Agenda
### Old business
- [ ] Code of Conduct finalization
- email mailing list requesting for comment?
- also final comment for internet?
### New business
- [x] pydata global sprint
- Sunday Nov 15 at 4pm (UTC)
- [x] pydata global diversity scholarship meet and greet / panel
- The panel will be Wednesday, Nov. 11, 5-6 PM EST.
- [x] gsoc
- 175 hr/10 WK (or shorter) , half stipend, 2 evals
- https://opensource.googleblog.com/2020/10/google-summer-of-code-2021-is-bringing.html?m=1
### PRs and Issues
- [x] Encapsulating styles in classes:
- https://github.com/matplotlib/matplotlib/pull/18544
- Is get/set type symmetry necessary?
- Currently we *take* \[historical inputs\], *store* the `WhateverStyle` object, *return* \[backcompat "cleaned" version of historical input\]
- for example, `LineStyle` accepts short strings (e.g. ":"), long strings (e.g. "dashed"), and on-off seq (e.g. `(0, (2, 1, 3))`). We store a `LineStyle` object but return whatever the user originally passed us.
- Alternatively, we could *return* `WhateverStyle`.
- [x] return bytes if filename to savefig is None
- https://github.com/matplotlib/matplotlib/pull/18768
- [ ] RGBA interpolation option
- https://github.com/matplotlib/matplotlib/pull/18782
- [x] Improve GitHub labels
- https://github.com/matplotlib/matplotlib/issues/18855
- [x] Deprecation for "classproperty"'s makes sphinx yell a lot.
- https://github.com/matplotlib/matplotlib/pull/18817
## Notes
### Code of Conduct
- Adopting existing CoC
- Will announce on twitter + mailing list + discourse
### Savefig (bytes object)
- https://github.com/matplotlib/matplotlib/pull/18768
- *None*? `bytes` versus filename
- At all?
- @efiring: "magic" for user convenience tradeoff
- @dopplershift: useful for animations (saves an import)
- `bytes`:
- passing a type is not a usual grammar
- Add something to `cbook`?
- yet another one-liner.
### GSoC
- 1/2 projects, scope
- Jan/Feb if we want to participate
- Need
- project ideas
- mentors
- @jklymak: Add a note page
### PyData Global
- diversity panel (maybe 2): let @tacaswell know
- @tacaswell will be there. (hannah & Bruno too)
- sprint 15 Nov 16:00 UTC
- clean up hackathon and good first-issue labels
### Encapsulating Styles as styles
- need to retain set/get symmetry for now
- need to be sure what to do with `None`
- store original in the Style classes
### Github labels
- https://github.com/matplotlib/matplotlib/issues/18855
- state: prefix, and coloring based on who needs to do action
- @timhoff will go ahead and do this...
### backup
https://gist.github.com/story645/646b8703f636d27d8ebeec7c7c8bed0e