liberfa / pyerfa

Python bindings for ERFA routines
https://pyerfa.readthedocs.io
BSD 3-Clause "New" or "Revised" License
34 stars 24 forks source link

Add CPython 3.13 to CI when released (tracker issue) #152

Open neutrinoceros opened 2 months ago

neutrinoceros commented 2 months ago

I ran some experiments on my fork to test pyerfa against CPython 3.13. I report that current wheels are already compatible with the GIL-enabled build for 3.13.0b2 (which is expected with abi3 wheels, restricted to Python's limited API). update: #153

However, the free-threaded build isn't compatible yet. Attempting to build pyerfa will explicitly fail with the following error

In file included from erfa/ufunc.c:14:
        /opt/_internal/cpython-3.13.0b1-nogil/include/python3.13t/Python.h:51:4: error: #error "The limited API is not currently supported in the free-threaded build"

Here's the upstream issue to wait on before we can move forward https://github.com/python/cpython/issues/111506

neutrinoceros commented 1 month ago

Update: https://github.com/python/cpython/issues/111506#issuecomment-2230972875 clarifies that free-threading + limited-api compatibility will not land in Python 3.13. I suspect we might want to start experimenting with astropy sooner than 3.14.0b1, so I'm now looking for a way to disable limited-api at build time (it should still be on by default) so we can at least build pyerfa from source with free-threading whenever we're ready for it.

neutrinoceros commented 2 weeks ago

This issue should be closed when CPython 3.13 (final) is added to regular CI.