-
Notifications
You must be signed in to change notification settings - Fork 282
WHL: upgrade cibw, migrate static configuration to pyproject.toml, enable cp313 wheels #1810
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: main
Are you sure you want to change the base?
Conversation
7bd1f24 to
7c77987
Compare
| macos-latest, | ||
| macos-15-intel, |
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.
the important bit here is to move away from macos-13 as the image is deprecated (and possibly already discontinued). While I'm at it, I also bumped the amr64 image to match how ubuntu and windows are specified.
7c77987 to
526fbb2
Compare
pyproject.toml
Outdated
| skip = [ | ||
| "cp38-*", | ||
| "cp39-*", | ||
| "cp314t-*", |
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.
given that both 3.13 and 3.14 wheels were missing I assumed that free-threading wasn't supported yet. Note that cibuildwheel 3.2 and newer just enable it by default for 3.14, not 3.13 (because it was marked as experimental for that version), so, to be conservative, and because it's potentially much more work to add, I just disabled this one explicitly.
pyproject.toml
Outdated
| "cp38-*", | ||
| "cp39-*", |
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 that it shouldn't be necessary to list versions you do (build) or do not (skip) support here; the modern approach is to rely soly on project.requires-python, but the project table is entirely missing here (the project metadata is instead 100% dynamically generated at build time via setup.py). While out of scope here, I could easily contribute a bit of modernization in that area too.
1b11abb to
7357302
Compare
|
Hi @neutrinoceros, thank you for the PR! A few of us are out for the holiday, but can give this a review soon! We greatly appreciate this PR to update the wheels etc! |
|
Absolutely no rush on my end, enjoy your holiday ! |
7357302 to
4e84fb0
Compare
| CIBW_BUILD: "cp310-* cp311-* cp312*" | ||
| CIBW_SKIP: "*-musllinux_*" # numpy doesn't have wheels for musllinux so we can't build some quickly and without bloating | ||
| CIBW_ARCHS_LINUX: "x86_64" | ||
| MACOSX_DEPLOYMENT_TARGET: "10.9" # as of CIBW 2.9, this is the default value, pin it so it can't be bumped silently |
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 that I intentionally didn't replicate this line because the correct target depends on the Python version being built against, and it's much easier to rely on cibuildwheel's default for this.
4e84fb0 to
ee4eb81
Compare
I noticed that the latest version didn't have wheels for Python 3.13 or 3.14, so I did a bit of housecleaning to enable them.
The reason I'm also making an attempt at enabling musllinux wheels is that the documented reason for disabling them is outdated: numpy has been supporting this target for some time now.
Out of scope here, but note that Cython>=3.1 is now able to generate Limited API-compliant C code, which means it should be relatively easy to both improve the future-portability of your wheels and reduce the overall number of wheels you need to produce for each release. I'd be happy to contribute this too if desired.