On Sun, Sep 26, 2021 at 3:51 AM Phil Thompson via Python-Dev < python-dev@python.org> wrote:
> On 26/09/2021 05:21, Steven D'Aprano wrote: > > [snip] > > > These are not rhetorical questions, I genuinely do not know. I *think* > > that there was an attempt to make a stable C API back in 3.2 days: > > > > https://www.python.org/dev/peps/pep-0384/ > > > > but I don't know what difference it has made to extension writers in > > practice. From your description, it sounds like perhaps not as big a > > difference as we would have liked. > > > > Maybe extension writers are not using the stable C API? Is that even > > possible? Please excuse my ignorance. > > PyQt has used the stable ABI for many years. The main reason for using > it is to reduce the number of wheels. The PyQt ecosystem currently > contains 15 PyPI projects across 4 platforms supporting 5 Python > versions (including v3.10). Without the stable ABI a new release would > require 300 wheels. With the stable ABI it is a more manageable 60 > wheels. > > However the stable ABI is still a second class citizen as it is still > not possible (AFAIK) to specify a wheel name that doesn't need to > explicitly include each supported Python version (rather than a minimum > stable ABI version). > Actually you can do this. The list of compatible wheels for a platform starts at CPython 3.2 when the stable ABI was introduced and goes forward to the version of Python you are running. So you can build a wheel file that targets the oldest version of CPython that you are targeting and its version of the stable ABI and it is considered forward compatible. See `python -m pip debug --verbose` for the complete list of wheel tags that are supported for an interpreter.
_______________________________________________ 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/E4EA6GW6N5NREEBM4QOA7GTLBGTGD4AV/ Code of Conduct: http://python.org/psf/codeofconduct/