-
Notifications
You must be signed in to change notification settings - Fork 636
Description
Description:
Please make Python 3.13 available, built with the --disable-gil
flag.
Justification:
Thank you for actions/setup-python and especially for making it possible to test new pre-releases, and final releases within a day or so of their official release. (And see here how well GitHub Actions compares to other CI services :)
PEP 703 has been accepted to remove the GIL. The rollout is planned in three phases, and for success, it's extremely important to get community feedback and support to be able to move to the next phase.
Therefore it's also extremely important for the community to be able to test the "free-threaded" aka "nogil" builds of Python. This requires a separate build of 3.13 with the --disable-gil
flag enabled for the configure script (see the PEP and CPython CI).
To achieve this, it would be very helpful if actions/setup-python also provided free-threaded builds for 3.13 (and later) to enable the community to try them out and give feedback, perhaps via with: disable-gil: true
.
It's still a bit early for extension authors to start testing, but it would be great to have the testing infra ready for when the time comes.
Would this be possible?
Are you willing to submit a PR?
Yes.
Activity
dmitry-shibanov commentedon Nov 23, 2023
Hello @hugovk. Thank you for your feature request. We'll take a look on it.
hugovk commentedon Apr 11, 2024
Hello @dmitry-shibanov, any news?
The 3.13 beta is due on 2024-05-07 and we'll ask the community to start testing ahead of the full release in October. It would be very helpful if it's possible using GitHub Actions.
Thanks!
ngoldbaum commentedon May 8, 2024
@dmitry-shibanov hi! 3.13 beta 1 was just released. Myself and a few others have been working on adding compatibility for free-threaded python builds and I'd like to start adding CI for some projects in the scientific python ecosystem. Being able to specify a build via
setup-python
would make doing so much more straightforward for many projects.willingc commentedon May 13, 2024
@dmitry-shibanov Thanks for looking into making this happen. Is there anything you need from the Python community to make this happen within GitHub Actions?
tonybaloney commentedon May 14, 2024
For anyone seeking a workaround the deadsnakes action has a nogil flag https://github.com/deadsnakes/action
You can install Python 3.13 this way as a drop in replacement for the setup-python action.
mayeut commentedon May 20, 2024
I had a first look at how it could be implemented given the current state of things in actions:
That being said, the
arch
field of the manifest is just a string so it could be used to provide variants (e.g.x64-nogil
).This is probably not user friendly so while the
actions/python-versions
repo could use such a hack, theactions/setup-pyton
might want to provide an option - as proposed in the description - and leave the hack as an internal detail that could be changed if manifest generation/consumption gets updated.I'm willing to submit Pull Requests but need some guidance regarding what's acceptable from the maintainers first.
cc @dmitry-shibanov, @HarithaVattikuti, @aparnajyothi-y
57 remaining items
Test on free-threaded Python
XuehaiPan commentedon Mar 9, 2025
Hi, is there any release schedule to allow developers access this feature via a git tag?
Test on free-threaded Python
hugovk commentedon Mar 25, 2025
This has now been released as v5.5.0 and v5:
I wrote up some instructions:
Support free threaded Python versions like '3.13t' (#973)
Support free threaded Python versions like '3.13t' (actions#973)
Python 3.13t CI testing (#111)
fix: vulnerabilites + rebase (#8)