-
-
Notifications
You must be signed in to change notification settings - Fork 51k
CI: Upgrade to free-threaded Python 3.14t #15104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 6 commits
a9fc9e3
265c8a7
53d6a74
981259c
c12f697
09d228b
64e8e32
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -18,10 +18,8 @@ dependencies = [ | |||||
| "lxml>=6", | ||||||
| "matplotlib>=3.9.3", | ||||||
| "numpy>=2.1.3", | ||||||
| "opencv-python>=4.10.0.84", | ||||||
| "pandas>=2.3.3", | ||||||
| "pillow>=11.3", | ||||||
| "qiskit>=2", | ||||||
| "rich>=13.9.4", | ||||||
| "scikit-learn>=1.5.2", | ||||||
| "scipy>=1.16.2", | ||||||
|
|
@@ -42,10 +40,27 @@ docs = [ | |||||
| "sphinx>=8.2", | ||||||
| "sphinx-autoapi>=3.4", | ||||||
| ] | ||||||
| # opencv-python has no free-threaded (cp314t) wheel yet and fails to build from | ||||||
| # source under 3.14t (CMake), which blocks `uv sync` for every job. Keep it in an | ||||||
| # optional group so the free-threaded CI can install everything else and actually | ||||||
| # run pytest-run-parallel on the pure-Python algorithms. Re-fold into core deps | ||||||
| # once a cp314t wheel ships (upstream: opencv/opencv#27933). | ||||||
| cv = [ | ||||||
| "opencv-python>=4.10.0.84", | ||||||
| ] | ||||||
| euler-validate = [ | ||||||
| "httpx>=0.28.1", | ||||||
| "numpy>=2.1.3", | ||||||
| ] | ||||||
| # qiskit does not yet run on free-threaded CPython: its compiled core re-enables | ||||||
| # the GIL under 3.14t and the team is still scoping free-threading support | ||||||
| # (upstream: Qiskit/qiskit#16893). Keep it in an optional group so the | ||||||
| # free-threaded CI can install everything else; only quantum/q_fourier_transform.py | ||||||
| # imports it, and that file is ignored in the 3.14t test run. Re-fold into core | ||||||
| # deps once qiskit supports free-threading. | ||||||
| quantum = [ | ||||||
| "qiskit>=2", | ||||||
| ] | ||||||
|
|
||||||
| [tool.ruff] | ||||||
| target-version = "py314" | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
and restore
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Both of these turn out to be blocked by tooling constraints rather than choices, so I left them as-is — details below in case it's useful:
If you'd rather single-source it across the 4 workflows anyway, I'm happy to un-ignore
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice detective work!! Please un-ignore .python-version, pin it to 3.14t, and switch them all to python-version-file: .python-version. Also, we should declare that we are free-threaded beta https://py-free-threading.github.io/porting/#define-and-document-thread-safety-guarantees |
||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's make this change in all workflows that use
actions/setup-python.This will make the diffs smaller in PRs like this one and: