Skip to content
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

[BUG] Several issues with setuptools project which builds an extension without any sources #284

Closed
twmr opened this issue Aug 8, 2024 · 11 comments
Assignees
Labels
bug Something isn't working

Comments

@twmr
Copy link

twmr commented Aug 8, 2024

setuptools version

72.1.0

Python version

3.10

OS

ubuntu 24.04

Additional environment information

Pixi env

Description

I've noticed that in newer versions of setuptools setup.py build_ext no longer builds setuptools.Extensions without any sources (a use case for that is to create a dummy extension that links against a shared library built using a boost.python with a different build-system, e.g. cmake):

demo_cxx = setuptools.Extension(
    "demo._cxx", sources=[], libraries=["z"], language="c++"
)

I've created a simple example in https://github.com/twmr/setuptools_extension_demo

If I run python setup.py build in this project, the following is output:

INFO:root:running build
INFO:root:running build_py
INFO:root:creating build
INFO:root:creating build/lib.linux-x86_64-cpython-310
INFO:root:creating build/lib.linux-x86_64-cpython-310/demo
INFO:root:copying demo/__init__.py -> build/lib.linux-x86_64-cpython-310/demo
INFO:root:running build_ext

python setup.py build_ext only outputs:

INFO:root:running build_ext

If the log message in build_ext.py (distutils) was of type info then at least
INFO:root:skipping 'demo._cxx' extension (up-to-date) would be output. This message is really helpful because it tells you why it wasn't build, even though the message is wrong in my case, because nothing was built at all.

I would expect to see the debug log message by passing -vv (or maybe just -v) to build_ext, but this doesn't work:
python setup.py build_ext -vv outputs

INFO:root:running build_ext

The only way to trigger a build of the extension is to force the compilation of the extension.
using python setup.py build_ext -f

INFO:root:running build_ext
INFO:root:building 'demo._cxx' extension
INFO:root:g++ -pthread -B /home/thomas/pixi-main/oasis/demo/.pixi/envs/default/compiler_compat -shared -Wl,--allow-shlib-undefined -Wl,-rpath,/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -Wl,-rpath-link,/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -L/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -Wl,--allow-shlib-undefined -Wl,-rpath,/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -Wl,-rpath-link,/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -L/home/thomas/pixi-main/oasis/demo/.pixi/envs/default/lib -lz -o build/lib.linux-x86_64-cpython-310/demo/_cxx.cpython-310-x86_64-linux-gnu.so

Then there is also an issue with pip (I guess the root cause is in setuptools/distutils)
The build works fine, but the extension is not built in this case.
pip install .

Processing /home/thomas/pixi-main/oasis/demo
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: demo
  Building wheel for demo (setup.py) ... done
  Created wheel for demo: filename=demo-0.0.0-cp310-cp310-linux_x86_64.whl size=1062 sha256=49367f9e5050f46b43542037c265f5f715ffaffdcae583cd72b71bd62725634c
  Stored in directory: /tmp/pip-ephem-wheel-cache-bzt2f2lc/wheels/3f/5a/f2/ecae9d14e02757feafed492662f1b09de2edde7b72ac0ba0bb
Successfully built demo
Installing collected packages: demo
Successfully installed demo-0.0.0

Expected behavior

I can verify that the extension was built with setuptools 62.6, but it is no longer built (unless -f is specified).
The handling of debug log messages seems to be broken (-v should output debug messages).
I would expect this log message https://github.com/pypa/setuptools/blob/04b3bb902e5853de4c5faf664847532602510e3e/setuptools/_distutils/command/build_ext.py#L530 to be output with level INFO.
I don't think that it is good that setuptools bdist_wheel doesn't check that all extensions are there (regardless if they are rebuilt or not). This is the reason why pip install . doesn't output an error, right?

How to Reproduce

see above

Output

see above

@twmr twmr added bug Something isn't working Needs Triage labels Aug 8, 2024
@twmr
Copy link
Author

twmr commented Aug 8, 2024

I nailed the build issue down to a commit between setuptools 68.2.2 and 69.0.3.

@twmr
Copy link
Author

twmr commented Aug 8, 2024

Maybe the regission is caused by this commit pypa/setuptools@c4e27db

@twmr twmr changed the title [BUG] Several issues with setuptools project which build an extension without any sources [BUG] Several issues with setuptools project which builds an extension without any sources Aug 13, 2024
@twmr
Copy link
Author

twmr commented Aug 19, 2024

Friendly ping. Does anyone agree that it is a bug that is worth fixing? (tagging @jaraco, since he is the author of a commit which probably caused this regression)

@jaraco
Copy link
Member

jaraco commented Aug 19, 2024

Maybe the regission is caused by this commit c4e27db

That does seem likely. It looks like if newer_group is called with an empty set of sources, and the target doesn't exist, the result would be different before and after that change.

Thanks for tracking it down. Let me see if reverting just that change correct the missed expectation.

Does anyone agree that it is a bug that is worth fixing?

Yes, probably. We'll just want to be sure to capture the correct expectation in the unit tests and not leave it as an implementation detail.

@jaraco jaraco self-assigned this Aug 19, 2024
@jaraco
Copy link
Member

jaraco commented Aug 19, 2024

Let me see if reverting just that change correct the missed expectation.

Confirmed. Reverting that commit and re-running setup.py build_ext, it emits "building 'demo._cxx' extension".

@jaraco
Copy link
Member

jaraco commented Aug 19, 2024

I'm transferring this issue to the distutils repository (after which it'll get merged back to Setuptools).

@jaraco jaraco transferred this issue from pypa/setuptools Aug 19, 2024
jaraco added a commit that referenced this issue Aug 19, 2024
@jaraco jaraco closed this as completed in 30b7331 Aug 19, 2024
@jaraco
Copy link
Member

jaraco commented Aug 19, 2024

I've confirmed that with this fix, setuptools now behaves as expected. Expect a release of the bugfix after the merge of pypa/setuptools#4576.

@jaraco
Copy link
Member

jaraco commented Aug 19, 2024

Releasing as v73.0.

DefinetlyNotAI added a commit to DefinetlyNotAI/Logicytics that referenced this issue Aug 20, 2024
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>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<h1>v72.1.0</h1>
<h2>Features</h2>
<ul>
<li>Restore the tests command and deprecate access to the module. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4519">#4519</a>)
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4520">#4520</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/9a9946f98a5c1597a230db5975bdd61dc1ca1a3f"><code>9a9946f</code></a>
Add test capturing missed expectation.</li>
<li><a
href="https://github.com/pypa/setuptools/commit/dbfcf800b2d130066319ee6dc54f485ff3a09dc6"><code>dbfcf80</code></a>
Add newsfragment</li>
<li><a
href="https://github.com/pypa/setuptools/commit/d081fbdfc92da4b8bcf01455445cf739ca51d5f1"><code>d081fbd</code></a>
Remove bundled ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/49d7438a23b7ec7cfca20c4d0ae5083030f631bd"><code>49d7438</code></a>
Replace OrderedSet with dict</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8bd93089e76c88775ffccd1b03183d4ff659ec67"><code>8bd9308</code></a>
Allow dash-separated module name in <code>pyproject.toml</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4566">#4566</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v72.2.0...v73.0.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>
@twmr
Copy link
Author

twmr commented Aug 20, 2024

Thx a lot for the fix @jaraco! I'll create separate issues for the other issues that I noticed and mentioned in the description of this github issue.

github-actions bot pushed a commit to aio-libs/aiohttp that referenced this issue Aug 21, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to
73.0.1.
<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>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v68.0.0...v73.0.1">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=68.0.0&new-version=73.0.1)](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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this issue Aug 21, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to
73.0.1.
<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>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v68.0.0...v73.0.1">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=68.0.0&new-version=73.0.1)](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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@rougeSE
Copy link

rougeSE commented Aug 21, 2024

I just tried using 73.0.1 and it did not fix the issue.

I am also trying to have setuptools build up a platform specific wheel from code precompiled outside of the python build so have the following

setup(
    version=args.version,
	ext_modules=[
        Extension(
            name='mypkg', # This forces dist tool to build the wheel platform specific always
            sources=[]
        )
    ]
)

Using setuptools 72.2.0, this works, changing to 73.0.0 or 73.0.0 breaks this with the following error

File "C:\Temp\2\build-env-r4qpk9w4\Lib\site-packages\setuptools\_distutils\ccompiler.py", line 757, in link_shared_object
   self.link(
 File "C:\Temp\2\build-env-r4qpk9w4\Lib\site-packages\setuptools\_distutils\_msvccompiler.py", line 491, in link
   build_temp = os.path.dirname(objects[0])

Should this be reopened or a new issue written?

@jaraco
Copy link
Member

jaraco commented Aug 24, 2024

Should this be reopened or a new issue written?

Hard to say. The reported issue wasn't an error and the reported issue has been fixed. But unfortunately, the two lines from the traceback don't even include the error. Please file a new issue and when you do, please include the exception line and nearby stack trace lines.

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Aug 25, 2024
v73.0.1
=======

Bugfixes
--------

- Remove `abc.ABCMeta` metaclass from abstract classes. `pypa/setuptools#4503 <https://github.com/pypa/setuptools/pull/4503>`_ had an unintended consequence of causing potential ``TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases`` -- by :user:`Avasam` (#4579)


v73.0.0
=======

Features
--------

- Mark abstract base classes and methods with `abc.ABC` and `abc.abstractmethod` -- by :user:`Avasam` (#4503)
- Changed the order of type checks in ``setuptools.command.easy_install.CommandSpec.from_param`` to support any `collections.abc.Iterable` of `str` param -- by :user:`Avasam` (#4505)


Bugfixes
--------

- Prevent an error in ``bdist_wheel`` if ``compression`` is set to a `str` (even if valid) after finalizing options but before running the command. -- by :user:`Avasam` (#4383)
- Raises an exception when ``py_limited_api`` is used in a build with
  ``Py_GIL_DISABLED``. This is currently not supported (python/cpython#111506). (#4420)
- Synced with pypa/distutils@30b7331 including fix for modified check on empty sources (pypa/distutils#284).


Deprecations and Removals
-------------------------

- ``setuptools`` is replacing the usages of :pypi:`ordered_set` with simple
  instances of ``dict[Hashable, None]``. This is done to remove the extra
  dependency and it is possible because since Python 3.7, ``dict`` maintain
  insertion order. (#4574)


Misc
----

- #4534, #4546, #4554, #4559, #4565
mergify bot pushed a commit to aws/jsii that referenced this issue Aug 26, 2024
…in /packages/@jsii/python-runtime (#4614)

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>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes. <code>pypa/setuptools#4503 &lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an unintended consequence of causing potential <code>TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases</code> -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and <code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in <code>setuptools.command.easy_install.CommandSpec.from_param</code> to support any <code>collections.abc.Iterable</code> of <code>str</code> param -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if <code>compression</code> is set to a <code>str</code> (even if valid) after finalizing options but before running the command. -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of :pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove the extra
dependency and it is possible because since Python 3.7, <code>dict</code> maintain
insertion order. (<a href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a> Bump version: 73.0.0 → 73.0.1</li>
<li><a href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a> from Avasam/no-ABCMeta</li>
<li><a href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a> Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a> Override distribution attribute type in all distutils-based commands (<a href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a> Override distribution attribute type in all distutils-based commands</li>
<li><a href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a> Bump version: 72.2.0 → 73.0.0</li>
<li><a href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a> from pypa/bugfix/distutils-284</li>
<li><a href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a> from abravalheri/ordered_set</li>
<li><a href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a> Merge <a href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a> into bugfix/distutils-284</li>
<li><a href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a> Ensure a missing target is still indicated as 'sources are newer' even when t...</li>
<li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v71.1.0...v73.0.1">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>
jmertic pushed a commit to jmertic/landscape-tools that referenced this issue Aug 26, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 72.2.0 to
73.0.1.
<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>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v72.2.0...v73.0.1">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=72.2.0&new-version=73.0.1)](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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to openvinotoolkit/openvino that referenced this issue Aug 26, 2024
….0 in /src/bindings/python (#26195)

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>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v65.6.1...v73.0.1">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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
vepadulano added a commit to vepadulano/root that referenced this issue Aug 28, 2024
See pypa/distutils#284 , the issue is marked as solved but it is not really.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants