Skip to content
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

Matplotlib manylinux wheel - ready to ship? #6473

Closed
matthew-brett opened this issue May 24, 2016 · 34 comments
Closed

Matplotlib manylinux wheel - ready to ship? #6473

matthew-brett opened this issue May 24, 2016 · 34 comments
Milestone

Comments

@matthew-brett
Copy link
Contributor

As y'all may have seen, I've been working on building manylinux wheels for matplotlib

I have an automated build script for matplotlib 1.5.1, that adds a version of PR #6442 to enable tkagg.

Thanks to Thomas' help over at #6469, these wheels are passing all tests on a fresh install into travis-ci containers.

Olivier Grisel has installed and tested on his Ubuntu 14.04 machine. I have also installed and tested on a Debian Jessie VM.

I think these wheels are now ready to deploy on pypi. Do y'all agree? Is there anything else I should build into these wheels (see the build script link above)? Are there any other tests I / we can do?

@tacaswell
Copy link
Member

Given that a 1.5.2 release is imminent and the changes to support many wheels got backported, I would rather only ship the wheels for 1.5.2 onward.

Thank you for your tireless work on this.

@tacaswell
Copy link
Member

My reasoning for not replacing old releases is the complaints numpy got for doing the same thing.

@tacaswell tacaswell added this to the 1.5.2 (Critical bug fix release) milestone May 26, 2016
@matthew-brett
Copy link
Contributor Author

We did get one complaint (numpy/numpy#7570) but that user was doing something rather weird in his setup (strip of the binaries). Somebody doing the same thing will hit the same problem when 1.5.2 comes out (the complaint was from someone pinning to an old numpy version in the hope that would always be source-only). On the other hand, having binaries for old releases on pypi makes it much easier to test against earlier versions. Maybe worth a straw poll on the list?

@tacaswell
Copy link
Member

👍 to a straw poll. I would start with the matplotlib-devel.

@matthew-brett
Copy link
Contributor Author

Well, I don't think we got any interesting information from straw poll, it's quite possible that no-one has tested the wheels. Any more thoughts here? I still have a preference for uploading the wheels, and I'm happy for you to make the call either way.

@AbdealiLoKo
Copy link
Contributor

It seems 1.5.1 was shipped without manylinux wheels: https://pypi.python.org/pypi/matplotlib/1.5.1
Will 1.5.2 be shipped with manylinux wheels ? Or is there anything else that's blocking this that I could help with ?

@jenshnielsen
Copy link
Member

1.5.2 should ship with manylinux wheels. The release of 1.5.1 predates the manylinux wheels

@matthew-brett
Copy link
Contributor Author

I'm still advocating shipping a manylinux wheel for 1.5.1 - but I think someone has to pronounce on whether that should happen. Built wheels for testing at https://nipy.bic.berkeley.edu/manylinux .

@jenshnielsen
Copy link
Member

Wouldn't it require adding #6442 to 1.5.1 then IMHO it can't be released as 1.5.1 but would have to be 1.5.1.1 or some such thing?

@matthew-brett
Copy link
Contributor Author

Right - the wheels I built and uploaded at https://nipy.bic.berkeley.edu/manylinux are patched with a version of #6442. I thought that, given this should give no behavior change, and only affected how matplotlib gets its symbols from the relevant libraries, this might be acceptable as part of the wheel build process, but maybe that's a stretch.

@jenshnielsen
Copy link
Member

The above is just my opinion others may feel differently. Ant to be clear I am very happy to see the wheels get published as soon as possible.

@AbdealiLoKo
Copy link
Contributor

When is 1.5.2 planned to be released?
The 1.5.2 milestone on github shows only 3 issues (including this one) on that milestone. If 1.5.2 is getting released in a few days, then it wouldn't matter if 1.5.1 wheels are uploaded or not ... as most users are going to download 1.5.2 from then on anyway.

@tacaswell
Copy link
Member

I intend to do the 1.5.2 release July 2.

@AbdealiLoKo
Copy link
Contributor

That's 3-4 days away... My 2 cents: Users can stay without wheels for 4 days ^_^

@matthew-brett
Copy link
Contributor Author

Sure. I was proposing the older wheels mainly for CI against older mpl versions. It makes it easier if these are on pypi (no extra URL to use, fast reliable downloads). But, it's only a gentle suggestion.

@dopplershift
Copy link
Contributor

I think CI is probably less important for 1.5.1 vs. 1.5.2 than for say 1.4 vs. 1.5

@matthew-brett
Copy link
Contributor Author

Yes, I am more interested in having 1.4 and 1.3 to test against.

@jtratner
Copy link

not to totally hijack this thread - but is there anything blocking manylinux wheels for 1.4? i.e., if I try to compile them will it work?

@matthew-brett
Copy link
Contributor Author

Yes, 1.4 wheels will work - see the recipe in https://github.com/matthew-brett/manylinux-builds/blob/master/build_matplotlibs.sh .

@tacaswell
Copy link
Member

If we are going to do 1.4 and 1.3 wheels (which people should stop using, we do not fix bugs in those series anymore!) we should probably backport the tk fixes and do a new micro for each of them?

It is very non-standard, but so is pip growing the ability to distribute linux wheels.

@efiring
Copy link
Member

efiring commented Jul 1, 2016

I don't understand--why distribute wheels for old versions? Is it really worth the effort?

@tacaswell
Copy link
Member

My understanding of the use case is like we test against a very old version of numpy, down-stream to us projects what to test against old versions of mpl and the wheels would save them a whole bunch of CI time.

@jtratner
Copy link

jtratner commented Jul 1, 2016

If we are going to do 1.4 and 1.3 wheels (which people should stop using, we do not fix bugs in those series anymore!) we should probably backport the tk fixes and do a new micro for each of them?

I think it's totally fair for you folks NOT to distribute 1.4 and 1.3 wheels and instead encourage people to move to more modern matplotlib versions. I just wanted to confirm that if I made them myself it would be okay.

@asreimer
Copy link

asreimer commented Aug 18, 2016

A bit off topic, but just wondering if/when 1.5.2 will be shipped in pip? I see the release happened on github back on July 3rd. Cheers.

@matthew-brett
Copy link
Contributor Author

matthew-brett commented Aug 18, 2016 via email

@tacaswell
Copy link
Member

I will do the source release tomorrow.

On Wed, Aug 17, 2016, 20:24 Matthew Brett notifications@github.com wrote:

Sorry to keep on - but I'd really like to put a wheel up for a course I'm
doing in 10 days. Any chance that would be possible?


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#6473 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMMhbIjQl3GHDdoKcpnMptUEqxxH9J9ks5qg6YjgaJpZM4IlnTX
.

@matthew-brett
Copy link
Contributor Author

Thank you - that is very helpful.

@matthew-brett
Copy link
Contributor Author

Will this be the source from the current tag v1.5.2 (commit 179de2b)?

@tacaswell
Copy link
Member

Yes

On Wed, Aug 17, 2016 at 9:11 PM Matthew Brett notifications@github.com
wrote:

Will this be the source from the current tag v1.5.2 (commit 179de2b
179de2b
)?


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#6473 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMMhb7gbI3EM8Wr6StNYwrdgEulDo8Oks5qg7EvgaJpZM4IlnTX
.

@matthew-brett
Copy link
Contributor Author

OK to upload wheels today?

@WeatherGod
Copy link
Member

Is it going to be tagged 1.5.2 or 1.5.3?

On Wed, Aug 17, 2016 at 9:53 PM, Matthew Brett notifications@github.com
wrote:

OK to upload wheels today?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#6473 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARy-FLi8qycwNo0QlODlLlBJSGrWc6Dks5qg7sqgaJpZM4IlnTX
.

@tacaswell
Copy link
Member

I am going to push up a 1.5.2 today as there seems to be demand for it and get to 1.5.3 when I get to it.

@tacaswell
Copy link
Member

@matthew-brett The source is up, please close this when the wheels are up.

Sorry doing being so slow on my end.

@matthew-brett
Copy link
Contributor Author

@tacaswell - no problem - wheels uploaded now.

$ pip install matplotlib
Collecting matplotlib
  Downloading matplotlib-1.5.2-cp27-cp27mu-manylinux1_x86_64.whl (13.7MB)
    100% |████████████████████████████████| 13.7MB 63kB/s 
Collecting numpy>=1.6 (from matplotlib)
  Downloading numpy-1.11.1-cp27-cp27mu-manylinux1_x86_64.whl (15.3MB)
    100% |████████████████████████████████| 15.3MB 71kB/s 
Collecting python-dateutil (from matplotlib)
  Using cached python_dateutil-2.5.3-py2.py3-none-any.whl
Collecting cycler (from matplotlib)
  Using cached cycler-0.10.0-py2.py3-none-any.whl
Collecting pytz (from matplotlib)
  Downloading pytz-2016.6.1-py2.py3-none-any.whl (481kB)
    100% |████████████████████████████████| 481kB 2.2MB/s 
Collecting pyparsing!=2.0.0,!=2.0.4,!=2.1.2,>=1.5.6 (from matplotlib)
  Downloading pyparsing-2.1.8-py2.py3-none-any.whl (54kB)
    100% |████████████████████████████████| 61kB 8.1MB/s 
Collecting six>=1.5 (from python-dateutil->matplotlib)
  Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: numpy, six, python-dateutil, cycler, pytz, pyparsing, matplotlib
Successfully installed cycler-0.10.0 matplotlib-1.5.2 numpy-1.11.1 pyparsing-2.1.8 python-dateutil-2.5.3 pytz-2016.6.1 six-1.10.0

For the next release, here's a humble plea to put up the wheels first, so that no-one accidentally hits a source install when they were expecting a wheel install, in the gap between the source and the wheel upload.

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

9 participants