Skip to content

Commit schedule for matplotlib-inline #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
kishkash555 opened this issue Jun 8, 2022 · 20 comments
Closed

Commit schedule for matplotlib-inline #16

kishkash555 opened this issue Jun 8, 2022 · 20 comments

Comments

@kishkash555
Copy link

The last release of matplotlib-inline is 0.1.3 from 9 months ago (Sept. 2021).
There have been several code changes since.
Specifically I am interested in commit a433a89 from May 12/13th which includes dropping some Matplotlib rcParams overrides that were specific to ipython notebooks.
I would like to know if any schedule is currently in place for this commit to be published.
Thanks.

@fperez
Copy link
Member

fperez commented Aug 12, 2022

Yup, thanks for raising this issue @kishkash555!

@agoose77, @minrk & team - any objection to making a release soon? I'm going to be teaching with this code in a few weeks and would rather not deal with that annoying rcParams issue any more (I have a bunch of HW assignments with the hacky fix in there).

I haven't made a release of any of our projects in ages, but I'm happy to dust off my keys for this one :) Any objections?

@fperez
Copy link
Member

fperez commented Aug 15, 2022

Ping @martinRenou @Carreau @SylvainCorlay - any of you have bandwidth to cut a release? If not LMK and I can dust things off to do it , though I don't think I have the auth on PyPI for this particular package.

I also see the conda-forge feedstock is @martinRenou's; I'm going to guess that doesn't need any updates, but I'm also willing to help there if needed.

@martinRenou
Copy link
Collaborator

Thanks for pinging me @fperez, I added you as an owner on Pypi :)

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Thx @martinRenou!

I've accepted the invite and updated my PyPI account with 2FA, now that I'm using it again...

Anything else I should keep in mind before cutting a release? I haven't released in PyPI in ages (probably an old IPython 0.11 series or so)...

It seems this project simply uploads a wheel and a source package...

I don't see a pyproject.toml file, but for now I'm happy leaving things as-is with the setup.cfg we have...

I ran a quick test and I can build the wheel and source dist just fine.

Anything else people can think of before a release? If not LMK and I'll update the version #...

On that topic: I plan on just calling it 0.1.4, as the changes are pretty minimal. But if folks prefer we can call it 0.2.0 too.

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Also @martinRenou one question: once I make the PyPI release, does the conda-forge build get triggered automatically, or do I need to do anything else on that end?

@martinRenou
Copy link
Collaborator

I usually just do:

python -m build

Then I check that the wheel and source dist are correct under dist/. Then I do:

twine upload dist/*

does the conda-forge build get triggered automatically, or do I need to do anything else on that end?

I am not sure how conda-forge gets triggered honestly. But pushing a tag on the repo and pushing the Pypi release seems to trigger it.

You can also push a PR manually to the feedstock if you want, adding yourself as a maintainer https://github.com/conda-forge/matplotlib-inline-feedstock

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Ok, thx @martinRenou!

Given there's no objections so far, folks like @juanitorduz need this, and I have very limited time, I'm going to do it now. Tagging 0.1.4 and pushing out, 🤞 :)

@juanitorduz
Copy link

Thank you @fperez for pushing this. Much appreciated! It is definitively a big plus for users like me but it is definitively not urgent so no rush / stress 😅 !

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Wohoo!!.

Thx @martinRenou & @juanitorduz! It was fun to dust off my "release manager" hat, even if for a tiny bit :) I had a badly outdated pypirc file with the old .io urls so it took me a bit of head-scratching.

Glad to have this out - I hope the conda build happens automaticall, as I pushed a 0.1.4 tag too into this repo. If it hasn't happened in a day or two we can check again.

@fperez fperez closed this as completed Aug 16, 2022
@juanitorduz
Copy link

juanitorduz commented Aug 16, 2022

Thank you !

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Mmh - hold off. I might have messed up!

@fperez
Copy link
Member

fperez commented Aug 16, 2022

🤦

@fperez
Copy link
Member

fperez commented Aug 16, 2022

I checked the build, etc, but I mistakenly was working off an outdated fork, so I think I missed a few commits. Let me check before you install.

@fperez
Copy link
Member

fperez commented Aug 16, 2022

Ok, now for real!, also on PyPI.

I had to yank 0.1.4 from PyPI and just made a 0.1.5.

Oh well, classic mix-up from not doing this all the time: I was working off my own fork which I hadn't updated from upstream in ages, and ended up making 0.1.4 out of a weird mix of old upstream + local fixes.

I tell my students to always watch their remotes when doing this kind of thing, yet here we are :)

In any case, now it's actually done, and I can "get back to work" :)

@juanitorduz
Copy link

Thanks @fperez ! I can confirm that

matplotlib==3.5.3
matplotlib-inline==0.1.5

are working as expected (at least in a couple of tests).

Before "going back to work" get yourself a nice coffee / drink ;)

@martinRenou
Copy link
Collaborator

Thank you!

@sryza
Copy link

sryza commented Aug 17, 2022

After this new release, over at Dagster, we're seeing failures in our tests that do plotting inside notebooks. The error we're seeing is:

[2022-08-17T00:37:46Z] /workdir/examples/docs_snippets/.tox/py37/lib/python3.7/site-packages/matplotlib/pyplot.py in subplots(nrows, ncols, sharex, sharey, squeeze, subplot_kw, gridspec_kw, **fig_kw)
--
  | [2022-08-17T00:37:46Z]    1451
  | [2022-08-17T00:37:46Z]    1452     """
  | [2022-08-17T00:37:46Z] -> 1453     fig = figure(**fig_kw)
  | [2022-08-17T00:37:46Z]    1454     axs = fig.subplots(nrows=nrows, ncols=ncols, sharex=sharex, sharey=sharey,
  | [2022-08-17T00:37:46Z]    1455                        squeeze=squeeze, subplot_kw=subplot_kw,
  | [2022-08-17T00:37:46Z]
  | [2022-08-17T00:37:46Z] /workdir/examples/docs_snippets/.tox/py37/lib/python3.7/site-packages/matplotlib/pyplot.py in figure(num, figsize, dpi, facecolor, edgecolor, frameon, FigureClass, clear, **kwargs)
  | [2022-08-17T00:37:46Z]     808             facecolor=facecolor, edgecolor=edgecolor, frameon=frameon,
  | [2022-08-17T00:37:46Z]     809             FigureClass=FigureClass, **kwargs)
  | [2022-08-17T00:37:46Z] --> 810         fig = manager.canvas.figure
  | [2022-08-17T00:37:46Z]     811         if fig_label:
  | [2022-08-17T00:37:46Z]     812             fig.set_label(fig_label)
  | [2022-08-17T00:37:46Z]
  | [2022-08-17T00:37:46Z] AttributeError: 'NoneType' object has no attribute 'canvas'

@fperez
Copy link
Member

fperez commented Aug 17, 2022

Mmh, sorry to hear that @sryza! Any chance you could provide us with

a) a self-contained small example that produces the problem
b) version info on matplotlib that you're using?

I'm happy to investigate, but so far I can't seem to reproduce your failure with some simple attempts.

@sryza
Copy link

sryza commented Aug 17, 2022

Here's the notebook that's triggering it: https://github.com/dagster-io/dagster/blob/master/examples/docs_snippets/docs_snippets/legacy/data_science/iris-kmeans_2.ipynb.

This is with matplotlib 3.5.3.

We're running it through papermill.

@fperez
Copy link
Member

fperez commented Aug 18, 2022

Great, thanks for the reproducible case @sryza! I've managed to boil it down to this. A notebook with just this in one cell will show the problem:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

# if the next line is uncommented, the bug disappears!
#import matplotlib_inline

g = sns.PairGrid(pd.DataFrame(dict(a=[1])))
plt.figure()

Oh, and as I was looking for the PR culprit, I see that @1kastner in #19 kindly offered what I think is the right fix :)

Let me double check and we'll provide an update quickly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants