Repository navigation
Add Python 3.15 to the test workflow #259
Description
Activity
- added a commit that references this issue
on Jul 12, 2026 Step 1 is running on the 2.0 branch (#288, commit
a2d88ea): CI now includes a 3.15 pre-release job (allow-prereleases: true), non-blocking viacontinue-on-errorso a beta regression can't turn the branch red while 2.0 is being built.Current status: 3.15.0b3 is fully green — the complete suite, mypy, ruff, sdist build, twine check, and both Sphinx builds all pass, verified both locally and in CI.
Setting this up surfaced a pre-existing bug worth recording here: the matrix was decorative.
uv synchonors the repo's.python-versionfile over the interpreteractions/setup-pythonprovides, so every matrix job was silently testing the same Python (3.11 on the 2.0 branch — "build (3.14)" ran the suite on CPython 3.11.15, confirmed in the run logs). A job-levelUV_PYTHON: ${{ matrix.python-version }}makes the matrix real; the same fix is needed on master, where all jobs currently test 3.10 (will land separately).Remaining (step 2, when 3.15 goes final 2026-10-01): flip the job to blocking, add the
Programming Language :: Python :: 3.15classifier — pairing with #257's floor bump, which is already on the 2.0 branch.Step 1 shipped in 2.0.0: 3.15 runs non-blocking with
allow-prereleases(plus theUV_PYTHONfix so the matrix interpreter is actually used). Retargeting to v2.1 for step 2 — promote to blocking and add the 3.15 classifier when 3.15 goes final (October 2026).also consider wether we should use 3.15 for generating coverage for codecov
- added a commit that references this issue
on Oct 11, 2026
Python 3.15.0 final is scheduled for 2026-10-01 (PEP 790; rc1 2026-08-04).
actions/setup-pythonalready carries pre-release builds (3.15.0-beta.3as of July 2026), so the workflow can start testing it any time.Two-step plan, whichever release picks this up:
Now-ish (any release): add a non-blocking pre-release job to
python-package.ymlso interpreter breakage surfaces early:with
continue-on-error: trueon the matrix entry so a beta-only failure warns without blocking merges.After 3.15.0 final (October 2026): promote it to a regular blocking matrix entry, add the
Programming Language :: Python :: 3.15classifier, and dropcontinue-on-error.Timing note: 3.15 final and Python 3.10 EOL land the same month, so if this coincides with 2.0, step 2 and the #257 floor bump (
>=3.11) are one release-prep item — the supported window becomes exactly 3.11–3.15.No milestone yet — undecided which release takes it.