diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index 9762d018..0bc5eb87 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -193,27 +193,26 @@ jobs: strategy: matrix: os: ["ubuntu-latest"] - python-version: ["3.7", "3.9", "3.10", "3.11"] + python-version: ["3.9", "3.10", "3.11"] twisted-version: ["21.2", "22.1", "23.8"] tox-prefix: ["coverage"] optional: [false] include: - os: "ubuntu-latest" - python-version: "pypy-3.8" + python-version: "pypy-3.9" twisted-version: "23.8" tox-prefix: "test" optional: false - os: "ubuntu-latest" - python-version: "pypy-3.9" + python-version: "3.12.0" twisted-version: "23.8" tox-prefix: "test" optional: false - # Test Python 3.12 but allow it to fail - os: "ubuntu-latest" - python-version: "3.12.0" - twisted-version: "23.8" + python-version: "3.13.0" + twisted-version: "24.10" tox-prefix: "test" - optional: true + optional: false steps: diff --git a/requirements/tox-pin-base.txt b/requirements/tox-pin-base.txt index e73c3339..b672ca48 100644 --- a/requirements/tox-pin-base.txt +++ b/requirements/tox-pin-base.txt @@ -1,5 +1,6 @@ attrs==24.2.0 -Automat==22.10.0 +Automat==22.10.0; python_version < '3.13' +Automat==24.8.1; python_version >= '3.13' characteristic==14.3.0 constantly==15.1.0 hyperlink==21.0.0 @@ -10,4 +11,5 @@ six==1.16.0 Tubes==0.2.1 Werkzeug==3.0.1; python_version > '3.7' Werkzeug==2.1.2; python_version <= '3.7' -zope.interface==6.2 +zope.interface==6.2; python_version < '3.13' +zope.interface==7.0.3; python_version >= '3.13' diff --git a/requirements/tox-tests.txt b/requirements/tox-tests.txt index 06fb23aa..8bebefe0 100644 --- a/requirements/tox-tests.txt +++ b/requirements/tox-tests.txt @@ -1,2 +1,3 @@ idna==3.6 -treq==22.2.0 +treq==22.2.0; python_version < '3.13' +treq==24.9.1; python_version >= '3.13' diff --git a/setup.py b/setup.py index deeab3bd..5348d138 100644 --- a/setup.py +++ b/setup.py @@ -12,11 +12,11 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", - "Programming Language :: Python :: 3.7", - "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", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", @@ -25,7 +25,7 @@ description="werkzeug + twisted.web", long_description=long_description, long_description_content_type="text/x-rst", - python_requires=">=3.7", + python_requires=">=3.9", setup_requires=["incremental"], use_incremental=True, install_requires=[ diff --git a/tox.ini b/tox.ini index 29d1b90c..35537985 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,7 @@ envlist = lint, mypy - coverage-py{38,39,310,311,312,py3}-tw{212,221,238,trunk} - coverage-py37-tw{212,221,238} + coverage-py{39,310,311,312,313,py3}-tw{212,221,238,2410,trunk} coverage_report docs, docs-linkcheck packaging @@ -18,6 +17,8 @@ basepython = python3.11 deps = tw212: Twisted==21.2.0 tw221: Twisted==22.1.0 + tw238: Twisted==23.8.0 + tw2410: Twisted==24.10.0 twcurrent: Twisted # See https://github.com/twisted/klein/issues/486 twtrunk: --use-deprecated=legacy-resolver @@ -51,6 +52,7 @@ basepython = py310: python3.10 py311: python3.11 py312: python3.12 + py313: python3.13 pypy3: pypy3 pypy38: pypy3.8 pypy39: pypy3.9