That hard break is called “Phase III”. No timeline, but it seems it could be pretty soon.
I agree about making the transition as painless as possible. That’s why I propose both API compatibility (no source changes → separate abi3
& abi3t
builds) and ABI compatibility (PyModExport
, opaque PyObject
→ abi3.abi3t
builds).
We want extensions to switch to the latter (so that we can change PyObject
in the future), but I think we need a window where we support both – both for extension authors to switch, and for CPython to react to feedback.