-
Notifications
You must be signed in to change notification settings - Fork 110
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
CI: Bump to cibuildwheel 2.2.2, Python 3.10 wheels will now build and deploy #374
CI: Bump to cibuildwheel 2.2.2, Python 3.10 wheels will now build and deploy #374
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #374 +/- ##
===========================================
+ Coverage 89.92% 89.95% +0.02%
===========================================
Files 44 44
Lines 4368 4369 +1
===========================================
+ Hits 3928 3930 +2
+ Misses 440 439 -1
Continue to review full report at Codecov.
|
Currently failing because SciPy (a build dependency) wheels for 3.10 are not available and the builds from source are failing. Once a SciPy wheel is available, our wheels should build successfully. scipy/scipy#14567 is tracking upstream. |
UpdateSciPy is waiting until Python 3.10 wheels are ready on all platforms to release the wheels on PyPI (per scipy/scipy#14567 (comment)). Linux wheels are ready and can be found in the Anaconda.org nightly SciPy wheels files, but Mac and Windows wheels are not ready yet. The blocker for SciPy's Mac/Windows wheels (this PR: MacPython/scipy-wheels#132) are NumPy wheels for Mac/Windows (this PR: MacPython/numpy-wheels#135). |
Python 3.10 not supported by some runtime dependencies yet (see pycalphad/pycalphad#374).
This needed a symengine bump to get the Python 3.10 wheels. The Python 3.10 The documentation build is also failing due to some Furo error and looks unrelated to this PR. I opened a discussion here. |
It looks like cibuildwheel is always trying to build scipy from source. On earlier versions of Python (3.8 and 3.9) scipy 1.7.2 source builds fail, but and pip falls back to an older wheel (scipy 1.7.1) successfully. For 3.10, wheels of older scipy builds are not available. It seems like the question is why the scipy 1.7.2 wheels are not getting picked up correctly. |
Maybe it could be an architecture flag thing? The current scipy build tags which do not get picked up correctly by cibuildwheel look like:
while the older wheels that are picked up correctly look like:
|
Could it be that the version of |
I found something similar here: pypa/cibuildwheel#633 (comment)
That was from April 3, 2021. Our cibuildwheel builds seems like it's using pip 21.2.X, while the CI test builds use pip 21.3.X. Both should have this sorted out, since they were released more recently than that. |
https://www.python.org/dev/peps/pep-0599/ also related. It seems like It may be that we need to update our cibuildwheel platform since the docker image looks to be for |
I bumped cibuildwheel to 2.2.2 (latest version) in a recent commit and it didn't seem to help. Shouldn't the Docker images update with each release? |
Not necessarily. The defaults for the images are still I tried to bump to 2014 just to see what happens. |
Looks better on It is possible to configure cibuildwheel to skip/selectively enable platforms for different python versions. For sure it works in the TOML via overrides (see https://cibuildwheel.readthedocs.io/en/stable/options/#overrides). I'm not sure about configuring overrides via YAML, but you can have both active (with YAML taking priority). |
Not sure what the long term plan is upstream (numpy/scipy) for i686 support, so maybe disabling them for all python versions is the future anyway. i686 could be dropped along with win-32. |
|
Correct. Looks like musllinux support was added in cibuildwheel 2.2.0 |
🎉 🎉 🎉 Okay, so in summary:
Do all these seem reasonable @richardotis? |
Yes, please merge. |
…uilt and deployed (pycalphad#374) - Bump cibuildwheel to 2.2.2 - Add Python 3.10 support for building wheels and running tests - Disable building `musilinux` wheels (a new feature in cibuildwheel, consistent with previous behavior) - Explicitly drop 32-bit support in building wheels - Drop support for `manylinux2010` wheels in favor of `manylinux2014` wheels across all Python versions - Use `oldest-supported-numpy` as a build and development requirement
…Lab#217) Python 3.10 not supported by some runtime dependencies yet (see pycalphad/pycalphad#374).
…Lab#217) Python 3.10 not supported by some runtime dependencies yet (see pycalphad/pycalphad#374).
No description provided.