From 633cdd40577ca47ba7ad3b20308f116206fb48fc Mon Sep 17 00:00:00 2001 From: olen Date: Thu, 14 May 2026 15:47:33 +0200 Subject: [PATCH] ci: drop Python 3.10 from CI matrix and minimum supported version (#240) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python 3.10 reaches end-of-life in October 2026 (~5 months out from today, 2026-05-14). Drop it from both the CI matrix and the pyproject.toml floor in a single change so the package doesn't claim support for a version we no longer test. - python-package.yml: matrix is now ["3.11", "3.12", "3.13", "3.14"]. - pyproject.toml: python = ">=3.10" → ">=3.11", tool.ruff.target-version = "py310" → "py311". `ruff check --fix` produced no changes — the codebase was already using modern syntax (PEP 604 unions, `from __future__ import annotations`, etc.), so the target-version bump unlocks future rule additions without rewriting anything today. Side benefit: removes the smallest-window-of-wheel-availability risk on transient ruff/dependency releases (3.10 takes the longest to get wheels published for new versions; #241's CI flake earlier today showed this). Closes #240. --- .github/workflows/python-package.yml | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7953e2a..01279eb 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - name: Check out repository diff --git a/pyproject.toml b/pyproject.toml index e82af6b..f625499 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ readme = 'README.md' repository = 'https://github.com/Olen/Spond' [tool.poetry.dependencies] -python = ">=3.10" +python = ">=3.11" aiohttp = ">=3.8.5" [tool.poetry.group.dev.dependencies] @@ -25,7 +25,7 @@ ruff = ">=0.15.0" asyncio_default_fixture_loop_scope = "function" [tool.ruff] -target-version = "py310" # Ruff doesn't yet infer this from [tool.poetry.dependencies] +target-version = "py311" # Ruff doesn't yet infer this from [tool.poetry.dependencies] [tool.ruff.lint] select = [