Skip to content
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

Controlling location of isolated build environments? #655

Open
gwerbin opened this issue Aug 15, 2023 · 8 comments
Open

Controlling location of isolated build environments? #655

gwerbin opened this issue Aug 15, 2023 · 8 comments

Comments

@gwerbin
Copy link

gwerbin commented Aug 15, 2023

Is there a way to control exactly where isolated build environments are created?

For example, I'd like to ask python-build to create its isolated build environments inside .local/tmp/python-build inside my project.

Sorry if this is documented somewhere and I didn't see it.

@gwerbin gwerbin changed the title Controlling location of isolated build environments Controlling location of isolated build environments? Aug 15, 2023
@uranusjr
Copy link
Member

What is the reason behind this request? Is it so you can use the environment for other purposes? What are they?

@webknjaz
Copy link
Member

webknjaz commented Jan 9, 2024

Related discussion: pypa/pip#12461. A workaround could be to use the standard env vars TEMP, TMP, TMPDIR.

@gwerbin
Copy link
Author

gwerbin commented Jan 10, 2024

@uranusjr I don't recall the original impetus for my request. I think I was having trouble with filesystem permissions in a restricted environment. It would also be useful in a variety of scenarios like inspecting the results of a failed build.

I think I had tried changing TMPDIR and found that it had no effect, but this was months ago and I don't actually remember. If TMPDIR is meant to work for this purpose, that would probably be fine for anything I'd need.

@vyasr
Copy link

vyasr commented Oct 14, 2024

FWIW we're running into another use case for this, which is when the build process involves complex compilation steps and we would like them cached. We use sccache for this purpose, but if the paths to files changes sccache will view that as a new file and every compilation will be a cache miss. That means that we cannot rely on caching the build results of any artifacts that includes objects from the build environment in the compile line because the path to that environment is not stable.

@layday
Copy link
Member

layday commented Oct 14, 2024

Is that because of where the sdist is expanded (#614) or do you actually need to control the location of a build's venv?

@henryiii
Copy link
Contributor

For compiled use case (like scikit-build-core and meson-python), it's the build venv.

@webknjaz
Copy link
Member

@layday I think some envs may have restricted/read-only file system with only a small portion being read-write. This is often the case with containers.

@vyasr
Copy link

vyasr commented Oct 14, 2024

Yes, as Henry says it is the build environment for compiled use cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants