-
-
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
Backend should not say that setuptools is needed to build #1594
Conversation
There are some tests that need to be updated. Should we be updating this to |
Sorry, didn't spot them. Fixed now.
Well, if a frontend is calling the setuptools backend, it's by definition got setuptools installed, and a version that has the backend, so it makes no sense to ask the frontend to install setuptools... It's up to the project being built to specify setuptools in |
Is there anything I can do to move this forward? |
This seems fine to me and the logic seems fine, but:
It seems to me that you are saying that On the other hand, are we entirely sure that no one would want to do a two-stage build, where the requirements are gathered in one environment and then used to build a second environment that may not have So I guess my question is, what is the downside of keeping |
Reading pypa/pip#5743 (comment) (and I did not have time to read the entire thread), it seems to me that this is solving a problem in the implementation of PEP 517 where the I am not sure if that was resolved in another way as well, but I would think that you would still have the same problem for the I'll also note that the example in PEP 517 specifically includes |
Well, it was specifically in our implementation of build isolation, but yes, how we implemented build isolation did mean that we were subject to this issue. We (specifically @benoit-pierre) modified the isolation implementation to work around the problem. Fundamentally, pip can't incrementally install a set of requirements into an arbitrary directory. It can install one set of requirements (that's the On the other hand, though, the section on build environments in PEP 517 states that hooks are always called in an environment that contains the requirements from
True, but (a) it's probably less likely to happen, and (b) there's not much we can do about it, as it certainly is correct for the setuptools
I think that example is wrong, to be honest. I'm not going to insist that this goes in. We've worked around it in pip, and I'm happy to concede that it's a matter of how you interpret PEP 517, so there's no obviously right answer. I do think that omitting "setuptools" will make it easier for other clients to set up a build environment without getting bogged down in complex corner cases, but that's mostly theoretical at the moment (maybe if someone were motivated to improve the environment isolation code in https://github.com/pypa/pep517 they'd have a view, but that's probably not going to be me ;-)) |
I think @pfmoore changes here are logical choices (tox uses its own pep-517 implementation, but all this holds there too). |
Thanks all for the reviews. |
OK, I defer to the majority here, merging. |
Released as 40.6.3 |
No description provided.