From ffcfa504312e292ecc6ff3f1053b5597fc37fe06 Mon Sep 17 00:00:00 2001 From: Vinit Kumar Date: Wed, 8 Oct 2025 16:36:41 +0530 Subject: [PATCH 1/3] Add Python 3.14t (freethreaded) to testing matrix - Added Python 3.14t to the test matrix - Python 3.14.0 freethreaded is available on all platforms (Ubuntu, Windows, macOS) - Tests will run on all supported OS and architectures --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 3a96c70..50ad43f 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13', '3.14', '3.14t'] os: [ ubuntu-latest, windows-latest, From d9a7335696067f5ea6b756cbcb506499341d728b Mon Sep 17 00:00:00 2001 From: Vinit Kumar Date: Wed, 8 Oct 2025 16:38:22 +0530 Subject: [PATCH 2/3] Update setup-python to v5.5.0 for freethreaded support - Upgraded actions/setup-python from v5.2.0 to v5.5.0 - v5.5.0 has better support for freethreaded Python (3.14t) --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 50ad43f..31d7c88 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -40,7 +40,7 @@ jobs: persist-credentials: false - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5.2.0 + uses: actions/setup-python@v5.5.0 with: python-version: ${{ matrix.python-version }} allow-prereleases: true From 9ff9d91375b811497a3e112c3245ba2d001d244b Mon Sep 17 00:00:00 2001 From: Vinit Kumar Date: Wed, 8 Oct 2025 16:44:32 +0530 Subject: [PATCH 3/3] Add freethreaded Python verification and update docs - Added verification step to confirm freethreaded mode is active - Updated AGENT.md to document 3.14t support - Verification shows Python version and GIL status for 't' versions --- .github/workflows/pythonpackage.yml | 6 ++++++ AGENT.md | 2 +- plan.md | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 plan.md diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 31d7c88..87ad070 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -45,6 +45,12 @@ jobs: python-version: ${{ matrix.python-version }} allow-prereleases: true + - name: Verify freethreaded Python + if: endsWith(matrix.python-version, 't') + run: | + python --version --version + python -c "import sys; print('Free-threading enabled:', not sys._is_gil_enabled() if hasattr(sys, '_is_gil_enabled') else False)" + - name: Install uv uses: astral-sh/setup-uv@v6 with: diff --git a/AGENT.md b/AGENT.md index 7243f8c..00d410e 100644 --- a/AGENT.md +++ b/AGENT.md @@ -18,5 +18,5 @@ - Use pytest (no unittest), all tests in `./tests/` with typing annotations - Import typing fixtures when TYPE_CHECKING: `CaptureFixture`, `FixtureRequest`, `LogCaptureFixture`, `MonkeyPatch`, `MockerFixture` - Ruff formatting: line length 119, ignores E501, F403, E701, F401 -- Python 3.10+ required, supports up to 3.14 +- Python 3.10+ required, supports up to 3.14 (including 3.14t freethreaded) - Dependencies: defusedxml, urllib3, xmltodict, pytest, pytest-cov diff --git a/plan.md b/plan.md new file mode 100644 index 0000000..6e403f9 --- /dev/null +++ b/plan.md @@ -0,0 +1,8 @@ +Here is the current task + + +I want to run test the latest python 3.14.0 freethreaded version +Check the versions-manifest.json and see where the free threaded version of python 3.14.0 is available. +Make changes to the testing matrix, so that the supported OS and architecture for the freethreaded python in installed and these new tests for this os and arch, along with all old tests work + +Please introduce minimal changes to get this done and be clear and concise