bazel-contrib / bazel-contrib/rules_python

Allow overriding the build rule gazelle uses for libraries/tests/binaries

Open
#1,269 5 comments 0 reactions 0 assignees View on GitHub
gazelle type: feature request
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

# 🚀 feature request

### Relevant Rules

Gazelle Plugin

### Description

There are two issues I'm running into:
1) Some of my binaries need to use `py_image` rather than `py_binary` but gazelle can't manage deps for `py_image`.
2) I have a custom macro called `pytest_test` that I use for my tests that use pytest but Gazelle generates a `py_test` target for those files. I have to manually ignore all of those files and then manually manage the target since the `py_test` rule can properly run them.

### Describe the solution you'd like

It would be great if there was a Gazelle annotation where, for the current scope, Gazelle could be configured to use a different rule for particular target types.

### Describe alternatives you've considered

The only workaround I know of is to instruct Gazelle to ignore the files and then manage the build targets manually.

Contributor guide

Open the contributing guide

Research direction

Start by reading the Gazelle Plugin and the relevant rules named in the issue, focusing on how it selects rules for libraries, tests, and binaries. The work is done when a scope-specific annotation can select alternatives such as py_image and pytest_test while Gazelle still manages dependencies for those targets.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.