From 77c40725558a1e69c4a136151e9ed319c615553b Mon Sep 17 00:00:00 2001 From: Andy B Date: Wed, 29 Jul 2026 18:38:08 +0300 Subject: [PATCH] Extend Python support through 3.14 and test it in CI requires-python capped compatibility at <3.14 and classifiers only listed 3.10, but CI only ever exercised 3.10 - no signal on whether newer interpreters actually work. Verified locally before making this change: the full test suite (unit, not slow/gpu/teklia) passes unmodified on 3.13, and a fresh dependency resolution + test run also passes on 3.14 (all heavy deps - torch, transformers, ultralytics - already ship wheels for it). No source changes were needed. Raise the cap to <3.15, list 3.11-3.14 in classifiers, and test 3.10/3.12/3.14 in the CI matrix as representative spread instead of just the floor version. Also pin uv sync to the matrix Python version explicitly: uv python install puts that interpreter on the runner, but uv sync --all-extras --dev had no --python flag, so uv picked whichever installed interpreter it considers newest/preferred - not necessarily the one the matrix job asked for. Confirmed locally: with 3.10/3.12/3.13/3.14 all present, a bare `uv sync` resolved to 3.13 even right after `uv python install 3.10`. Harmless while the matrix only ever ran one version, but now that tests.yml runs 3.10/3.12/3.14 in parallel, every leg could silently end up testing the same interpreter without this. Co-Authored-By: Claude Sonnet 5 --- .github/actions/uv/action.yml | 2 +- .github/workflows/tests.yml | 2 +- pyproject.toml | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/actions/uv/action.yml b/.github/actions/uv/action.yml index 689ae69..502eea9 100644 --- a/.github/actions/uv/action.yml +++ b/.github/actions/uv/action.yml @@ -19,6 +19,6 @@ runs: shell: bash - name: Install project dependencies - run: uv sync --all-extras --dev + run: uv sync --all-extras --dev --python ${{ inputs.python-version }} shell: bash diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5f834c0..71a9243 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10"] + python-version: ["3.10", "3.12", "3.14"] steps: - uses: actions/checkout@v2 diff --git a/pyproject.toml b/pyproject.toml index 621d955..ed4cbd4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,10 +11,14 @@ classifiers = [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" dependencies = [ "jinja2 >= 3.1.5",