In the documentation, we provide a list of
This is a set of high quality rules, which will provide a good experience to our
users. We make a distinction between the supported rules, and the hundreds of
rules you can find on the Internet.
If a ruleset meets the requirements below, a rule maintainer can nominate it
to be part of the recommended rules by filing a
After a review by the Bazel core team, it
will be recommended on the Bazel website.
Requirements for the rule maintainers
- The ruleset provides an important feature, useful to a large number of Bazel
users (for example, support for a widely popular language).
- The ruleset is well maintained. There must be at least two active maintainers.
- The ruleset is well documented, with examples, and easy to use.
- The ruleset follows the best practices and is performant (see
the performance guide).
- The ruleset has sufficient test coverage.
- The ruleset is tested on
with the latest version of Bazel. Tests should always pass (e.g. used as a
- The ruleset is also tested with the upcoming incompatible changes. Breakages
should be fixed within two weeks. Migration issues should be reported to the
Bazel team quickly.
Requirements for Bazel developers
- Recommended rules are frequently tested with Bazel at head (at least once a day).
- No change in Bazel may break a recommended rule (with the default set of
flags). If it happens, the change should be fixed or rolled back.
If there is a concern that a particular ruleset is no longer meeting the
requirements, a GitHub issue should be
Rule maintainers will be contacted and need to respond in 2 weeks. Based on the
outcome, Bazel core team might make a decision to demote the rule set.