Add support for the free-threaded build and upload cp313t wheels
Currently, isal doesn't upload cp313t wheels. It does build and install, but importing it re-enables the GIL:
Python 3.13.5 experimental free-threading build (main, Jul 13 2025, 10:48:09) [Clang 17.0.0 (clang-1700.0.13.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import isal
<frozen importlib._bootstrap>:488: RuntimeWarning: The global interpreter lock (GIL) has been enabled to load module 'isal._isal', which has not declared that it can run safely without the GIL. To override this behavior and keep the GIL disabled (at your own risk), run with PYTHON_GIL=0 or -Xgil=0.
Ideally, it should be possible to add support for the free-threaded build.
There is a guide for porting extension modules to support the free-threaded build at https://py-free-threading.github.io. I'm one of the primary authors and helped port a number of libraries over the past year and am happy to help out and answer questions. I also think @lysnikolaou has looked at this library in the context of getting aiohttp free-threaded support up and running.
Ah, missed that there is https://github.com/pycompression/python-isal/pull/233 (which of course I commented on 🙃). Feel free to close this but having a tracking issue is useful for visibility.
Right according to them, there are no problems to be expected when running without the GIL. So you could just do the PYTHON_GIL=0 thing and see how it goes.
I need to do more research before I merge that PR.