Surface diagnostics for non-reproducible repo rules
- Dominant language
- Java
- Stars
- 25.8k
- Forks
- 4.6k
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 72
Description
### Description of the feature request:
It's very helpful for a repo rule to mark itself as `reproducible = True` (assuming it is!) as that allows it to participate in both the local and remote repo contents cache. However, it's very easy for rule authors to forget to do that.
It would be nice to surface repository rules that forget to explicitly set the reproducible bit (i.e. encourage setting either `reproducible = True` or `reproducible = False` explicitly).
Some idea we discussed in https://bazelbuild.slack.com/archives/CA31HN1T3/p1769937819949869
- Always warn if not set
- Provide a bazel flag such as `--extensions_of_unknown_reproducibility=error|warn|ignore` so users can control the behavior and apply patches/send PRs to rulesets to improve the ecosystem
@fmeum
### Which category does this issue belong to?
_No response_
### What underlying problem are you trying to solve with this feature?
_No response_
### Which operating system are you running Bazel on?
_No response_
### What is the output of `bazel info release`?
_No response_
### If `bazel info release` returns `development version` or `(@non-git)`, tell us how you built Bazel.
_No response_
### What's the output of `git remote get-url origin; git rev-parse HEAD` ?
```text
```
### Have you found anything relevant by searching the web?
_No response_
### Any other information, logs, or outputs that you want to share?
_No response_
Contributor guide
Research direction
Start by reviewing the linked Slack discussion and tracing Bazel's repository-rule reproducibility handling; the issue names no files, tests, or entry points. Done should mean rules that omit the setting are surfaced, with behavior controllable through the proposed error, warning, or ignore modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100