Skip to content

Conversation

@neutrinoceros
Copy link
Contributor

@neutrinoceros neutrinoceros commented Nov 22, 2025

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.

@neutrinoceros neutrinoceros force-pushed the whl/cp313-cp314 branch 3 times, most recently from 7bd1f24 to 7c77987 Compare November 22, 2025 18:04
Comment on lines +27 to +28
macos-latest,
macos-15-intel,
Copy link
Contributor Author

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.

pyproject.toml Outdated
skip = [
"cp38-*",
"cp39-*",
"cp314t-*",
Copy link
Contributor Author

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
Comment on lines 47 to 48
"cp38-*",
"cp39-*",
Copy link
Contributor Author

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.

@neutrinoceros neutrinoceros force-pushed the whl/cp313-cp314 branch 2 times, most recently from 1b11abb to 7357302 Compare November 22, 2025 18:54
@neutrinoceros neutrinoceros changed the title WHL: upgrade cibw, migrate static configuration to pyproject.toml, enable cp313 and cp314 wheels + musllinux WHL: upgrade cibw, migrate static configuration to pyproject.toml, enable cp313 wheels + musllinux Nov 22, 2025
@zssherman
Copy link
Collaborator

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!

@neutrinoceros
Copy link
Contributor Author

Absolutely no rush on my end, enjoy your holiday !

@neutrinoceros neutrinoceros changed the title WHL: upgrade cibw, migrate static configuration to pyproject.toml, enable cp313 wheels + musllinux WHL: upgrade cibw, migrate static configuration to pyproject.toml, enable cp313 wheels Nov 22, 2025
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
Copy link
Contributor Author

@neutrinoceros neutrinoceros Nov 22, 2025

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.

@neutrinoceros neutrinoceros marked this pull request as ready for review November 22, 2025 21:50
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.

2 participants