Commit graph

1 commit

Author SHA1 Message Date
Sam Gross
9e62be81b2
Support free threaded Python versions like '3.13t' (#973)
Some checks failed
Validate Python e2e / Setup 3.11.9 ubuntu-20.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.12.3 ubuntu-20.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.13.0 ubuntu-20.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.9.13 ubuntu-20.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.13.0 ubuntu-22.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.10.11 ubuntu-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.11.9 ubuntu-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.12.3 ubuntu-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.13.0 ubuntu-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.9.13 ubuntu-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.10.11 windows-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.11.9 windows-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.12.3 windows-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.13.0 windows-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.9.13 windows-latest poetry pyproject file (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 macos-13 (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 macos-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 ubuntu-20.04 (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 ubuntu-22.04 (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 ubuntu-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14.0-alpha.1 windows-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14-dev macos-13 (push) Has been cancelled
Validate Python e2e / Setup 3.14-dev macos-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14-dev ubuntu-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14-dev windows-latest (push) Has been cancelled
Validate Python e2e / Setup 3.14 macos-13 (push) Has been cancelled
* Support free threaded Python versions like '3.13t'

Python wheels, pyenv, and a number of other tools use 't' in the Python
version number to identify free threaded builds. For example, '3.13t',
'3.14.0a1', '3.14t-dev'.

This PR supports that syntax in `actions/setup-python`, strips the "t",
and adds "-freethreading" to the architecture to select the correct
Python version.

See #771

* Add free threading to advanced usage documentation

* Fix desugaring of `3.13.1t` and add test case.

* Add freethreaded input and fix handling of prerelease versions

* Fix lint

* Add 't' suffix to python-version output

* Use distinct cache key for free threaded Python

* Remove support for syntax like '3.14.0a1'

* Clarify use of 't' suffix

* Improve error message when trying to use free threaded Python versions before 3.13
2025-03-04 16:49:43 -06:00