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.yaml b/.github/release.yaml new file mode 100644 index 0000000..5f89818 --- /dev/null +++ b/.github/release.yaml @@ -0,0 +1,5 @@ +changelog: + exclude: + authors: + - dependabot[bot] + - pre-commit-ci[bot] diff --git a/.github/release.yml b/.github/release.yml deleted file mode 100644 index 9d1e098..0000000 --- a/.github/release.yml +++ /dev/null @@ -1,5 +0,0 @@ -changelog: - exclude: - authors: - - dependabot - - pre-commit-ci diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 36916d7..fcbfa0d 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -19,12 +19,11 @@ jobs: fail-fast: false matrix: env: + - "3.14" - "3.13" - "3.12" - "3.11" - "3.10" - - "3.9" - - "3.8" - type - dev - pkg_meta @@ -39,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 d794102..c6ea137 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..4282e87 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.10.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 9bc9391..daea94f 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] @@ -23,7 +23,7 @@ maintainers = [ authors = [ { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }, ] -requires-python = ">=3.8" +requires-python = ">=3.10" classifiers = [ "Development Status :: 5 - Production/Stable", "Framework :: tox", @@ -33,8 +33,6 @@ classifiers = [ "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -47,15 +45,15 @@ dynamic = [ "version", ] dependencies = [ - "devpi-client>=7.1", - "devpi-server>=6.12.1", - "typing-extensions>=4.12.2; python_version<'3.11'", + "devpi-client>=7.2", + "devpi-server>=6.17", + "typing-extensions>=4.15; python_version<'3.11'", ] optional-dependencies.testing = [ "covdefaults>=2.3", - "httpx>=0.27.2", - "pytest>=8.3.2", - "pytest-cov>=5", + "httpx>=0.28.1", + "pytest>=8.4.2", + "pytest-cov>=7", ] urls.Homepage = "https://github.com/tox-dev/devpi-process#readme" urls.Source = "https://github.com/tox-dev/devpi-process" @@ -69,7 +67,6 @@ version.source = "vcs" line-length = 120 [tool.ruff] -target-version = "py38" line-length = 120 format.preview = true format.docstring-code-line-length = 100 @@ -78,7 +75,6 @@ lint.select = [ "ALL", ] lint.ignore = [ - "ANN101", # no type annotation for self "ANN401", # allow Any as type annotation "COM812", # Conflict with formatter "CPY", # No copyright statements diff --git a/src/devpi_process/__init__.py b/src/devpi_process/__init__.py index 050bedc..0451c49 100644 --- a/src/devpi_process/__init__.py +++ b/src/devpi_process/__init__.py @@ -11,11 +11,12 @@ from pathlib import Path from subprocess import PIPE, Popen, run # noqa: S404 from threading import Thread -from typing import IO, TYPE_CHECKING, Iterator, Sequence, cast +from typing import IO, TYPE_CHECKING, cast from ._version import __version__ if TYPE_CHECKING: + from collections.abc import Iterator, Sequence from types import TracebackType if sys.version_info >= (3, 11): # pragma: no cover (py311+) diff --git a/tox.ini b/tox.ini index 80d1399..9623fe2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,14 @@ [tox] requires = - tox>=4.2 - tox-uv>=1.11.3 + tox>=4.30.3 + tox-uv>=1.28 env_list = fix + 3.14 3.13 3.12 3.11 3.10 - 3.9 - 3.8 type pkg_meta skip_missing_interpreters = true @@ -37,14 +36,14 @@ 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 + mypy==1.18.2 commands = mypy src mypy tests @@ -53,9 +52,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}{/}*