-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
setuptools-48.0.0 seems to break installation of pyyaml #2228
Comments
First thought: I'm guessing pyyaml tries to install a C extension and falls back to a pure python implementation. If they do this by catching some distutils-based exception, it may be that the exception they are catching comes from the standard library and the exception raised comes from setuptools' adopted version. If that's the problem, pytz-deprecation-shim has some hacks in it to ensure that the pytz-equivalent exceptions can be caught by catching pytz exceptions. I can provide a link when I get back to my computer. |
For what it's worth, installing PyYAML from source does seem to work for me on macOS and Setuptools 48:
Verbose output
So it does seem the issue may be related to the poetry invocation. |
I am able to replicate the issue on Ubuntu:
|
I now suspect the issue is intrinsic to the distutils adoption... that something with distutils, either the version that comes with Python 3.9 or the changes applied for PyPy compatibility, have broken the compiler name. Oh! So testing the same thing against |
I've determined that with Setuptools 47.x, a missing compiler results in a
|
(my thought process here):
|
Digging into the trace when the error occurs:
I now strongly suspect python/cpython#18743. |
If my hunch is correct, that should mean that the same error will occur when using Setuptools 47 and Python 3.9. I'm rebuilding jaraco/multipy-tox to include Python 3.9 and confirm/refute that possibility. |
Confirmed - the issue is a preview of what's to come with Python 3.9:
|
FTR it also breaks Ansible but in a different way: ansible/ansible#70456 (#2230). |
Acknowledged. Based on these findings, I'm going to temporarily disable distutils adoption in the latest release to ease the transition. |
@jaraco here's your chance to exercise the use of the new "yank" feature! |
I'm not sure yank is helpful here, because Setuptools has already seen subsequent releases, so those would need to be yanked also. I'll just release a new 49.1 that fixes the issue at "latest". |
I'd just yank =48.0 and =49.0 so they'd be still installable but marked as not recommended. |
…#2228 and bpo-41207.
…#2228 and bpo-41207.
I've confirmed the 49.0.1 release fixes the issue:
|
That's great to hear, thank you!
…On Sun, Jul 5, 2020, at 10:55 PM, Jason R. Coombs wrote:
Closed #2228 <#2228>.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#2228 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AADVHA3DX5RRV5DCXI773ADR2DSDFANCNFSM4OQAFJ3A>.
|
…0 to version 49.2.0 Alex Henrie (1): Change exec_module to load_module Hai Shi (2): bpo-40275: Use new test.support helper submodules in tests (GH-21151) bpo-40275: Use new test.support helper submodules in tests (GH-21317) Hugo (1): Test Python 3.9-dev Hugo van Kemenade (1): Test Python 3.9-dev Jason R. Coombs (26): Amend changelog for 48.0 to include more detail about usage expectations. Ref #2230. Use lowercase 't' for consistency in branding. Rename logo assets to remove project name and 'logo', which are implied by the context. Render logo in the readme. Add banner to main docs page Remove stale description of packaging. Add test for spawn when exe is missing. Ref pypa/distutils#3. Replace OSError with DistutilsExecError. Fixes pypa/distutils#3 and pypa/setuptools#2228 and bpo-41207. Update changelog. Ref #2228. Bump version: 49.0.0 → 49.0.1 Move assert outside the context so it actually has its effect. Remove py2_warn, no longer needed as a SyntaxError is encountered before the warning can be issueed. bpo-41207 In distutils.spawn, rewrite FileNotFound (GH-21359) Update changelog. Bump version: 49.1.0 → 49.1.1 Provide escape hatch for distutils adoption. Allow opt-in and opt-out of distutils adoption at run time with SETUPTOOLS_USE_DISTUTILS environment variable. Bump version: 49.1.1 → 49.1.2 Add a simple blank issue so it gets a green button. Update changelog. Allow spawn to accept environment. Avoid monkey-patching global state. Closes pypa/setuptools#2212 and closes pypa/distutils#5. Update changelog. Bump version: 49.1.2 → 49.1.3 Warn the user when distutils is present to discourage this usage and direct users to the recommended usage. Closes #2230. Programmatically disable coverage when running on PyPy. Bump version: 49.1.3 → 49.2.0 Serhiy Storchaka (1): bpo-41043: Escape literal part of the path for glob(). (GH-20994) Victor Stinner (1): bpo-41003: Fix test_copyreg when numpy is installed (GH-20935) cajhne (1): Add logo resources
…on 49.1.1 Hai Shi (2): bpo-40275: Use new test.support helper submodules in tests (GH-21151) bpo-40275: Use new test.support helper submodules in tests (GH-21317) Jason R. Coombs (15): Amend changelog for 48.0 to include more detail about usage expectations. Ref #2230. Use lowercase 't' for consistency in branding. Rename logo assets to remove project name and 'logo', which are implied by the context. Render logo in the readme. Add banner to main docs page Remove stale description of packaging. Add test for spawn when exe is missing. Ref pypa/distutils#3. Replace OSError with DistutilsExecError. Fixes pypa/distutils#3 and pypa/setuptools#2228 and bpo-41207. Update changelog. Ref #2228. Bump version: 49.0.0 → 49.0.1 Move assert outside the context so it actually has its effect. Remove py2_warn, no longer needed as a SyntaxError is encountered before the warning can be issueed. bpo-41207 In distutils.spawn, rewrite FileNotFound (GH-21359) Update changelog. Bump version: 49.1.0 → 49.1.1 Serhiy Storchaka (1): bpo-41043: Escape literal part of the path for glob(). (GH-20994) Victor Stinner (1): bpo-41003: Fix test_copyreg when numpy is installed (GH-20935) cajhne (1): Add logo resources
As of now,
setuptools 48.0.0
has been released fo 3h.Our CI builds (running on a
ubuntu:18.04
image) have started to fail around that time, with the following errorInstalling the exact same set of locked dependencies using
setuptools-47.3.2
works flawlessly.Would you need any additional details to determine if this is indeed caused by
setuptools
?Regards.
The text was updated successfully, but these errors were encountered: