Skip to content

Controlling location of isolated build environments? #655

Closed

Description

@gwerbin

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.

Activity

  1. changed the title [-]Controlling location of isolated build environments[/-] [+]Controlling location of isolated build environments?[/+] on Aug 15, 2023
  2. uranusjr commented on Aug 16, 2023

    @uranusjr
    Member

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

  3. webknjaz commented on Jan 9, 2024

    @webknjaz
    Member

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

  4. gwerbin commented on Jan 10, 2024

    @gwerbin
    Author

    @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.

  5. vyasr commented on Oct 14, 2024

    @vyasr

    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.

  6. layday commented on Oct 14, 2024

    @layday
    Member

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

  7. henryiii commented on Oct 14, 2024

    @henryiii
    Contributor

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

  8. webknjaz commented on Oct 14, 2024

    @webknjaz
    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.

  9. vyasr commented on Oct 14, 2024

    @vyasr

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions