[Python-Dev] Re: Cleaning the stable ABI [was Accepting PEP 602 -- Annual Release Cycle for Python]

2019-10-30 Thread Nick Coghlan
On Thu., 31 Oct. 2019, 6:14 am Steve Dower,  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.

Cheers,
Nick.


>
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/7ZWXZLFES57UFVYMKSMQB47SY3NB3XA2/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Cleaning the stable ABI [was Accepting PEP 602 -- Annual Release Cycle for Python]

2019-10-30 Thread Brett Cannon
Steve Dower wrote:
> On 30Oct2019 1226, Brett Cannon wrote:
> > 
> > Now that the stable ABI has been cleaned, extension modules should feel more
> > comfortable targeting the stable ABI which should make supporting newer 
> > versions of Python
> > much easier
> > 
> > I'm taking this as an indication that we should finish 
> https://bugs.python.org/issue23903 to
> actually clean the stable ABI and 
> make it usable on Windows.

I would, but then I would have wanted the stable ABI to be clean and work on 
Windows regardless. :)

> Specifically:
> 
> existing APIs that accidentally shipped in the stable ABI have to 
> remain in the stable ABI if they are currently listed in python3.def
> _all_ current stable ABI APIs according to the header files will be 
> added to python3.def, whether they were intended to be stable or not 
> (with a grace period of however long it takes us to finish issue23903)
> in future, the file will be either auto-generated or validated against 
> the actual headers, to ensure it doesn't get out of sync again
> 
> Hopefully this won't be as upsetting to people as last time we tried to 
> fix it, but if anyone still has concerns about the stable ABI not being 
> properly clean, you need to speak up :)
> 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.

Don't know. That's probably a discussion to have and decide where the results 
of that discusion should be specified (PEP 384, 387, or 602).
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/4DFX5ZQFDBGK2FVFMEKTXIEK5UJWWUBX/
Code of Conduct: http://python.org/psf/codeofconduct/