From ae2da9e9249500dafd3082ec307b06313f949ee6 Mon Sep 17 00:00:00 2001 From: Tom Most Date: Thu, 2 Nov 2023 21:52:27 -0700 Subject: [PATCH] Update Twisted and Python support matrix Twisted 23.10.0 dropped support for Python 3.7 and added support for Python 3.12. Twisted 23.8.0 added support for Python 3.11 and drops support for PyPy <3.9. Twisted 22.10.0 is our new lower bound for twisted/twisted#11635. Python 3.11 and 3.12 now exist. --- .github/workflows/ci.yaml | 33 ++++++++++++++++++++++++++++----- changelog.d/364.feature.rst | 1 + changelog.d/374.feature.rst | 1 + changelog.d/374.removal.rst | 3 +++ setup.py | 6 +++--- tox.ini | 8 ++++---- 6 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 changelog.d/364.feature.rst create mode 100644 changelog.d/374.feature.rst create mode 100644 changelog.d/374.removal.rst 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