Commit Graph
2 Commits
Author SHA1 Message Date
Christian Clauss f4ae2319fe python3.15t 2026-09-08 10:30:18 +02:00
priya-sundaram-devandpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> 7421e02e05 CI: try free-threaded Python 3.14t (DRAFT — documenting failures) (#15104)
* ci: switch default Python to free-threaded 3.14t

Change the interpreter used across CI workflows from 3.14 to the
free-threaded build 3.14t to surface which dependencies and tests are
not yet free-threading compatible. Opened as DRAFT for documentation
purposes per maintainer request (#15081).

* ci(3.14t): gate opencv-python into optional 'cv' group + skip cv2 files

opencv-python has no cp314t wheel yet and fails to build from source under
free-threaded 3.14t (CMake), blocking uv sync for every job. Move it to an
optional [dependency-groups] cv group so the ft CI installs everything else
and runs pytest-run-parallel on the pure-Python algorithms. Skip the 20 files
that import cv2 (computer_vision augmentations, data_compression PSNR, and the
mostly-cv2 digital_image_processing/ tree). Re-fold once a cp314t wheel ships
(upstream: opencv/opencv#27933).

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ci(3.14t): add --ignore-gil-enabled so sklearn/xgboost imports don't abort the run

* ci(3.14t): gate qiskit into an optional group like opencv

qiskit re-enables the GIL under free-threaded CPython and the team is still scoping free-threading support (Qiskit/qiskit#16893), so move it out of the core deps into an optional 'quantum' group and ignore the one algorithm that imports it (quantum/q_fourier_transform.py) in the 3.14t test run. Mirrors the existing opencv 'cv' carve-out. Per cclauss: default all workflows to 3.14t except tests depending on OpenCV or Qiskit.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ci: single-source 3.14t via .python-version; declare Free Threading :: 2 - Beta

Un-ignore .python-version and pin it to 3.14t, then point all four
workflows at python-version-file: .python-version so the free-threaded
interpreter is selected from one place. Also add the
'Programming Language :: Python :: Free Threading :: 2 - Beta' trove
classifier to document our free-threaded support status per
https://py-free-threading.github.io/porting/#define-and-document-thread-safety-guarantees

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-08-31 21:29:58 +02:00