layout | title |
---|---|
contribute |
Recommended Rules |
In the documentation, we provide a list of recommended rules.
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 GitHub issue.
After a review by the Bazel core team, it will be recommended on the Bazel website.
- 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 BuildKite with the latest version of Bazel. Tests should always pass (e.g. used as a presubmit check).
- 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.
- 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 filed.
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.