diff --git a/.github/workflows/reusable-pytest.yml b/.github/workflows/reusable-pytest.yml index a66d3312..7dea67cc 100644 --- a/.github/workflows/reusable-pytest.yml +++ b/.github/workflows/reusable-pytest.yml @@ -18,6 +18,7 @@ jobs: - "pypy-3.7" - "pypy-3.8" - "pypy-3.9" + - "3.12" - "3.11" - "3.10" - "3.9" @@ -46,6 +47,7 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ matrix.py }} + allow-prereleases: true - name: Pick environment to run run: | diff --git a/pyproject.toml b/pyproject.toml index 668b8292..ca2338e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] @@ -56,7 +57,9 @@ test = [ "pytest-xdist >= 1.34", "wheel >= 0.36.0", 'setuptools >= 42.0.0; python_version < "3.10"', - 'setuptools >= 56.0.0; python_version >= "3.10"', + 'setuptools >= 56.0.0; python_version == "3.10"', + 'setuptools >= 56.0.0; python_version == "3.11"', + 'setuptools >= 67.8.0; python_version >= "3.12"', ] typing = [ "importlib-metadata >= 5.1", @@ -112,6 +115,7 @@ filterwarnings = [ "error", "ignore:path is deprecated.:DeprecationWarning", "ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning", + "ignore:Python 3.14 will, by default, filter extracted tar archives:DeprecationWarning", ] [tool.mypy] diff --git a/tests/constraints.txt b/tests/constraints.txt index d9148403..ee7ad5f9 100644 --- a/tests/constraints.txt +++ b/tests/constraints.txt @@ -2,7 +2,9 @@ importlib-metadata==0.22 packaging==19.0 pyproject_hooks==1.0 setuptools==42.0.0; python_version < "3.10" -setuptools==56.0.0; python_version >= "3.10" +setuptools==56.0.0; python_version == "3.10" +setuptools==56.0.0; python_version == "3.11" +setuptools==67.8.0; python_version >= "3.12" tomli==1.1.0 virtualenv==20.0.35 wheel==0.36.0 diff --git a/tox.ini b/tox.ini index 159d8b45..607f851f 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ envlist = type docs path - {py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}{, -min} + {py312, py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}{, -min} isolated_build = true skip_missing_interpreters = true minversion = 3.14 @@ -60,7 +60,7 @@ setenv = commands = mypy -[testenv:{py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}-min] +[testenv:{py312, py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}-min] description = check minimum versions required of all dependencies skip_install = true commands_pre = @@ -103,4 +103,4 @@ commands = coverage xml -o {toxworkdir}/coverage.xml -i coverage html -d {toxworkdir}/htmlcov -i python -m diff_cover.diff_cover_tool --compare-branch {env:DIFF_AGAINST:origin/main} {toxworkdir}/coverage.xml -depends = {py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}{,-min}, path +depends = {py312, py311, py310, py39, py38, py37, pypy37, pypy38, pypy39}{,-min}, path