Uh oh!
There was an error while loading. Please reload this page.
Initial abi3t support - #15063
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
alex
commented
Jun 18, 2026
Thanks for working on this! |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ngoldbaum
commented
Jun 18, 2026
OK great, it looks like the only failing CI jobs use a Rust compiler that's too old to build Maturin. There are two Windows jobs that timed out but I'm not worried about that because building Maturin on Windows is very slow. I opened PyO3/maturin#3233 to fix the bug in Maturin. I'll try to work on getting the CFFI and Maturin PRs that I'm depending on here merged. |
alex
commented
Jun 18, 2026
In practice those iwll be solved by a maturin release with wheels |
The `&& !force_target_abi` was [introduced incorrectly by me](https://github.com/PyO3/maturin/blame/main/src/compile.rs#L898) in #3226 and hasn't yet shown up in a release. I hit this testing abi3t builds for cryptography with from-source builds of maturin: pyca/cryptography#15063. To better help Maturin's CI catch issues that are load-bearing for the cryptography project, I also added a test crate that uses CFFI like cryptography does: cooperatively with PyO3 and using PYO3_PYTHON to shell out and run a CFFI script. I manually verified that the new integration test fails on maturin's current `main` branch.
ngoldbaum
commented
Jun 19, 2026
Maturin cut a 1.14.1 release so now all that's needed is CFFI. |
ngoldbaum
commented
Jun 19, 2026
Looks like unconditionally requiring Maturin 1.14.1 or newer works in CI 🥳 I can probably upstream part of this while we wait for CFFI to do a release but for now I think I'll just wait for that before finishing this up. |
alex
commented
Jun 19, 2026
The |
ngoldbaum
commented
Jul 6, 2026
@alex I think this is ready now. |
reaperhulk
commented
Jul 6, 2026
This is now a very small PR 😄 What's the next step after merging this? |
alex
left a comment
There was a problem hiding this comment.
Do we need to update version bounds on cffi or anything?
ngoldbaum
commented
Jul 6, 2026
I don't think so. The first CFFI release with Python 3.15 support is CFFI 2.1, which is >= 2.0. 2.0 is fine for older Python versions.
Probably worth doing a dry-run of the release automation to verify that you do actually get three wheels per platform out to upload to PyPI. Other than that, I think just a release advertising Python 3.15 support. |
alex
commented
Jul 6, 2026
Do we need >=2.1; python_version >= '3.15'? |
ngoldbaum
commented
Jul 6, 2026
Sure, let's add that just in case someone does something weird. |
| # Must be kept in sync with `project.dependencies` | ||
| "cffi>=2.0.0; platform_python_implementation != 'PyPy'", | ||
| "cffi>=2.1; python_version >= '3.15'", |
There was a problem hiding this comment.
ugh, do we need the and platform_python_implementation != 'PyPy' just in case?
There was a problem hiding this comment.
I'm pretty sure we're safe given the status of Python 3.12 support in PyPy, but let's add it just to cover our bases I guess...
alex
commented
Jul 6, 2026
better safe than sorry 🙃 |
Uh oh!
There was an error while loading. Please reload this page.
Build abi3t wheels on python 3.15 and newer.