-
-
Notifications
You must be signed in to change notification settings - Fork 40
[FR]: Remove need for runfiles directory to be writable #339
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
Another place where this could be used is in an immutable container - the container is built and then at execution time the container image is made immutable and so writing to the runfiles directory would potentially not be possible in this case too. |
Also the current behaviour would prevent multiple copies of a binary running at the same time since it would delete files being used by the first process on the execution of the second process. |
We've run into this issue with when running |
@alexeagle this issue is stopping us from migrating a couple of our lambdas to rules_py, and it seems somewhat straightforward to resolve. The runner could accept an env var as proposed above. Either |
Little bit of context and progress here; We have recently started using uv for venv generation which supports relative paths astral-sh/uv#3717 it's still experimental but it's almost there. But we are still blocked on python/cpython#83650 which still forces us to use an absolute path However, i have been hitting my head against the wall trying to solve this and we have solved this with @voxeljorge. It's approximately #427 but needs a static symlink from |
Some updates here. Removing the need for the virtualenv to be writable requires two things, a relocatable "python" a take at which is #546, and to assemble the Conceptually it should be as simple as running our existing virtualenv builder tool with a normal build action, rather than at application runtime. Unfortunately due to the If we could assume that all external files are source files, which is currently true for So it looks like this feature requires integrating both sources and build results from the current and external workspaces into a single relocatable For efficiency at The short path to implementing this appears to be adding both some file search machinery and a copying codepath to the existing virtualenv tool, to be activated by a feature flag set by the static virtualenv building action. Hopefully will have something on that this week. |
What is the current behavior?
The venv is recreated whenever the binary is executed. This prevents packaging up the binary and installing it to a system outside of bazel as an application deployment that can be run by other users from a common directory e.g. an /apps directory, possibly served read-only over nfs or similar.
Describe the feature
I would like either for the venv creation to fallback to a user writable location e.g. XDG_CACHE or to remove the need to recreate the venv links so it can be done once by an admin user and then subsequent users can just execute from the precreated venv.
The text was updated successfully, but these errors were encountered: