From 129ebab240048b8b3cdb65123f810b8dbf17d3be Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 23 Feb 2026 17:34:27 -0500 Subject: [PATCH 1/2] ci: add free-threaded Python to CI Signed-off-by: Henry Schreiner --- .github/workflows/test.yml | 2 +- noxfile.py | 2 ++ tests/conftest.py | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 tests/conftest.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7d5d7c10..5ab27ced 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: matrix: os: [Ubuntu, Windows, macOS] python_version: - ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "pypy3.8", "pypy3.9", "pypy3.10", "pypy3.11"] + ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.13t", "3.14t", "pypy3.8", "pypy3.9", "pypy3.10", "pypy3.11"] include: - os: Ubuntu python_version: "3.11.0" diff --git a/noxfile.py b/noxfile.py index 046ec14f..a8adfb51 100644 --- a/noxfile.py +++ b/noxfile.py @@ -34,6 +34,8 @@ @nox.session( python=[ *PYTHON_VERSIONS, + "3.13t", + "3.14t", "pypy3.8", "pypy3.9", "pypy3.10", diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..1d6cbdf3 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,10 @@ +from __future__ import annotations + +import sysconfig + + +def pytest_report_header() -> str: + lines = [f"sysconfig platform: {sysconfig.get_platform()}"] + if sysconfig.get_config_var("Py_GIL_DISABLED"): + lines.append("free-threaded Python build") + return "\n".join(lines) From c68d36246ac5fa2ec7f53b6701afd49339c49aeb Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 23 Feb 2026 18:27:52 -0500 Subject: [PATCH 2/2] chore: add classifier for free-threaded Signed-off-by: Henry Schreiner --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index de92ac7b..eeb5f841 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", + "Programming Language :: Python :: Free Threading :: 4 - Resilient", "Typing :: Typed", ] dependencies = []