Skip to content

PEP 703: actions/setup-python python3.13t builds with --disable-gil #771

@hugovk

Description

@hugovk
Contributor

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

dmitry-shibanov commented on Nov 23, 2023

@dmitry-shibanov
Contributor

Hello @hugovk. Thank you for your feature request. We'll take a look on it.

hugovk

hugovk commented on Apr 11, 2024

@hugovk
ContributorAuthor

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

ngoldbaum commented on May 8, 2024

@ngoldbaum

@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

willingc commented on May 13, 2024

@willingc

@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

tonybaloney commented on May 14, 2024

@tonybaloney

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

mayeut commented on May 20, 2024

@mayeut
Contributor

I had a first look at how it could be implemented given the current state of things in actions:

  • manifest files generation seems compatible with the addition of a new field to account for different variants of a given tool.
  • however toolcache does expect the manifest to follow a specific semantic so it would require an update if going with a new field for different variants of a given tool.

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, the actions/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

added a commit that references this issue on Mar 7, 2025
XuehaiPan

XuehaiPan commented on Mar 9, 2025

@XuehaiPan

Hi, is there any release schedule to allow developers access this feature via a git tag?

added a commit that references this issue on Mar 12, 2025
hugovk

hugovk commented on Mar 25, 2025

@hugovk
ContributorAuthor
added a commit that references this issue on May 26, 2025
added a commit that references this issue on Jul 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

feature requestNew feature or request to improve the current logic

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @ssbarnea@jimkring@colesbury@hugovk@tonybaloney

      Issue actions

        PEP 703: actions/setup-python python3.13t builds with `--disable-gil` · Issue #771 · actions/setup-python