gh-336: support Python 3.13
- Add Python 3.13 classifier
- Test on Python 3.13 in CI
- Support for Python 3.13 in
noxfile
Closes: #336
Version 3.13 was not found in the local cache Error: The version '3.13' with architecture 'x64' was not found for Ubuntu 22.04. The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json
I am not sure where the cache is coming from. I have tried re-running this multiple times and have also deleted the existing caches from GitHub Actions, but it somehow does not work. I will try re-running this later today, and maybe create an issue in setup-python if it still does not work? (Other pure-python repositories that I work on are not encountering this issue).
cc: @paddyroddy
It will take some time for 3.13 to become available across GitHub
Ah, healpix does not have 3.13 binaries on PyPI and we don't allow pip to build it from source -
https://github.com/glass-dev/glass/blob/1631757e7436a89501497aff3f8592a4729294f0/.github/test-constraints.txt#L11
I think this will have to wait till 3.13 wheels of healpix are available on PyPI.
cc: @ntessore
Ah,
healpixdoes not have3.13binaries on PyPI and we don't allow pip to build it from source -
We should definitely wait until all dependencies have 3.13 support. It is quite common for the ecosystem to take a while to catch up.
healpix for cp313 has been uploaded
Just marking as ready to see what happens in CI
Also built flt wheels for cp312 and cp313. Excluding healpy, are these all of our native extension dependencies done?
Also built
fltwheels for cp312 and cp313. Excluding healpy, are these all of our native extension dependencies done?
I think so, hard to tell really unless we comment out healpy
Still waiting on a new healpy release does make me wonder if our CI wouldn't be better served by using conda ... But this probably causes a lot of issues with tox/nox?
Still waiting on a new healpy release does make me wonder if our CI wouldn't be better served by using conda ... But this probably causes a lot of issues with tox/nox?
Unless I've missed something, conda alone won't sort 3.13 support? It's still on the same version v1.17.3 https://anaconda.org/conda-forge/healpy, so will still need the library fixing.
Some libraries take a long time to support a new release, for example check out https://github.com/numba/numba/issues/9197.
A different question is do we need healpy as well as healpix?
Unless I've missed something,
condaalone won't sort3.13support? It's still on the same versionv1.17.3https://anaconda.org/conda-forge/healpy, so will still need the library fixing.
But conda has already provided 3.13 binaries for healpy 1.17.3 – healpy maintainers could add those to PyPI, like I did for healpix and flt.
Some libraries take a long time to support a new release, for example check out numba/numba#9197.
In my experience, that is only numba, which is understandable given what they have to go through.
A different question is do we need
healpyas well ashealpix?
The healpix package only deals with the HEALPix discretisation as such, but doesn't provide a spherical harmonic transform. Moving away from healpy for the latter is a long-term goal for GLASS, since healpy doesn't work on Windows (and many students come with Windows machines). In fact, I am looking forward to moving towards a generic Array API backend, since that is a very natural point to make that switch.
But conda has already provided 3.13 binaries for healpy 1.17.3 – healpy maintainers could add those to PyPI, like I did for
healpixandflt.
Ah yes, I see that now.
In my experience, that is only numba, which is understandable given what they have to go through.
You're very lucky, you've only had delays with numba!
Still waiting on a new healpy release does make me wonder if our CI wouldn't be better served by using conda ... But this probably causes a lot of issues with tox/nox?
I do think we want to use whatever you anticipate end users using. I don't use conda these days in favour of uv.
@paddyroddy, is this now blocked by something?
@paddyroddy, is this now blocked by something?
Nope, sorry! I think I forgot this was only adding 3.13 support, not removing 3.9.