Python ABIs and PEP 703

Yup. This is a pre-PEP discussion.
I’m just now trying to put all the thoughts together, in a way that would make sense for my presentation at the sprint :‍)

Let me back up a bit before answering Guido’s question:

We can’t keep the letter of the promise to support abi3 until Python 4.0. C’est la vie.
When the promise was made, 4.0 was expected to come after 3.9, so we’re keeping the spirit of the promise, for all that’s worth.

Anyway we need to decide a better policy for abi4. We probably want rolling deprecations, rather than planning for a(nother) big break.
That policy could be “CPython versions supported when rc1 is released”, so cp313-abi4 would work with 3.8+, cp314-abi4 with 3.9+ and so on.
I can see reasons to try supporting more than that, but I don’t think it would make much sense to support less.

It would limit abi4 to 3.12+. That is an option, but I think we can do better :‍)

It isn’t, but I expect we’ll keep finding more things to (not) include in the big break.
IMO it’s OK to put in things we intend to deprecate/remove down the road. We’ll need to plan how we’ll do deprecations, and we should start that now.

2 Likes