diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 40da9fb2..7a3c535a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,13 +26,13 @@ jobs: os: - ubuntu-latest python-version: - ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", pypy3.11] + ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15", "3.15t", pypy3.11] include: # Windows: Test lowest and highest supported Python versions - os: windows-latest python-version: "3.10" - os: windows-latest - python-version: "3.14" + python-version: "3.15" env: # Select the tox envs for this matrix entry (see `[gh]` in `tox.ini`). @@ -54,7 +54,7 @@ jobs: requirements-ci.txt - name: Install tox - run: uv tool install --python 3.14 --with-requirements requirements-ci.txt tox + run: uv tool install --python 3.15 --with-requirements requirements-ci.txt tox - name: Setup test suite run: tox run -v --notest --skip-missing-interpreters false diff --git a/CHANGELOG.md b/CHANGELOG.md index e5f25414..71c9740d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added + +- Add support for Python 3.15. + ### Fixed - Fix a package build deprecation warning caused by a non-string `license` value in `pyproject.toml` by [@kurtmckee] in [#648] diff --git a/pyproject.toml b/pyproject.toml index 1619e9d4..7dc2a711 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Programming Language :: Python :: Implementation :: PyPy", "Intended Audience :: Developers", "Intended Audience :: System Administrators", diff --git a/tox.ini b/tox.ini index 7ce8f0c8..1f49dc26 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = lint,py{310,311,312,313,314,314t},pypy3,manifest,coverage-report +envlist = lint,py{310,311,312,313,314,315,315t},pypy3,manifest,coverage-report [gh] python = @@ -8,7 +8,8 @@ python = 3.12 = py312 3.13 = py313, lint, manifest 3.14 = py314 - 3.14t = py314t + 3.15 = py315 + 3.15t = py315t pypy3.11 = pypy3 [testenv] @@ -16,11 +17,11 @@ deps = pytest pytest-cov click - py{310,311,312,313,314,314t},pypy3: ipython + py{310,311,312,313,314,315,315t},pypy3: ipython commands = pytest --cov --cov-report=term-missing {posargs} depends = - py{310,311,312,313,314,314t},pypy3: coverage-clean - coverage-report: py{310,311,312,313,314,314t},pypy3 + py{310,311,312,313,314,315,315t},pypy3: coverage-clean + coverage-report: py{310,311,312,313,314,315,315t},pypy3 [testenv:pypy3] base_python = pypy3.11 @@ -33,6 +34,7 @@ deps = commands = ruff check src tests ruff format --check src tests + mypy --python-version=3.15 src tests mypy --python-version=3.14 src tests mypy --python-version=3.13 src tests mypy --python-version=3.12 src tests