[Python-Dev] Some data points for the "annual release cadence" concept

Nick Coghlan ncoghlan at gmail.com
Fri Jun 15 07:00:46 EDT 2018


On 14 June 2018 at 06:30, Ronald Oussoren <ronaldoussoren at mac.com> wrote:

> On 13 Jun 2018, at 15:42, Nick Coghlan <ncoghlan at gmail.com> wrote:
>
> Yeah, pretty much - once we can get to the point where it's routine for
> folks to be building "abiX" or "abiXY" wheels (with the latter not actually
> being a defined compatibility tag yet, but having the meaning of "targets
> the stable ABI as first defined in CPython X.Y"), rather than feature
> release specific "cpXYm" ones, then a *lot* of the extension module
> maintenance pain otherwise arising from more frequent CPython releases
> should be avoided.
>
> There'd still be a lot of other details to work out to turn the proposed
> release cadence change into a practical reality, but this is the key piece
> that I think is a primarily technical hurdle: simplifying the current
> "wheel-per-python-version-per-target-platform" community project build
> matrices to instead be "wheel-per-target-platform”.
>
>
> This requires getting people to mostly stop using the non-stable ABI, and
> that could be a lot of work for projects that have existing C extensions
> that don’t use the stable ABI or cython/cffi/…
>
> That said, the CPython API tends to be fairly stable over releases and
> even without using the stable ABI supporting faster CPython feature
> releases shouldn’t be too onerous, especially for projects with some kind
> of automation for creating release artefacts (such as a CI system).
>

Right, there would still be a non-zero impact on projects that ship binary
artifacts.

Having a viable stable ABI as a target just allows third party projects to
make the trade-off between the upfront cost of migrating to the stable ABI
(but then only needing to rebuild binaries when their own code changes),
and the ongoing cost of maintaining an extra few sets of binary wheel
archives. I think asking folks to make that trade-off on a case by case
basis is reasonable, whereas back in the previous discussion I considered
*only* offering the second option to be unreasonable.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180615/c39bc6db/attachment.html>


More information about the Python-Dev mailing list