On Thu., 31 Oct. 2019, 6:14 am Steve Dower, <steve.dower@python.org> wrote:

Also, PEP 602 makes no statement about when stable ABI APIs are
"committed", and nor does PEP 384, so should we assume that the stable
ABI becomes fixed at beta 1 (or RC 1)? That is, it is not allowed to
remove or change any stable ABI APIs from beta/RC 1, even if they
weren't in the previous release? Or will we hold it until the final
release and allow breaking the stable ABI during prereleases.

This is one of the still open questions.

My current thinking is:

* add the pre-freeze ABI flag proposed in PEP 605
* as long as that is set, both the full ABI and any stable ABI additions since the last stable release are still mutable
* we emit a compile warning if the target stable ABI is set to the in-development pre-freeze one
* clear the pre-freeze flag for rc1

That way folks will be able to freely build and publish binaries prior to rc1, as long as they're targeting the full ABI or an older version of the stable ABI.