Christian Heimes schrieb am 01.02.22 um 16:42:
On 01/02/2022 16.08, Victor Stinner wrote:
I would prefer to introduce C API incompatible changes differently:
first fix Cython, and *then* introduce the change.
- (1) Propose a Cython PR and get it merged
- (2) Wait until a new Cython version is released
- (3) If possible, wait until numpy is released with regenerated Cython code
- (4) Introduce the incompatible change in Python
Note: Fedora doesn't need (3) since we always regenerated Cython code in
numpy.
this is a reasonable request for beta releases, but IMHO it is not feasible
for alphas. During alphas we want to innovate fast and play around. Your
proposal would slow down innovation and impose additional burden on core
developers.
Let's at least try not to run into a catch-22.
I'm reluctant to working on adapting Cython during alphas, because it
happened more than once that incompatible changes in CPython were rolled
back or modified again during alpha, beta and rc phases. That means more
work for me and the Cython project, and its users. Code that Cython users
generate and release on their side with a release version of Cython will
then be broken, and sometimes even more broken than with an older Cython
release.
But Victor is right, OTOH, that the longer we wait with adapting Cython,
the longer users have to wait with testing their code in upcoming CPython
versions, and the higher the chance of post-beta and post-rc rollbacks and
changes in CPython.
I don't have the capacity to follow all relevant changes in CPython,
incompatible or not. Even a Cython CI breakage of the CPython-dev job
doesn't always mean that there is something to do on our side and is
therefore silenced to avoid breakage of our own project workflows, and to
be looked at irregularly. Additionally, since Cython is a crucial part of
the Python ecosystem, breakage of Cython by CPython sometimes stalls the
build pipelines of CI images, which means that new CPython dev versions
don't reach the CI servers for a while, during which the breakage will go
even more unnoticed.
I think you should generally appreciate Cython (and the few other C-API
abstraction tools) as an opportunity to get a large number of extensions
adapted to CPython's now faster development all at once. The quicker these
tools adapt, the quicker you can get user feedback on your own changes, and
the more time you have to validate and refine them during the alpha and
beta cycles.
You can even see the adaptation as a way to validate your own changes in
the real world. It's cool to write new code, but difficult to find out
whether it behaves the way you want for the intended audience. So – be part
of your own audience.
Stefan
_______________________________________________
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/LJDI74V4IOHPCMQUEGH6VIQWHLM3MADG/
Code of Conduct: http://python.org/psf/codeofconduct/