On 6/12/19 7:40 AM, Stefan Behnel wrote:
Victor Stinner schrieb am 12.06.19 um 00:09:
So yeah, the PyCode_New() change is very annoying in practical, since every single project using Cython requires a new release in practice.
I think Cython's deal with regard to this is:
""" If you use Cython, we will try hard to cover up the adaptations for upcoming (and existing) CPython versions for you. But you'll likely have to rerun Cython on your project before a new CPython major release comes out. """
That's obviously not ideal for projects that end up being unmaintained. But then again, you can't freeze time forever, and /any/ change to a dependency can end up being fatal to them.
I personally think that rerunning Cython when a new CPython release comes out is an acceptable price to pay for a project. In the worst case, this can even be done by others, as you suggested as a common Fedora practice elsewhere, Victor.
I hope this is something that improvements in Python's packaging story (specifically, PEP 518) should help with. I see the current practice of including Cython's output in releases as a workaround for the fact that you can't (reasonably) specify Cython as a build dependency. Cython is a much lighter dependency than a C compiler -- though a less common one. When there's a reliable way to specify build-time dependencies, running Cython on each build will hopefully become the obvious way to do it.
Or is there something else blocking that future?