-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set Py_GIL_DISABLED=1
for free threaded Python on Windows
#310
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
BTW I think we should release a new version that includes this PR ASAP. I think this issue have already been a block reason for the people who want to build free threading extension on windows |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In case it helps: this change looks correct to me, and is the right (and probably the only reasonable) choice to make in my opinion. We made the same change in Meson (xref mesonbuild/meson#13338) and have tested it pretty heavily by now - it's working as advertised, while without the Py_GIL_DISABLED
define, users are getting hard to understand errors at build time.
So +1 for merging this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. It's unfortunate that we have to do that, but the fix looks good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the workaround is okay, but we should look into fixing the source of the issue.
The test failures seem unrelated. Unfortunately, they are also failing on |
When free threaded CPython is installed from the official Windows installer it doesn't have the macro `Py_GIL_DISABLED` properly set becuase its `pyconfig.h` file is shared across the co-installed default build. Define the macro when building free threaded Python extensions on Windows so that each individual C API extension doesn't have to work around this limitation. See pypa/setuptools#4662
407bd87
to
de1e624
Compare
The tests seem similar enough, I'll merge this and then see if I have time to fix the CI 🙃 |
I believe @zooba has already tried, and declared the approach in this PR as the solution to be able to build against the official CPython Windows installers until free-threaded becomes the default build - from https://discuss.python.org/t/windows-installer-freethreading-and-building-extension-modules/54391: "The multiple "It looks like you’re using setuptools. They can start detecting the variable and passing it themselves whenever they like." |
This specific issue is a symptom of Python not being designed to have paths shared between multiple builds. I think it makes sense to at least discuss in more depth how this could be avoided. |
Supporting the same set of headers for all platforms (or at minimum, all Windows architectures) and relying on preprocessor switches to choose the build options is a pretty standard way of doing this on Windows. I certainly wouldn't want to switch wholesale to a configure/make model for all Windows users just for the sake of a temporary flag. If there's a second feature that deserves this, we can consider it. |
Hey @FFY00! Are you going to merge this in pypa/setuptools as well? Having a released version of setuptools with this included would help a lot in unblocking CI for a lot of projects. |
Hey, sorry for the late reply, I am not a setuptools maintainer. cc @jaraco |
My new job has been keeping me busy, so I'm just getting caught up on this. Let's see... For future reference, I would have done the merge differently:
I'll get those things repaired and then get the latest changes merged into Setuptools. |
Set `Py_GIL_DISABLED=1` for free threaded Python on Windows.
Bumps [setuptools](https://github.com/pypa/setuptools) from 75.6.0 to 75.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=75.6.0&new-version=75.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [setuptools](https://github.com/pypa/setuptools) from 75.6.0 to 75.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=75.6.0&new-version=75.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all group with 2 updates: ruamel-yaml and [setuptools](https://github.com/pypa/setuptools). Updates `ruamel-yaml` from 0.18.6 to 0.18.10 Updates `setuptools` from 75.6.0 to 75.7.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [setuptools](https://github.com/pypa/setuptools) from 75.6.0 to 75.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=75.6.0&new-version=75.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [setuptools](https://github.com/pypa/setuptools) from 75.6.0 to 75.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=75.6.0&new-version=75.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
…rc/bindings/python (#28319) Updates the requirements on [setuptools](https://github.com/pypa/setuptools) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> <h1>v75.6.0</h1> <h2>Features</h2> <ul> <li>Preserve original <code>PKG-INFO</code> into <code>METADATA</code> when creating wheel (instead of calling <code>wheel.metadata.pkginfo_to_metadata</code>). This helps to be more compliant with the flow specified in PEP 517. (<a href="https://redirect.github.com/pypa/setuptools/issues/4701">#4701</a>)</li> <li>Changed the <code>WindowsSdkVersion</code>, <code>FrameworkVersion32</code> and <code>FrameworkVersion64</code> properties of <code>setuptools.msvc.PlatformInfo</code> to return an empty <code>tuple</code> instead of <code>None</code> as a fallthrough case -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4754">#4754</a>)</li> </ul> <h1>v75.5.0</h1> <h2>Features</h2> <ul> <li>Removed support for <code>SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION</code>, as it is deemed prone to errors. (<a href="https://redirect.github.com/pypa/setuptools/issues/4746">#4746</a>)</li> </ul> <h1>v75.4.0</h1> <h2>Features</h2> <ul> <li> <p>Added support for the environment variable <code>SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION=true</code>, allowing users to bypass the validation of <code>pyproject.toml</code>. This option should be used only as a last resort when resolving dependency issues, as it may lead to improper functioning. Users who enable this setting are responsible for ensuring that <code>pyproject.toml</code> complies with setuptools requirements. (<a href="https://redirect.github.com/pypa/setuptools/issues/4611">#4611</a>)</p> <p>.. attention:: This environment variable was removed in a later version of <code>setuptools</code>.</p> </li> <li> <p>Require Python 3.9 or later. (<a href="https://redirect.github.com/pypa/setuptools/issues/4718">#4718</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/4e82e8b75c8bd8cba1232a107dc171b4fd2c588c"><code>4e82e8b</code></a> Bump version: 75.6.0 → 75.7.0</li> <li><a href="https://github.com/pypa/setuptools/commit/50b15dbedc3a5665717b9204cd85291152f5b314"><code>50b15db</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4787">#4787</a> from Avasam/simplify-typed-assignements</li> <li><a href="https://github.com/pypa/setuptools/commit/86d8c992fc201fae91d135019e5abada183548e2"><code>86d8c99</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a> from pypa/feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/c384f184d20e8232a1ce73f88d151b9808b66949"><code>c384f18</code></a> Py_GIL_Disabled was handled previously.</li> <li><a href="https://github.com/pypa/setuptools/commit/fbe834af40de70c181cd2ff5395f8e3488177874"><code>fbe834a</code></a> Merge branch 'main' into feature/distutils-ff11eed0c</li> <li><a href="https://github.com/pypa/setuptools/commit/5ed9d93e77aa3e2c70d8cea1bfeb15549932169f"><code>5ed9d93</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/e94ce0d2aa2d38b67e5c7ee84ca53fde9d4b5b28"><code>e94ce0d</code></a> Merge with pypa/distutils.</li> <li><a href="https://github.com/pypa/setuptools/commit/ff11eed0c36b35bd68615a8ebf36763b7c8a6f28"><code>ff11eed</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/325">pypa/distutils#325</a> from thesamesam/cflags</li> <li><a href="https://github.com/pypa/setuptools/commit/ebfebc096000e16f9d640660047eaec891a98529"><code>ebfebc0</code></a> Merge pull request <a href="https://redirect.github.com/pypa/distutils/issues/302">pypa/distutils#302</a> from adang1345/fix-python313-abs</li> <li><a href="https://github.com/pypa/setuptools/commit/36ce8b329524088cfa53b9a4bffcce3a8d233539"><code>36ce8b3</code></a> Refactor for simplicity.</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v70.1.0...v75.7.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rc/bindings/python (#28369) Updates the requirements on [setuptools](https://github.com/pypa/setuptools) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v75.8.0</h1> <h2>Features</h2> <ul> <li>Implemented <code>Dynamic</code> field for core metadata (as introduced in PEP 643). The existing implementation is currently experimental and the exact approach may change in future releases. (<a href="https://redirect.github.com/pypa/setuptools/issues/4698">#4698</a>)</li> </ul> <h1>v75.7.0</h1> <h2>Features</h2> <ul> <li><code>pypa/distutils#310</code><a href="https://redirect.github.com/pypa/setuptools/issues/4478">#4478</a>)</li> <li>Synced with pypa/distutils@ff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (<a href="https://redirect.github.com/pypa/setuptools/issues/4669">#4669</a>). (<a href="https://redirect.github.com/pypa/setuptools/issues/4790">#4790</a>)</li> </ul> <h1>v75.6.0</h1> <h2>Features</h2> <ul> <li>Preserve original <code>PKG-INFO</code> into <code>METADATA</code> when creating wheel (instead of calling <code>wheel.metadata.pkginfo_to_metadata</code>). This helps to be more compliant with the flow specified in PEP 517. (<a href="https://redirect.github.com/pypa/setuptools/issues/4701">#4701</a>)</li> <li>Changed the <code>WindowsSdkVersion</code>, <code>FrameworkVersion32</code> and <code>FrameworkVersion64</code> properties of <code>setuptools.msvc.PlatformInfo</code> to return an empty <code>tuple</code> instead of <code>None</code> as a fallthrough case -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4754">#4754</a>)</li> </ul> <h1>v75.5.0</h1> <h2>Features</h2> <ul> <li>Removed support for <code>SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION</code>, as it is deemed prone to errors. (<a href="https://redirect.github.com/pypa/setuptools/issues/4746">#4746</a>)</li> </ul> <h1>v75.4.0</h1> <h2>Features</h2> <ul> <li>Added support for the environment variable</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/5c9d9809dec1b20e2a9da6b4a06355fd6f87a190"><code>5c9d980</code></a> Bump version: 75.7.0 → 75.8.0</li> <li><a href="https://github.com/pypa/setuptools/commit/72c422261b40f2b95a8be6605cc7dd93cec81794"><code>72c4222</code></a> Avoid using Any in function</li> <li><a href="https://github.com/pypa/setuptools/commit/1c61d4799438677c7cfaaccf281312bfb1aee9b3"><code>1c61d47</code></a> Add news fragments for PEP 643</li> <li><a href="https://github.com/pypa/setuptools/commit/f285d01e2661b01e4947a4dca7704790b65f2967"><code>f285d01</code></a> Implement PEP 643 (<code>Dynamic</code> field for core metadata) (<a href="https://redirect.github.com/pypa/setuptools/issues/4698">#4698</a>)</li> <li><a href="https://github.com/pypa/setuptools/commit/a50f6e2e1e8b4610adde709079bec17ad0944197"><code>a50f6e2</code></a> Fix _static.Dict.<strong>ior</strong> for Python 3.8</li> <li><a href="https://github.com/pypa/setuptools/commit/b055895fa337a6e03a29c2ea6493b6b778d2ba46"><code>b055895</code></a> Add extra tests for static/dynamic metadata</li> <li><a href="https://github.com/pypa/setuptools/commit/770b4fc8f6248d862629028f5ee4218975f9516b"><code>770b4fc</code></a> Remove test workaround for unmarked static values from pyproject.toml</li> <li><a href="https://github.com/pypa/setuptools/commit/8b22d73be5e23a9611398d81aedc5164115940ce"><code>8b22d73</code></a> Mark values from pyproject.toml as static</li> <li><a href="https://github.com/pypa/setuptools/commit/f699fd842e3ddedbe937ee33b0bd6ad28e735664"><code>f699fd8</code></a> Fix spelling error</li> <li><a href="https://github.com/pypa/setuptools/commit/8b4c8a3c95f43d771d0fa6e4ebceea3436bc70f7"><code>8b4c8a3</code></a> Add tests for static 'attr' directive</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v70.1.0...v75.8.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
When free threaded CPython is installed from the official Windows installer it doesn't have the macro
Py_GIL_DISABLED
properly set becuase itspyconfig.h
file is shared across the co-installed default build.Define the macro when building free threaded Python extensions on Windows so that each individual C API extension doesn't have to work around this limitation.
See pypa/setuptools#4662