-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Disallow deprecated dash-separated and uppercase options in setup.cfg #4870
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
Conversation
return set(distutils.command.__all__) | ||
return {*distutils.command.__all__, *eps} | ||
|
||
|
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 moved this function out of the class to allow caching without memory leaks (otherwise it would keep a reference to self
).
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'm inclined to say we should do it, even though it will cause some disruption.
The only other options I can think of are:
- Fail intermittently, so users can retry and succeed but also get the signal that something is broken and start complaining to the offending project.
- During the deprecation warning, sleep for some time, giving users a chance to ponder their life choices and maybe investigate the cause, motivating complaints to the offending project.
- Develop a more sophisticated signal from deprecations in build backends to the offending projects.
- Roll back the deprecations and just accept the status quo.
The first three are really about the deprecation strategy of this project and not this specific deprecation. Given that to date, the deprecation process we have in place is the best process available, I'm inclined to just push forward with it, though I'm open to delay these depreciations if we think the churn or disruption is too great.
We'll want a news fragment that clearly describes what the change was, how to respond to it, and links to more detailed rationale for why it was changed. |
Thank you very much for the review @jaraco.
The best I could find for the rationale behind the deprecation was v54.1.0 (#1608) and v54.1.1 (#2592). I added those to the news fragment. hopefully that is OK. |
Can there be an option to disable enforcement of no-dash naming? This does indeed break installation of some packages when using latest |
We're already seeing this causing disruptions in the ecosystem via bug reports to uv and core packages like If the ecosystem had better support for locking and constraining build dependencies, the trade-offs may be different but unfortunately that's not the case yet. |
+1 this is causing a massive disruption in all of our builds. There are just too many legacy packages that violate this paradigm to not have an override option of some kind. I would ask that this be reverted while a discussion can be had on workarounds |
Tried adding this, but getting the same error. |
@toby-j for workarounds in uv, see astral-sh/uv#12440 |
Unexpected build issues I didn't need in my life come Monday morning. Please roll it back and remove the deprecation warning. There's no practical downside to supporting the old convention indefinitely. |
I would strongly encourage this change to be rolled back (@jaraco's 4th recommendation). This change will break countless builds pretty much everywhere. We all either directly or indirectly rely upon a version of some package (it may even be a super big popular one), where a dash is used in setup.cfg. At my place of work, I'm noticing all of my team's builds breaking and we will not be able to use the latest version of setuptools anywhere if this change is kept in place. Even though this was warned about years back, we can't rely upon every 3rd party dependency to fix these formatting issues. |
Exactly this. |
Hi, |
neptune is affected from its dependency on bravado-core; see Yelp/bravado-core#411 for a fix, but we are at the mercy of the package maintainers |
setuptools 78.0.1 disallowed deprecated dash-separated and uppercase options in setup.cfg [1] [1] pypa/setuptools#4870 Change-Id: I7c51eb7d62a209c2ff53b0a6f49dcbdcdabd7c6d
In `setuptools==78.0.1`, they started enforcing that no dependencies specify this legacy field (pypa/setuptools#4870). They ended up reverting in pypa/setuptools#4911, but presumably they'll turn this behavior back on in the future...
setuptools 78.0.1 disallowed deprecated dash-separated and uppercase options in setup.cfg [1] [1] pypa/setuptools#4870 Change-Id: I7c51eb7d62a209c2ff53b0a6f49dcbdcdabd7c6d (cherry picked from commit 0aa7766)
* Update kolla-ansible from branch 'master' to 6ebdbb97954b787a1cb002cb6cc9f174b7b63ffa - setup.cfg: Replace dashes with underscores setuptools 78.0.1 disallowed deprecated dash-separated and uppercase options in setup.cfg [1] [1] pypa/setuptools#4870 Change-Id: I7c51eb7d62a209c2ff53b0a6f49dcbdcdabd7c6d (cherry picked from commit 0aa7766c1b791d9e311aad7b3cf7d01ff2a64c62)
Please see this open issue Urgent: Governance and Change Management Review After Breaking Change in #4870 |
In `setuptools==78.0.1`, they started enforcing that no dependencies specify this legacy field (pypa/setuptools#4870). They ended up reverting in pypa/setuptools#4911, but presumably they'll turn this behavior back on in the future...
setuptools 78.0.1 disallowed deprecated dash-separated and uppercase options in setup.cfg [1] [1] pypa/setuptools#4870 Change-Id: I7c51eb7d62a209c2ff53b0a6f49dcbdcdabd7c6d (cherry picked from commit 0aa7766)
Summary of changes
@jaraco, this is a possible approach for #4864, if we are feeling brave.
But it can break packages that have not addressed the warning.
Closes #4864
Pull Request Checklist
newsfragments/
.(See documentation for details)