diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 77d4cd00..72af2347 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -51,7 +51,7 @@ jobs: ${{ runner.os }}-pip-docs- ${{ runner.os }}-pip- - - run: python -m pip install tox + - run: python -m pip install 'tox<4' - run: tox -q -e docs @@ -63,15 +63,35 @@ jobs: continue-on-error: ${{ matrix.experimental }} strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "pypy-3.8", "pypy-3.9"] + # Python versions common to lowest and latest + python-version: ["3.8", "3.9", "3.10", "pypy-3.9"] twisted-version: ["lowest", "latest"] experimental: [false] include: - - python-version: "3.8" - twisted-version: "trunk" - experimental: true + # Pythons too old for latest + - python-version: "3.7" + twisted-version: "lowest" + experimental: false + + - python-version: "pypy-3.8" + twisted-version: "lowest" + experimental: false + + # Pythons too new for lowest + - python-version: "3.11" + twisted-version: "latest" + experimental: false + + - python-version: "3.12" + twisted-version: "latest" + experimental: false + + - python-version: "pypy-3.10" + twisted-version: "latest" + experimental: false + # Experimental trunk build - python-version: "3.9" twisted-version: "trunk" experimental: true @@ -101,8 +121,11 @@ jobs: "3.8": "py38", "3.9": "py39", "3.10": "py310", + "3.11": "py311", + "3.12": "py312", "pypy-3.8": "pypy3", "pypy-3.9": "pypy3", + "pypy-3.10": "pypy3", } factor = table["${{ matrix.python-version }}"] print("::set-output name=value::" + factor) diff --git a/changelog.d/364.feature.rst b/changelog.d/364.feature.rst new file mode 100644 index 00000000..e7f26571 --- /dev/null +++ b/changelog.d/364.feature.rst @@ -0,0 +1 @@ +Python 3.11 is now supported. diff --git a/changelog.d/374.feature.rst b/changelog.d/374.feature.rst new file mode 100644 index 00000000..573b64eb --- /dev/null +++ b/changelog.d/374.feature.rst @@ -0,0 +1 @@ +PyPy 3.10 is now supported. diff --git a/changelog.d/374.removal.rst b/changelog.d/374.removal.rst new file mode 100644 index 00000000..253961ca --- /dev/null +++ b/changelog.d/374.removal.rst @@ -0,0 +1,3 @@ +Support for PyPy 3.8, which has reached end of support, is deprecated. This is the last release with support for PyPy 3.8. + +The minimum supported Twisted version has increased to 22.10.0. Older versions are no longer tested in CI. diff --git a/setup.py b/setup.py index 83027633..fcf1891f 100644 --- a/setup.py +++ b/setup.py @@ -7,11 +7,11 @@ "Operating System :: OS Independent", "Framework :: Twisted", "Programming Language :: Python", - "Programming Language :: Python :: 3.6", - "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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] @@ -32,7 +32,7 @@ "incremental", "requests >= 2.1.0", "hyperlink >= 21.0.0", - "Twisted[tls] >= 18.7.0", + "Twisted[tls] >= 22.10.0", "attrs", ], extras_require={ diff --git a/tox.ini b/tox.ini index af9caddc..7d5eb933 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,8 @@ [tox] envlist = py37-twisted_lowest, - {pypy3,py37,py38,py39,py310}-twisted_latest, - {pypy3,py37,py38,py39,py310}-twisted_trunk, + {pypy3,py38,py39,py310,py311,py312}-twisted_latest, + {pypy3,py38,py39,py310,py311,py312}-twisted_trunk, twine, check-manifest, flake8, docs, coverage-report isolated_build = true @@ -11,7 +11,7 @@ extras = dev deps = coverage - twisted_lowest: Twisted==18.7.0 + twisted_lowest: Twisted==22.10.0 twisted_latest: Twisted twisted_trunk: https://github.com/twisted/twisted/archive/trunk.zip setenv = @@ -60,7 +60,7 @@ commands = sphinx-build -b html . html [testenv:coverage-report] -depends = pypy3,py37,py38,py39 +depends = pypy3,py37,py38,py39,py310,py311,py312 commands = coverage combine coverage report