bazel-contrib / bazel-contrib/rules_python

Add repl_env dependency support

Open
#3,200 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

# 🚀 feature request

### Relevant Rules

Relevant rules are `//python/bin:repl` & `//python/bin:repl_env`.

### Description

Goal would be to enable repl use similar to how is is used now:
`bazel run @rules_python//python/bin:repl --@rules_python//python/bin:repl_dep=//python:my_rule_with_deps`
This is how I start interactive shells with access to runfiles and python packages depended on by the specified label.

It would be convenient to also enable the same for environment variables specified in that label. Could potentially be added to repl_dep. Alternative is:
--@rules_python//python/bin:repl_env=//python:my_rule_with_deps

### Potential Solution

Could add env attr assingment [here](https://github.com/bazel-contrib/rules_python/blob/bb2aad2d1e3f883c9cdc2264e0b4a2815233db57/python/bin/BUILD.bazel#L34).

kwargs forwarding should take care of any changes needed in py_binary_rule impl (I think).

Contributor guide

Open the contributing guide

Research direction

Start at python/bin/BUILD.bazel around line 34 and inspect the //python/bin:repl and //python/bin:repl_env definitions, including how repl_dep is handled. Determine whether environment variables from the label passed to repl_dep should be supported or exposed through repl_env, then verify that the interactive shell receives those variables when run with the specified label.

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
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.