-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standardizing the shape of a rule set #6
Comments
I think the style guide at https://docs.bazel.build/versions/main/skylark/deploying.html mostly dictates this. But I could take this issue to suggest that we do more to maintain the style guide for rules authors. It's something the Bazel tech writers have thought about as well. |
Agreed, the style guide seems like a good place for things like providing Aside from naming, there are other, more subtle, aspects to writing rules such that they fulfill the goal to abstract the specifics of the language toolchain and provide a familiar interface to a Bazel user, e.g.
I'm not sure that this can be meaningfully quantified for any given rule set. But, a style-guide or compatibility check-list may be a feasible way to document this.
This is a tricky issue. As you point out, mandating that either side covers all cases seems infeasible. Perhaps a more feasible approach is to document a matrix with language rule set on one axis and things like proto, grpc, ... on the other where the cells document where the corresponding implementation is provided. |
I actually like this route, as |
We could take a page like https://docs.bazel.build/versions/main/skylark/deploying.html and update from there. |
It looks like there's movement from the Bazel team at Google on this: bazelbuild/proposals#247 |
Note, the upstream docs are being extended: bazelbuild/bazel#15800 |
One of the goals of Bazel is to abstract users from the specific toolchains underpinning the implementation of rules. Does it make sense for us to establish standardized functionality that rules should provide? For example:
*_binary
,*_library
,*_test
? What about in languages where this doesn't exactly map to the real contents (ex: jsonnet's binary is a json file).*_proto_library
and*_grpc_library
? What about*_thrift_library
? etcIf we decide to go down this path we also need to remember:
The text was updated successfully, but these errors were encountered: