Skip to content

Conversation

@wshanks
Copy link
Contributor

@wshanks wshanks commented Nov 5, 2025

This change adds 3.14 to the lists of Python versions to test and to the list to build with cibuildwheel. It also marks the package as compatible with Python 3.13 and 3.14. It does not drop Python 3.9 or update the Python versions used in parts of the GitHub workflow that only use a single Python version, though doing those updates would also be a good idea.

Closes #2378

@wshanks wshanks force-pushed the py314 branch 3 times, most recently from 34e0da8 to b6d75ef Compare November 5, 2025 19:35
This change adds 3.14 to the lists of Python versions to test and to the
list to build with cibuildwheel. It also marks the package as compatible
with Python 3.13 and 3.14. It does not drop Python 3.9 or update the
Python versions used in parts of the GitHub workflow that only use a
single Python version, though doing those updates would also be a good
idea.
pyproject.toml Outdated
manylinux-x86_64-image = "manylinux2014"
manylinux-i686-image = "manylinux2014"
skip = "pp* cp36* cp37* cp38* *musllinux*"
skip = "pp* cp36* cp37* cp38* *musllinux* cp??t-*"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'd need cp???t-* really, I think? The first valid match is cp313t-*, presumably.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, yes, I meant cp3??t-*. I was trying to copy the suggestion in the documentation here.

@jakelishman
Copy link
Member

Ignoring the GPU builds: the trouble with Python 3.14 looks like Numpy upped their minimum supported glibc to 2.27 in Numpy 2.3, which is also the first Numpy to have 3.14 wheels. We're still implicitly building against glibc 2.17 because of the manylinux2014 image, so I guess we'll need to update our build image.

We can potentially update the build image only for Python 3.14, since Aer wouldn't be installable (other than from-source builds of Numpy) on glibc 2.17 anyway, or skip the tests on 3.14 only. There's definitely options, but I'll take the question about the manylinux/glibc version over to Qiskit proper.

@wshanks
Copy link
Contributor Author

wshanks commented Nov 5, 2025

Okay, that sounds good. At least from the logs we have now it looks like the gpu builds worked okay and just ran into the same numpy issue as the cpu build.

@wshanks
Copy link
Contributor Author

wshanks commented Nov 5, 2025

It is maybe worth also checking if it is okay to drop Python 3.9 now. 3.13 is also used to install cibuildwheel. I didn't bump that to 3.14 but that would probably be fine.

@jakelishman
Copy link
Member

It's fine to drop Python 3.9 in a new Aer release - Qiskit is in the process of dropping it (Qiskit/qiskit#15139), it's just that we have some backwards-compat tests that need a rework before we can do it completely. It'll be gone in Qiskit 2.3.

@wshanks
Copy link
Contributor Author

wshanks commented Nov 6, 2025

It looks like everything is okay moving up from Python 3.9 though we need to update the required checks in the repo settings.

We need to add a release note as well but I will wait to hear what the decision is about numpy and the build image before pushing again since it triggers so much CI time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need binary distribution on PyPI for Python 3.14

2 participants