-
Notifications
You must be signed in to change notification settings - Fork 834
Supporting in-development Python versions #5093
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
Comments
Hearty +1. Also OK with allowing early testing with 3.15. |
Hmm, is there a bug here? I'm seeing the:
error for a build that has |
I don't think there's a bug; at the moment the logic is:
I think for this case of an in-dev version where you request to build with abi3 we could just build and assume abi3 works fine, maybe with warnings that PyO3 doesn't officially support this version yet. |
From my perspective, the theory of abi3 is: it must be valid to build abi3-py313 and use it on a Python 3.14, therefore it should be ok to, when running on Python 3.14, also build for 3.13-abi3 :-) So from that perspective, there should be no correctness risk, it's just a question of whether downgrading like this is too unintuitive to be the default behavior. |
FWIW, |
I think:
is roughly the desired behavior, but (And with apologies, I'm now walking away from my computer for most of the day :-)) |
If you have already opted for abi3, building for "newest known" abi3 version makes a ton of sense for future compatibility, I support that. I guess the only question is whether it makes sense to warn, maybe just at build time? |
Build time warning that you're falling back makes sense
…On Tue, May 13, 2025, 7:43 AM David Hewitt ***@***.***> wrote:
*davidhewitt* left a comment (PyO3/pyo3#5093)
<#5093 (comment)>
If you have already opted for abi3, building for "newest known" abi3
version makes a ton of sense for future compatibility, I support that.
I guess the only question is whether it makes sense to warn, maybe just at
build time?
—
Reply to this email directly, view it on GitHub
<#5093 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAGBAVEBJPMOT2OR65SKD26IAJZAVCNFSM6AAAAAB33LYKVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQNZWHAYTQMZUGI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
This release cycle for Python 3.14 I've seen a lot of user requests for PyO3 to support 3.14 already, and I expect there will be similar demand for 3.15 as soon as 3.14 is stable. Maybe some folks testing 3.15 on CPython main might care as soon as 3.14 is in beta.
At the moment our version check basically refuses to build for 3.14 except in abi3 mode, which is safe but doesn't work for all projects (or free-threaded Python). This is 100% safe but gets in the way of development efforts.
For some reasonable definition of "in-development" Python (TBC how we decide / detect this), I propose that we relax this a bit and just emit warnings (probably at both build time and runtime). Maybe we require opt-in with an environment variable, similar to how we have
PYO3_USE_ABI3_FORWARD_COMPATIBILITY
for future stable Python versions.I think also for supporting future versions of CPython, we should allow PRs to support the Python main branch (currently 3.14, soon to be 3.15). We should also run development versions on CI, but they should not block merge until they are stable.
In this direction, I think #4811 should probably also be merged asap as 3.14 beta is very close and we should start testing 3.14 beta in CI.
Would be interested to hear everyone's thoughts on the matter!
The text was updated successfully, but these errors were encountered: