bazel-contrib / bazel-contrib/rules_python

`bazel run` should run in bazel env working directory

Open
#2,679 1 comment 0 reactions 0 assignees View on GitHub
help wanted P4
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.