Skip to content

Commit b616dd1

Browse files
authored
Add Python 3.14t (freethreaded) to testing matrix (#251)
* 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 * 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) * 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
1 parent fd0ad4c commit b616dd1

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

.github/workflows/pythonpackage.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
strategy:
2929
fail-fast: false
3030
matrix:
31-
python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13', '3.14']
31+
python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13', '3.14', '3.14t']
3232
os: [
3333
ubuntu-latest,
3434
windows-latest,
@@ -40,11 +40,17 @@ jobs:
4040
persist-credentials: false
4141

4242
- name: Set up Python ${{ matrix.python-version }}
43-
uses: actions/setup-python@v5.2.0
43+
uses: actions/setup-python@v5.5.0
4444
with:
4545
python-version: ${{ matrix.python-version }}
4646
allow-prereleases: true
4747

48+
- name: Verify freethreaded Python
49+
if: endsWith(matrix.python-version, 't')
50+
run: |
51+
python --version --version
52+
python -c "import sys; print('Free-threading enabled:', not sys._is_gil_enabled() if hasattr(sys, '_is_gil_enabled') else False)"
53+
4854
- name: Install uv
4955
uses: astral-sh/setup-uv@v6
5056
with:

AGENT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@
1818
- Use pytest (no unittest), all tests in `./tests/` with typing annotations
1919
- Import typing fixtures when TYPE_CHECKING: `CaptureFixture`, `FixtureRequest`, `LogCaptureFixture`, `MonkeyPatch`, `MockerFixture`
2020
- Ruff formatting: line length 119, ignores E501, F403, E701, F401
21-
- Python 3.10+ required, supports up to 3.14
21+
- Python 3.10+ required, supports up to 3.14 (including 3.14t freethreaded)
2222
- Dependencies: defusedxml, urllib3, xmltodict, pytest, pytest-cov

plan.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Here is the current task
2+
3+
4+
I want to run test the latest python 3.14.0 freethreaded version
5+
Check the versions-manifest.json and see where the free threaded version of python 3.14.0 is available.
6+
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
7+
8+
Please introduce minimal changes to get this done and be clear and concise

0 commit comments

Comments
 (0)