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

Add CPython 3.10 wheels #20819

Merged
merged 2 commits into from Sep 13, 2021
Merged

Add CPython 3.10 wheels #20819

merged 2 commits into from Sep 13, 2021

Conversation

hrnciar
Copy link
Contributor

@hrnciar hrnciar commented Aug 10, 2021

PR Summary

This PR modifies cibuildwheel.yml to create wheels for Python 3.10. I propose this as a draft because it is currently blocked on numpy's wheel (numpy/numpy#19630).

PR Checklist

  • [N/A] Has pytest style unit tests (and pytest passes).
  • [N/A] Is Flake 8 compliant (run flake8 on changed files to check).
  • [N/A] New features are documented, with examples if plot related.
  • [N/A] Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • [N/A] Conforms to Matplotlib style conventions (install flake8-docstrings and run flake8 --docstring-convention=all).
  • [N/A] New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • [N/A] API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for opening your first PR into Matplotlib!

If you have not heard from us in a while, please feel free to ping @matplotlib/developers or anyone who has commented on the PR. Most of our reviewers are volunteers and sometimes things fall through the cracks.

You can also join us on gitter for real-time discussion.

For details on testing, writing docs, and our review process, please see the developer guide

We strive to be a welcoming and open project. Please follow our Code of Conduct.

Comment on lines 72 to 69
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess there's no point to use manylinux1 for Python 3.10 now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, Python 3.10 does not support manylinux1 and it was failing with it.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's actually no point to use manylinux1 for 3.9 either - the last reason for manylinux1 was the weird hack of attaching pip 9 to python3.8-dev on Ubuntu 18.04. NumPy does not ship manylinux1 wheels for 3.9 anymore.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 3.10 wheels for numpy are manylinux2014. I suppose here we should do the same?

@tacaswell tacaswell linked an issue Aug 14, 2021 that may be closed by this pull request
@tacaswell tacaswell marked this pull request as ready for review August 14, 2021 23:17
@tacaswell tacaswell marked this pull request as draft August 14, 2021 23:21
@tacaswell
Copy link
Member

Sorry for the draft thrashing, I was optomistic that the numpy issue being closed meant they had uploaded wheels already.

@hrnciar
Copy link
Contributor Author

hrnciar commented Aug 16, 2021

@tacaswell numpy 1.21.2 was released and wheels are available. My PR works for Linux and Windows wheels, but I am getting an error on macOS build. It seems to me like an error in Numpy, WDYT? https://github.com/hrnciar/matplotlib/runs/3338097720

@henryiii
Copy link

numpy 1.21.2 was released and wheels are available. My PR works for Linux and Windows wheels, but I am getting an error on macOS build.

Only 64-bit linux (Intel and ARM) wheels are included. There are no Windows or macOS wheels. NumPy on macOS requires special setup because it can't use the buggy and deprecated built-in Accelerate framework.

@rgommers
Copy link

NumPy on macOS requires special setup because it can't use the buggy and deprecated built-in Accelerate framework.

Not quite true anymore, Accelerate was re-enabled in numpy.distutils recently after some work by Apple. But we still use OpenBLAS for wheels. And it will not be re-enabled for SciPy.

@QuLogic
Copy link
Member

QuLogic commented Aug 20, 2021

I think this will need a rebase.

But while this is likely to pass a build, it does not mean that tests are passing, due to problems in our dependencies, see #20864 (comment)

@tacaswell tacaswell marked this pull request as ready for review August 28, 2021 19:53
@tacaswell tacaswell added this to the v3.5.0 milestone Aug 28, 2021
@tacaswell
Copy link
Member

Put on the 3.5.0 milestone so we get auto backporting when this is merged.

@QuLogic
Copy link
Member

QuLogic commented Sep 1, 2021

If we skip macOS, we can get wheels on Linux and Windows.

However, as noted above, NumPy only builds manylinux2014 wheels for 3.10. This means that our build somewhat needlessly rebuilds NumPy, and we should probably switch that to build manylinux2014 only.

@QuLogic
Copy link
Member

QuLogic commented Sep 1, 2021

I skipped macOS and bumped 3.10 wheels to manylinux2014: https://github.com/QuLogic/matplotlib/runs/3489831873 There don't appear to be 32-bit wheels for NumPy, so those still get rebuilt, so not sure if that saved anything.

@hroncok
Copy link

hroncok commented Sep 3, 2021

Let's skip 32bit wheels as well? They can always be added later.

@QuLogic
Copy link
Member

QuLogic commented Sep 10, 2021

I mean, they build, just a bit slower; no need to skip them.

@tacaswell
Copy link
Member

@QuLogic if you think this is ready to go please self-merge.

@QuLogic QuLogic merged commit 38bfebc into matplotlib:master Sep 13, 2021
meeseeksmachine pushed a commit to meeseeksmachine/matplotlib that referenced this pull request Sep 13, 2021
QuLogic added a commit that referenced this pull request Sep 14, 2021
…819-on-v3.5.x

Backport PR #20819 on branch v3.5.x (Add CPython 3.10 wheels)
tacaswell pushed a commit that referenced this pull request Oct 20, 2021
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

Successfully merging this pull request may close these issues.

Python 3.10 manylinux wheels
6 participants