From c5071a1ddd20cf47631e5c39b051270d8650276d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Wed, 8 Oct 2025 11:12:33 -0700 Subject: [PATCH] Add support for 3.14 and drop 3.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bernát Gábor --- .github/{FUNDING.yml => FUNDING.yaml} | 0 .github/{dependabot.yml => dependabot.yaml} | 0 .github/{release.yml => release.yaml} | 0 .github/workflows/check.yaml | 7 ++++--- .github/workflows/release.yaml | 2 +- .pre-commit-config.yaml | 6 +++--- pyproject.toml | 17 ++++++++--------- tox.ini | 19 ++++++++++--------- 8 files changed, 26 insertions(+), 25 deletions(-) rename .github/{FUNDING.yml => FUNDING.yaml} (100%) rename .github/{dependabot.yml => dependabot.yaml} (100%) rename .github/{release.yml => release.yaml} (100%) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yaml similarity index 100% rename from .github/FUNDING.yml rename to .github/FUNDING.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yaml similarity index 100% rename from .github/dependabot.yml rename to .github/dependabot.yaml diff --git a/.github/release.yml b/.github/release.yaml similarity index 100% rename from .github/release.yml rename to .github/release.yaml diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 2e8b0df..b98dfab 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -19,10 +19,11 @@ jobs: fail-fast: false matrix: env: + - "3.14t" + - "3.14" - "3.13" - "3.12" - "3.11" - - "3.10" - type - dev - pkg_meta @@ -37,9 +38,9 @@ jobs: cache-dependency-glob: "pyproject.toml" github-token: ${{ secrets.GITHUB_TOKEN }} - name: Install tox - run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv + run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv - name: Install Python - if: startsWith(matrix.env, '3.') && matrix.env != '3.13' + if: startsWith(matrix.env, '3.') && matrix.env != '3.14' run: uv python install --python-preference only-managed ${{ matrix.env }} - name: Setup test suite run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c338a00..9277e17 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,7 +20,7 @@ jobs: cache-dependency-glob: "pyproject.toml" github-token: ${{ secrets.GITHUB_TOKEN }} - name: Build package - run: uv build --python 3.13 --python-preference only-managed --sdist --wheel . --out-dir dist + run: uv build --python 3.14 --python-preference only-managed --sdist --wheel . --out-dir dist - name: Store the distribution packages uses: actions/upload-artifact@v4 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 837c801..e82d5bf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,18 +13,18 @@ repos: rev: v2.4.1 hooks: - id: codespell - additional_dependencies: ["tomli>=2.0.1"] + additional_dependencies: ["tomli>=2.2.1"] - repo: https://github.com/tox-dev/tox-ini-fmt rev: "1.6.0" hooks: - id: tox-ini-fmt args: ["-p", "fix"] - repo: https://github.com/tox-dev/pyproject-fmt - rev: "v2.7.0" + rev: "v2.8.0" hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.13.3" + rev: "v0.14.0" hooks: - id: ruff-format - id: ruff diff --git a/pyproject.toml b/pyproject.toml index 8a2a445..f760b4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] build-backend = "hatchling.build" requires = [ - "hatch-vcs>=0.4", - "hatchling>=1.25", + "hatch-vcs>=0.5", + "hatchling>=1.27", ] [project] @@ -17,7 +17,7 @@ license = "MIT" maintainers = [ { name = "Bernat Gabor", email = "gaborjbernat@gmail.com" }, ] # noqa: E999 -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", @@ -27,10 +27,10 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "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 :: Documentation", "Topic :: Documentation :: Sphinx", @@ -39,13 +39,13 @@ dynamic = [ "version", ] dependencies = [ - "sphinx>=8.0.2", + "sphinx>=8.2.3", ] optional-dependencies.testing = [ "covdefaults>=2.3", "defusedxml>=0.7.1", # needed for sphinx.testing - "pytest>=8.3.2", - "pytest-cov>=5", + "pytest>=8.4.2", + "pytest-cov>=7", ] urls.Documentation = "https://github.com/tox-dev/sphinx-argparse-cli#sphinx-argparse-cli" urls.Homepage = "https://github.com/tox-dev/sphinx-argparse-cli" @@ -109,7 +109,7 @@ builtin = "clear,usage,en-GB_to_en-US" count = true [tool.pyproject-fmt] -max_supported_python = "3.13" +max_supported_python = "3.14" [tool.coverage] html.show_contexts = true @@ -119,7 +119,6 @@ paths.source = [ "**/site-packages", ] report.fail_under = 76 -run.dynamic_context = "test_function" run.parallel = true run.plugins = [ "covdefaults", diff --git a/tox.ini b/tox.ini index 0c9195d..a570bfc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,15 @@ [tox] requires = - tox>=4.2 - tox-uv>=1.11.3 + tox>=4.30.2 + tox-uv>=1.28 env_list = fix + 3.14 3.13 3.12 3.11 - 3.10 type + 3.14t pkg_meta skip_missing_interpreters = true @@ -34,15 +35,15 @@ commands = description = format the code base to adhere to our styles, and complain about what we cannot do automatically skip_install = true deps = - pre-commit-uv>=4.1.1 + pre-commit-uv>=4.1.5 commands = pre-commit run --all-files --show-diff-on-failure [testenv:type] description = run type check on code base deps = - mypy==1.11.2 - types-docutils>=0.21.0.20240907 + mypy==1.18.2 + types-docutils>=0.22.2.20250924 commands = mypy src tests {posargs} @@ -50,9 +51,9 @@ commands = description = check that the long description is valid skip_install = true deps = - check-wheel-contents>=0.6 - twine>=5.1.1 - uv>=0.4.10 + check-wheel-contents>=0.6.3 + twine>=6.2 + uv>=0.8.22 commands = uv build --sdist --wheel --out-dir {env_tmp_dir} . twine check {env_tmp_dir}{/}*