From 575a6ba788ecde13e3026baf68bff331a6aaf0a2 Mon Sep 17 00:00:00 2001 From: Quentin Pradet Date: Mon, 3 Nov 2025 10:41:53 +0400 Subject: [PATCH 1/3] Drop Python 3.9, support Python 3.14 and 3.14t --- .github/workflows/ci.yml | 2 +- README.rst | 2 +- docs/source/index.rst | 2 +- noxfile.py | 2 +- pyproject.toml | 5 +++-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 331463a..944b6ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', '3.14t', '3.15'] os: - macos-latest - windows-latest diff --git a/README.rst b/README.rst index 9b81d1d..f8d2b2e 100644 --- a/README.rst +++ b/README.rst @@ -33,7 +33,7 @@ Vital statistics **Bug tracker and source code:** https://github.com/python-trio/trustme -**Tested on:** Python 3.8+, CPython and PyPy +**Tested on:** Python 3.10+, CPython and PyPy **License:** MIT or Apache 2, your choice. diff --git a/docs/source/index.rst b/docs/source/index.rst index 0be2520..5485775 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,7 @@ works. It demonstrates a simple TLS server and client that connect to each other using :mod:`trustme`\-generated certs. This example requires `Trio `__ (``pip -install -U trio``) and Python 3.8+. Note that while :mod:`trustme` is +install -U trio``) and Python 3.10+. Note that while :mod:`trustme` is maintained by the Trio project, :mod:`trustme` is happy to work with any networking library. diff --git a/noxfile.py b/noxfile.py index ff32a49..3d1d8b0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -12,7 +12,7 @@ def lint(session: nox.Session) -> None: session.run("mypy", *LINT_PATHS) -@nox.session(python=["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "pypy3"]) +@nox.session(python=["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "3.15", "pypy3"]) def test(session: nox.Session) -> None: session.install(".", "-r", "test-requirements.txt") session.run( diff --git a/pyproject.toml b/pyproject.toml index 09a120e..7e7b4ce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ dynamic = ["version"] description = "#1 quality TLS certs while you wait, for the discerning tester" readme = "README.rst" license = {text = "MIT OR Apache-2.0"} -requires-python = ">=3.9" +requires-python = ">=3.10" authors = [ { name = "Nathaniel J. Smith", email = "njs@pobox.com" }, ] @@ -19,13 +19,14 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", + "Programming Language :: Python :: Free Threading :: 2 - Beta", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "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 :: 3.14", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Testing", "Topic :: System :: Networking", From 65c88750ddc169c412cd0b8b6aa1dd5e21f4220b Mon Sep 17 00:00:00 2001 From: Quentin Pradet Date: Mon, 3 Nov 2025 11:09:47 +0400 Subject: [PATCH 2/3] Upgrade pyOpenSSL and cryptography --- test-requirements.txt | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index bc6c777..d980c7f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,24 +2,22 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --resolver=backtracking test-requirements.in +# pip-compile test-requirements.in # attrs==25.4.0 # via service-identity cffi==2.0.0 # via cryptography -coverage[toml]==7.10.7 +coverage[toml]==7.11.0 # via -r test-requirements.in -cryptography==45.0.6 +cryptography==46.0.3 # via # -r test-requirements.in # pyopenssl # service-identity -exceptiongroup==1.3.0 - # via pytest idna==3.11 # via -r test-requirements.in -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest packaging==25.0 # via pytest @@ -35,17 +33,11 @@ pycparser==2.23 # via cffi pygments==2.19.2 # via pytest -pyopenssl==25.1.0 +pyopenssl==25.3.0 # via -r test-requirements.in pytest==8.4.2 # via -r test-requirements.in service-identity==24.2.0 # via -r test-requirements.in -tomli==2.3.0 - # via - # coverage - # pytest typing-extensions==4.15.0 - # via - # exceptiongroup - # pyopenssl + # via pyopenssl From 5b708ca078334bccb984ee5f5b9bb841c53b3fce Mon Sep 17 00:00:00 2001 From: Quentin Pradet Date: Thu, 6 Nov 2025 21:27:48 +0400 Subject: [PATCH 3/3] Update docs/source/index.rst Co-authored-by: Christian Clauss --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 5485775..9dba23e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,7 @@ works. It demonstrates a simple TLS server and client that connect to each other using :mod:`trustme`\-generated certs. This example requires `Trio `__ (``pip -install -U trio``) and Python 3.10+. Note that while :mod:`trustme` is +install -upgrade trio``) and Python 3.10+. Note that while :mod:`trustme` is maintained by the Trio project, :mod:`trustme` is happy to work with any networking library.