From bbe2ddc196e871bb071c112b7738f22564987ed1 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Mon, 20 Apr 2026 07:37:28 +0200 Subject: [PATCH] chore: Drop Python 3.10, test on 3.13 and 3.14 Drop support for Python 3.10. Add 3.13 and 3.14 to test matrix. Add `include-hidden-files` flag to include `.coverage*` files in artifacts for global coverage reporting. Signed-off-by: Christian Heimes --- .github/workflows/ci.yaml | 8 +++++--- pyproject.toml | 9 +++++---- tox.ini | 11 ++++++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fe484c7..9f977ca 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,9 +16,10 @@ jobs: strategy: matrix: python: - - "3.10" - "3.11" - "3.12" + - "3.13" + - "3.14" platform: - "ubuntu-latest" @@ -49,6 +50,7 @@ jobs: with: name: coverage-${{ matrix.python }} path: .coverage.* + include-hidden-files: true if-no-files-found: ignore ruff: @@ -57,7 +59,7 @@ jobs: strategy: matrix: python: - - "3.12" + - "3.14" platform: - "ubuntu-latest" @@ -96,7 +98,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.12 + python-version: "3.14" cache: pip cache-dependency-path: | **/pyproject.toml diff --git a/pyproject.toml b/pyproject.toml index d7f8ef9..e0088fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,13 +22,14 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "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", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Utilities", ] -requires-python = ">=3.10" +requires-python = ">=3.11" dependencies = [ "pyelftools", ] @@ -78,7 +79,7 @@ exclude_lines = [ local_scheme = "no-local-version" [tool.ruff] -target-version = "py39" +target-version = "py311" line-length = 88 [tool.ruff.lint] @@ -103,7 +104,7 @@ select = [ known-first-party = ["elfdeps"] [tool.mypy] -python_version = "3.10" +python_version = "3.11" warn_return_any = true warn_unused_configs = true diff --git a/tox.ini b/tox.ini index 6295337..8084f9e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 [tox] -envlist=py3{10,11,12},lint,coverage-report +envlist=py3{11,12,13,14},lint,coverage-report [testenv] package = wheel @@ -10,14 +10,14 @@ extras = test set_env = COVERAGE_PROCESS_START={toxinidir}/pyproject.toml commands_pre = - py3{10,11,12}: {envpython} -c 'import pathlib; pathlib.Path("{env_site_packages_dir}/cov.pth").write_text("import coverage; coverage.process_startup()")' + py3{11,12,13,14}: {envpython} -c 'import pathlib; pathlib.Path("{env_site_packages_dir}/cov.pth").write_text("import coverage; coverage.process_startup()")' commands = coverage run -m pytest {posargs:tests} [testenv:coverage-report] description = Report coverage over all test runs. -basepython = py312 -depends = py3{10,11,12} +basepython = py314 +depends = py3{11,12,13,14} deps = coverage[toml] skip_install = true parallel_show_output = true @@ -50,6 +50,7 @@ skip_sdist = true [gh] python = + 3.14 = py314 + 3.13 = py313 3.12 = py312 3.11 = py311 - 3.10 = py310