Skip to content

CI config for CPython 3.15 support - #252

Merged
ogrisel merged 8 commits into
joblib:masterfrom
ogrisel:cursor/support-python-3.15-fbff
Sep 18, 2026
Merged

ogrisel merged 8 commits into
joblib:masterfrom
ogrisel:cursor/support-python-3.15-fbff

Conversation

@ogrisel

@ogrisel ogrisel commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Fixes #251.

This also includes a free-threading build.

The package metadata are updated to advertise Python 3.14 and Python 3.15 support.

cursoragent and others added 6 commits September 18, 2026 10:01
Declare 3.14 and 3.15 in package classifiers and add dedicated pip CI
jobs so 3.15 stays covered once a newer Python becomes conda-forge's
latest. No library code changes were required.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Add Linux and Windows pip jobs that install conda-forge's
python-freethreading interpreter with PYTHON_GIL=0. Mark the OpenMP
Cython test helpers as free-threading compatible so importing them does
not re-enable the GIL under pytest -W error.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Rename the 3.15 pip jobs to pyrc_pip and pyrc_ft_pip. Enable
conda-forge/label/python_rc so python=3.15 can resolve, select
python-gil or python-freethreading, and keep numpy/scipy on pip.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
joblib#250 already marks the OpenMP test helpers as free-threading
compatible in the pyx files, so restore the setup scripts to the
plain compiler_directives dicts. Use FREETHREADING=1 for the RC
free-threaded jobs to match the existing 3.14 CI flag.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Drop the Windows pyrc_pip and pyrc_ft_pip matrix entries so the
conda-forge Python RC coverage stays on ubuntu-latest.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
The matrix keys become job-wide env vars, so PYTHON_GIL=0 also applied
to the GIL-enabled base conda interpreter and aborted the Setup conda
step. The free-threaded build already runs with the GIL disabled, and
run_tests.sh asserts that.

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
@ogrisel
ogrisel marked this pull request as ready for review September 18, 2026 13:11
@ogrisel

ogrisel commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

@itamarst the free-threading CPython 3.15 runs seems to pass as intended:

tests/test_threadpoolctl.py::test_controller_parallelism_no_deadlocks PASSED [ 98%]
tests/test_threadpoolctl.py::test_linux_does_not_import_ctypes_util SKIPPED [100%]

Comment thread CHANGES.md Outdated
Comment thread .github/workflows/test.yml
Comment thread .github/workflows/test.yml
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
@ogrisel
ogrisel merged commit 5dc02cb into joblib:master Sep 18, 2026
26 checks passed
@ogrisel
ogrisel deleted the cursor/support-python-3.15-fbff branch September 18, 2026 16:38
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.

Support Python 3.15

2 participants