-
Notifications
You must be signed in to change notification settings - Fork 30
WIP, MAINT: backport 3.10 support #135
WIP, MAINT: backport 3.10 support #135
Conversation
* try to backport some of the pertinent changes for Python 3.10 support to the wheels repo `v1.7.x` branch, which needs to continue supporting Python 3.7 * perhaps we can do away with some of the manylinux bumps--not sure on those--things are going to change a fair bit anyway with a huge bump in OpenBLAS version as well; perhaps the bumps could be confined to just 3.10 using newer manylinux?? * point `BUILD_COMMIT` at the tip of the target maintenance branch to get more useful feedback on where we stand for the 3.10 wheel builds
@@ -118,7 +142,8 @@ jobs: | |||
- MB_PYTHON_VERSION=3.9 | |||
- PLAT=aarch64 | |||
- CYTHON_BUILD_DEP="Cython" | |||
- DOCKER_TEST_IMAGE=multibuild/xenial_arm64v8 | |||
- DOCKER_TEST_IMAGE=multibuild/focal_{PLAT} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like there was some contention about the need for this bump--if we can test on an older version that may be more valuable for compatibility check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I created the images, the idea was to build via manylinux which is an ancient system, and test that it works on a modern system to make sure all the backward compatible shims are still in place. So I think we should use the latest stable image available.
amd64-linux-py38: | ||
MB_PYTHON_VERSION: "3.8" | ||
MB_ML_VER: "2014" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if these bumps are harmful, or a least disruptive--I'm somewhat tempted to only use the shiny/new stuff for 3.10, although OpenBLAS version is shooting up several versions (years) anyway
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense. The only reason to continue to use manylinux2010 is for very old pip versions. The centos6 base for manylinux2010 went EOL in Nov, 2020. Users of python3.8 will have a pip that is capable of using manylinux2014 wheels.
I don't see Azure running in the CI matrix list at the time of writing--it is possible I've introduced an error in the yml there perhaps. |
/azp run |
Azure Pipelines could not run because the pipeline triggers exclude this branch/path. |
* changes related to enabling Python `3.10` support on the `maintenance/1.7.x` branch based on failures in the wheels repo here: MacPython/scipy-wheels#135
* allow azure pipelines to run in PRs against the v1.7.x branch (at least for debugging purposes..)
I've re-enabled Azure pipelines to run against the |
Python 2.4 error (!) showing up in one of the Azure runs:
|
Wow, that's impressively outdated stuff:) |
* bump the manylinux versions for some Azure builds to see if we can get around the Python 2.4 errors [skip travis]
I've tried bumping from manylinux1 -> manylinux2010 for those Azure matrix entries that were having Python 2.4 errors. Skipping Travis CI for now, while iterating. |
That helped a bit, the remaining errors currently fall into two categories:
I'm also wondering if we really can justify |
Yes, we should not ship |
changes related to enabling Python `3.10` support on the `maintenance/1.7.x` branch based on failures in the wheels repo here: MacPython/scipy-wheels#135
This doesn't look familiar to me (but I haven't followed the recent 3.10 work closely).
This is done now in the main repo. |
Awesome, thanks I'll probably merge that in the main repo then revise this PR based on comments and to point to the latest version of the maintenance branch hash so we have an updated view on the situation for 1.7.2. |
* we're not ready to ship `universal2` wheels for Python 3.8 and 3.9, so remove those backport additions; for Python 3.10 `universal2` is apparently our only option (based on the comments I've seen from Chuck at least?) * still skipping travis CI for now to save credits * point `BUILD_COMMIT` at latest version of the maintenance branch to get updated feedback on our status here [skip travis]
Ok, latest update pushed--quoting from the commit message:
|
@charris @matthew-brett do I understand correctly that for MacOS X Python 3.10 |
That was my understanding. Python 3.10 only supports universal2 installers, but I'm not sure what that means. However, I did notice that thin |
That cannot be correct. Maybe you mean that Python.org offers only a universal2 installer? If so, I don't see how that is relevant. We should produce wheels that make sense, so also thin If it is difficult, then shipping
Ah. That seems wrong. But well, multibuild is a bit of a pain to update and we really need to ship |
If the Intel wheel problem gets solved, those wheels can always be uploaded later. Universal 3.10 wheels were OK for NumPy, so I stopped trying to get the Intel builds working. There might be a solution there, I just didn't find it in the short time I devoted to it. |
For NumPy it's fine right now, because there's nothing really wrong with numpy on arm64, tests pass modulo a few warnings. SciPy still has crashes in several modules. |
Yep. If you want, I could do more work on getting the Intel build working. NumPy takes a lot less time to build and test than SciPy does. EDIT: One of the reasons I stopped trying is that multibuild might need fixing, and there was no easy way to do that while working in numpy-wheels, the commits need to be in the upstream multibuild devel branch. |
Yeah I'm inclined to spend time on moving to cibuildwheel instead. Long term, multibuild updates are lost dev time. |
Alright, well let me see if I hit a wall with at least trying to build a regular x86_64 3.10 wheel for Mac, probably in a separate trimmed down debug PR and/or with some local testing.. |
Something, I assume |
Maybe worth pinging @matthew-brett on how to make x86_64 wheels for macOS |
Ok, it is not looking like multibuild is injecting it directly on my test branch (I purged every opportunity to add it from multibuild). I've read about Xcode 12/the system Python itself automatically injecting the flag, which is what I feared, so will see if one of the described workarounds is viable.. |
The Python MacOS 3.10 wheel build appears to succeed in gh-136 with x86_64 arch forced, but there are quite a few test failures in the next stage, especially related to universal2 is still incorrectly used for some path names when building the bdist, but seems like an x86_64 build otherwise. |
Interesting. Those both use doubles on M1, no extended/quad precision, and numpy ran into problems with c++ there, but that shouldn't be the case on Intel. I note that cibuildwheels claims to build Python 3.10 macosx wheels for Intel. |
* switch to `x86_64` thin wheel builds for Mac OS Python `3.10` following upstream changes/releases in multibuild/NumPy that support this * point to the new `multibuild` repo and sync to latest `devel` (for thin MacOS Python 3.10 x86_64 thin wheel support, etc.) * backport the full set of `master` branch changes to `config.sh` based on feedback from Isuru
Following various upstream updates the following changes have been pushed in here (from the commit message):
|
For the failures on macOS, I've seen the same in my PR to update our CI scipy/scipy#14832. But seems like we don't have it anymore. |
@tupui @charris @rgommers I suspect if we're going to use At the moment those failures are identical to before, and almost certainly the result of not using the latest NumPy with the quad/double fixes. |
@tylerjereddy Ralf just updated it so it serves latest 1.21.4. So maybe just relaunch the CI? |
Ok, let's just re-flush the CI then. I'd try to restart just that one job, but let's just check across the board.. |
So close, just this issue left it seems: scipy/scipy#14985 |
* try importing multiprocessing in `run_scipy_tests.py` to address this: scipy/scipy#14985
Not sure if it is good fortune or the |
try to backport some of the pertinent
changes for Python 3.10 support to the wheels
repo
v1.7.x
branch, which needs to continuesupporting Python 3.7
perhaps we can do away with some of the manylinux
bumps--not sure on those--things are going to change
a fair bit anyway with a huge bump in OpenBLAS version
as well; perhaps the bumps could be confined to just 3.10
using newer manylinux??
point
BUILD_COMMIT
at the tip of the target maintenancebranch to get more useful feedback on where we stand
for the 3.10 wheel builds