-
Notifications
You must be signed in to change notification settings - Fork 3.1k
if the legacy install fails (eg if setuptools is not present) fall foward to use_pep517 #10530
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
Comments
I don't think we should be adding such try-a-different-build-system mechanisms. We've started drawing clearer boundaries between the two build systems, with the intent of more clearly communicating to the users that the legacy mechanism is going to be removed (ALA #8102). Once the legacy build system is removed, we'll drop our runtime dependency on setuptools as well -- which seems to be the motivation here. |
All supported mechanisms to install pip will also install setuptools, so the only way you can do this is by getting things from a redistributor (in which case, go talk to them about why they changed things and how it creates a bad user experience for you) or by removing things that were there (you broke it, you get to keep both the pieces). I think this, combined with the concerns I flagged above, serve as more than reason enough to not do this. |
Just for the record: this report comes from a conversation about when one of the mechanisms – |
Yep yep, I'm aware. I've had enough bad experiences interacting with the old guard of CPython core developers in the recent past, that I won't bother responding over on python-dev. That discussion also led to a PR that hasn't been mentioned on the thread FWIW, and that's where I've responded with my thoughts on what we should do here -- python/peps#2096 (comment). |
I'm commenting over there (for the moment at least). IMO the only important point here is when ensurepip stops including setuptools. If we (the pip maintainers) are managing that, we'll do it at a point when it makes sense for us and our users (and if we disrupt any of our users, we'll take the flak as normal 😉). If python-dev¹ take over making that decision (for example, by insisting on following the IMO somewhat over-specific statement in the PEP) then 🤷 it's on them. But honestly, I think this is all just talk. In reality we'll just continue as we have been and there's nothing to see here 🙂 ¹ Disclaimer: I'm also one of the "old guard of CPython core developers". I'm wearing my packaging hat in this case, though - but I'd like to think I'm balancing the two roles without offending anyone 😉 |
What's the problem this feature will solve?
currently running
pip install
against a legacy project without apyproject.toml
whilesetuptools
is unavailable fails:forcing
use-pep517
means the package installs fine:this prevents ensurepip (and virtualenv) removing the
setuptools
bundled dep see here: https://mail.python.org/archives/list/[email protected]/thread/3BVAUIQOEOXAULHVYQNLLQIZQQETX2EV/#3BVAUIQOEOXAULHVYQNLLQIZQQETX2EVDescribe the solution you'd like
if the legacy install fails fall foward to use_pep517
Alternative Solutions
just remove the legacy install path eg #8102
Additional context
#10487
Code of Conduct
The text was updated successfully, but these errors were encountered: