-
-
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
Remove old msvc modules (pypa/distutils@cc017c7) #3505
Conversation
I'm a little uneasy releasing this without first a deprecation period, except for the fact that this code is only reachable by directly importing the modules, and not through any of the build processes. Moreover, these modules are for very old versions of MSVC. According to WindowsCompilers, only Visual C++ 14 is relevant to Python 3.7+. Therefore, I'd like to proceed with this change. I've marked it as breaking, just in case it is, even though it probably isn't in the vast majority of cases. If it turns out to break important use cases, we can consider rolling it back. |
Not sure if it's worth rolling back or not, just to let you know this has broke installing
|
I used |
This also broke gobject-introspection, so pretty much a lot of GNOME-related stuff: https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/438 |
This also broke |
However, having |
@jaraco Why were the modules removed? The PR does not give any reason for the removal. Also distutils.msvccompiler is a public, documented API of distutils. The removal of the modules is an API breaking change. Since IMHO setuptools must not remove or change any distutils APIs until it drops support for Python 3.11 (!). |
FYI: This is impacting installation of |
FWIW, users affected by setuptools at build time can set a |
FWIW: this broke numba too: numba/numba#8356 |
This needs to be reverted ASAP as there is If a package has non-version-pinned setuptools in their It's an appalling design. Likely relevant: jazzband/pip-tools#1396 |
@cbeuw Please remember that almost everyone working on this is a volunteer and is doing there best to both move things forward while trying to keep everything working for everyone. I understand you are frustrated, however invectives against the design and maintainers is not productive, and will not get the issue resolved any faster. I believe that:
will avoid creating the isolated environment and give you full control over the versions used. [edited to fix terrible markup error] |
That worked, thanks. Although you need to install build dependencies manually in a separate command before doing that. Cunningham's Law at work :) |
Thanks everyone for the feedback. Based on the rationale I wrote above, I had not expected these modules to be in use anywhere. I see now they are and can roll it back.
I removed the modules because they're superseded by other modules, contain a lot of duplicated logic, and were presumed not to be in use (it's bad practice to have code around that's not called or even covered by tests). I should have included that rationale in the PR description.
(response moved to #3532) I apologize for the disruption and I'll get a rollback out asap. |
This reverts commit cc017c7. Ref pypa/setuptools#3505.
I'm having difficulty releasing the rollback. The CI tests for macOS on PyPy are failing, but only after the rollback. |
I've gone ahead and just merged the changes and and pushing them out as v65.0.2. If the tests are still failing, I'll cut the release manually. |
Now other tests are failing. It appears the tests are flaky. I've just pushed the release manually. |
Would it be possible to yank the "broken" releases from PyPi as a pre-cautionary measure? |
FYI, it may not always be conclusive, but a quick check of e.g. grep.app can be quite useful in these situations, both to see whether and how an existing API is used in the real world, beyond just theoretical considerations. |
I guess, there would be much less packages broken if you would've done one more thing: renamed |
Summary of changes
Closes
Pull Request Checklist
changelog.d/
.(See documentation for details)