-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Try switching to venv for isolation #10720
Conversation
Looks nice 🙂 Am I right that the only changes in |
I was trying to divert most of the work to |
a1f5e77
to
044d900
Compare
No, I also made some of the arguments kw-only and dropped one of them which might not make sense anymore. That's basically why there's a change in that file. I'm a bit confused by the normal and overlay prefixing mechanism we've got going on, because it seems like we allowed having pyproject.toml declarations to override whatever is provided by the backend... which... seems wrong? Anyway... it's past midnight, so... I go to sleep now and come back to this tomorrow morning. |
Okay, this builds a wheel locally without any setuptools in the environment (i.e. is using the correct paths for the site-packages in isolation).
Let's see what the test suite says. :) |
Alright, not gonna lie, this is better than I expected. |
So, I've spent a decent chunk of time today picking this back up. I think the current logic that we have for build environments in It currently has two "prefixes":
This is fairly weird, because I think we should be erroring out cleanly if there's any sort of inconsistency between the two sets of dependency declarations, instead of handling these in the way that we're currently handling them. |
Yeah I think we should. And even if we don’t, it seems the logic should have been entirely the other way around; I don’t see how requirements from Since there are very unlikely any libraries relying on this behaviour (and they shouldn’t anyway) because we do emit warnings when there are unsatisfied dependencies, let’s just change that. |
This should be logically equivalent, and does not require understanding of ExitStack to understand what it's doing.
This allows the caller to control which executable is used, allowing for the caller to tweak the installation semantics.
This makes the call-site easier to read, since the caller explicitly specifies what argument corresponds to the requirements to be installed.
This helps ensure that the user gets a proper build environment.
TODO: Better body.
This ensures that the string is not highlighted as a regular expression, on editors that do that (eg: Visual Studio Code).
044d900
to
6b676ef
Compare
Thinking about this a bit more, I think this needs a slightly different approach. This should roll out via our transitioning model, via |
Sry for posting this here, but this is the place that comes closest to discussing future imporvements in What I feel lacking currently in In helmholtz-analytics/mpi4torch#7 I am currently running into exactly this issue. E.g. executing
I would expect |
That’s somewhat inherent to build-isolation, can be controlled to an extent via I don’t have links handy, and I don’t wanna load this PR with a discussion that’s unrelated to it; please look at the existing closed/locked issues about this or file a new feature request if you think there’s more to discuss on this topic. |
Agreed. Thx for the |
Closing in favor of #11619 |
I wanna see how difficult this would actually be, by seeing how the CI reacts to this.
Closes #6264, hopefully.
Closes #7953, hopefully.