-
Notifications
You must be signed in to change notification settings - Fork 42
WHL: build limited-api compliant wheels #372
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
base: master
Are you sure you want to change the base?
Conversation
b149f00 to
c41b7f6
Compare
|
(that said, I think I found the issue and updated the branch here) |
c41b7f6 to
c7e138c
Compare
|
Here's the current error this is likely caused by some limitation (or bug) in Cython where it can still generate code that isn't strictly Limited-API-compliant. This is similar to why |
|
let's try |
|
This again might be a sign of a limitation or bug in Cython, but I imagine it could also be a symptom of 3.14 not being completely stabilized yet (even though we're on rc3 at this point). I cannot do much more for now, I'll need to wait for the final 3.14.0 release, about 2 weeks from now, to see if anything changes. |
|
python 3.14 is released, would like to merge this PR before making a new release (if possible) |
|
I can try out a new run |
|
actually, it looks like cibuildwheels needs to be patched (and then upgraded here) to use the final 3.14.0 release, but the patch isn't there yet. |
|
I wonder why it worked for netcdf4-python (Unidata/netcdf4-python#1427)? |
|
I'm OK with waiting, we can always issue a patch release with the limited abi wheels |
It worked out of the box for most packages I tried this on indeed, but not all. It depends on Cython for generating correct and compatible code, and maybe we're just hitting a bug in Cython or CPython itself (yikes). If 3.14.0 final doesn't work, I'll upstream the discussion to interested parties. |
4b6bb8b to
adc3dff
Compare
|
here's a clue; the warning we see before the interpreter crashes, namely is generated by Cython (specifically |
| # Emulated testing is slow, so trust that the Python 3.14 test is good enough on aarch64 | ||
| # (takes about 5 minutes per wheel to build, and 5 minutes to test) | ||
| test-skip = [ | ||
| "cp3{10,11,12,13}-*_aarch64", | ||
| ] |
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.
note for later; it seems I accidentally duplicated this instead of moving it. Will partially revert.
|
I could be wrong but it looks to me like the information that we want to target abi3 is somehow not reaching Cython. I suspect it might be caused by the specific logic used in setup.py for this project but I'm not certain yet. |
|
I see that the cftime setup.py uses Cython.Build.cythonize, while netcdf4-python doesn't. |
|
that's definitely the difference, thanks. |
|
I opened #375 to unblock your release process |
…e 3.10 or newer, add explicit support for 3.14
473d26f to
18906d6
Compare
Based off #371, similar to Unidata/netcdf4-python#1427
I've included a commit to drop support for 3.8 and 3.9 (soon to be EOL), but it can easily be split out of this PR if desired.