Skip to content

Add Python 3.15 support, bump uv to 0.13.0 and release 2.1.11 - #397

Merged
karrmagadgeteer2 merged 3 commits into
masterfrom
feature/python-3.15
Oct 13, 2026
Merged

karrmagadgeteer2 merged 3 commits into
masterfrom
feature/python-3.15

Conversation

@karrmagadgeteer2

Copy link
Copy Markdown
Collaborator

Summary

Adds support for Python 3.15, updates pinned tooling (uv 0.13.0 among others) and bumps the package version to 2.1.11. There are no changes to the library code or its public API.

Python 3.15 support

  • requires-python widened from >=3.11,<3.15 to >=3.11,<3.16, and the Programming Language :: Python :: 3.15 classifier added.
  • 3.15 added to the Windows, Ubuntu and macOS matrices in build.yml.
  • installation.rst now lists 3.11–3.15 as supported.
  • The default development Python stays 3.14 (.python-version, pre-commit, Read the Docs).
  • test_version_alignment.py no longer requires the default Python to be the newest supported version. It now checks that .python-version is one of the supported versions and that the pre-commit and Read the Docs pins match it.
  • test_package.py updated for the new Requires-Python value.

Note: on 3.15, pydantic-core, markupsafe and pyyaml don't publish ready-made binary wheels yet, so installing compiles them from source. pydantic-core needs a Rust toolchain to compile.

Tooling updates

Tool From To
uv (Makefile, make.ps1, pre-commit, all workflows, docs) 0.12.10 0.13.0
mypy (pyproject, pre-commit, docs) 2.3.1 2.4.0
zizmor (run-zizmor.sh, zizmor.yml) 1.30.0 1.30.1
astral-sh/setup-uv v10.2.0 v10.3.0
github/codeql-action v4.38.2 v4.38.3
google/osv-scanner-action v2.6.0 v2.7.0
actions/upload-artifact v7.0.1 v7.0.2
actions/download-artifact v8.0.1 v8.0.2

Actions remain pinned by commit SHA. The stale ruff version in installation.rst is updated to match the existing 0.17.0 pin. uv.lock is refreshed with make update.

Version

Package version bumped from 2.1.10 to 2.1.11, following the precedent set when Python 3.14 support was added in 2.0.1.

- Allow Python 3.15 (requires-python >=3.11,<3.16), add classifier,
  CI build matrices and installation docs. Default Python stays 3.14.
- Relax version alignment test so .python-version may be any supported
  version rather than the newest one.
- Bump uv 0.12.10 -> 0.13.0 across Makefile, make.ps1, pre-commit,
  workflows and docs.
- Bump mypy 2.3.1 -> 2.4.0, zizmor 1.30.0 -> 1.30.1 and pinned actions
  (setup-uv, codeql-action, osv-scanner-action, upload/download-artifact).
- Set package version to 2.1.11.
The tests invoked /usr/bin/env, which does not exist on Windows, so all
four failed with FileNotFoundError on every Windows build. Locate bash on
PATH instead, and add .gitattributes to keep shell scripts LF-terminated
on Windows checkouts.
Four to_xlsx tests wrote and deleted the same trial.xlsx file. Under
pytest-xdist they can run concurrently, so one test could delete the file
another had just written, as seen in a macOS 3.14 build.
@karrmagadgeteer2
karrmagadgeteer2 merged commit eddd2b1 into master Oct 13, 2026
25 of 32 checks passed
@karrmagadgeteer2
karrmagadgeteer2 deleted the feature/python-3.15 branch October 13, 2026 13:52
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.

1 participant