bazel-contrib / bazel-contrib/rules_python
`bazel run` should run in bazel env working directory
- Dominant language
- Starlark
- Stars
- 688
- Forks
- 721
- Avg merge
- 15h 7m
- Merged PRs (30d)
- 76
Description
# 🚀 feature request
### Relevant Rules
This is meant to change the behavior of `py_binary`
### Description
Currently if you run a binary with `bazel run` then the working directory will be the sandboxed bazel directory. This behavior is inconsistent with other implementations, for example in `rules_go` it is set like this https://github.com/bazel-contrib/rules_go/blob/b60f4475e3d97431318da1a0a81752a8884e6994/go/tools/go_bin_runner/main.go#L250
### Describe the solution you'd like
`bazel run` should use the `BUILD_WORKING_DIRECTORY` environment variable to set the working directory.
### Describe alternatives you've considered
You can do this hack where you add `--run_under="cd $PWD &&"` to the command but it only works on POSIX systems and you basically have to know the trick to have the command do what you might expect
Contributor guide
Research direction
Start at the py_binary implementation involved in bazel run and compare its behavior with the rules_go runner linked in the issue. Verify how BUILD_WORKING_DIRECTORY is exposed, then confirm that bazel run uses it as the working directory rather than the sandbox directory.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100