bazelbuild/bazel
Ver no GitHubDocumentation issue: General Rules: When to use genrule vs. rule ?
Open
#12.781 aberto em 6 de jan. de 2021
P3help wantedteam-Configurabilityteam-Documentationtype: documentation (cleanup)
Métricas do repositório
- Stars
- (25.384 stars)
- Métricas de merge de PR
- (Mesclagem média 22d 20h) (77 fundiu PRs em 30d)
Description
Documentation URL: https://docs.bazel.build/versions/master/be/general.html#genrule
This documentation lacks guidance on whether, or in what situations, a rule() should be favored over a genrule() (or vice-versa).
IMHO, rules are preferable because:
- They can return providers, thus allowing references to their targets to be typechecked.
- The Make variable syntax of
genrules is obscure and harder to look up. - They're more explicit in general and support various
docfields for documentation. - I seem to recall some quirks around inferring the relevant genrule from an output filename, but perhaps that's been fixed by now.
I guess maybe genrule's terseness could be justified if the target and its generator are one-offs?
But that's just my opinion. I'd prefer official guidance from Bazel Team, hence this issue.