[Python-Dev] Some data points for the "annual release cadence" concept
ronaldoussoren at mac.com
Sun Jun 17 08:36:53 EDT 2018
> On 15 Jun 2018, at 13:00, Nick Coghlan <ncoghlan at gmail.com> wrote:
> On 14 June 2018 at 06:30, Ronald Oussoren <ronaldoussoren at mac.com <mailto:ronaldoussoren at mac.com>> wrote:
>> On 13 Jun 2018, at 15:42, Nick Coghlan <ncoghlan at gmail.com <mailto: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.
I agree. I haven’t seriously looked at the stable ABI yet, so I don’t know if there are reasons for now migrating to it beyond Py2 support and the effort required. For my own projects (both public and not) I have some that could possibly migratie to the stable ABI, and some that cannot because they access information that isn’t public in the stable ABI.
I generally still use the non-stable C API when I write extensions, basically because I already know how to do so.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev