Closed alexeagle closed 2 years ago
A good example for the kind of ruleset we might want to host is rules_cuda that is hidden inside tensorflow/runtime. See https://github.com/tensorflow/runtime/issues/56; I have suggested that it would be a good candidate to live in bazel-contrib as it as a ruleset clearly has wider reach than just tensorflow and there have been various forks of the ruleset overtime which all live in various personal repos in various states of maintenance.
Its also an interesting case for bzlmod as in its current form it patches rules_cc
which wouldn't fit into the current bzlmod structure.
https://github.com/bazel-contrib/SIG-rules-authors/issues/27 is starting to highlight some of the criteria we need to establish for this.
Observations of criteria being established from that issue:
bazel-contrib/<repo_name>
-> contrib_<repo_name>
@keith raised the concern about "migrating everything and becoming a wasteland for low usage repos" however I think that you can use archiving of repositories to solve this to some extent; I propose that rulesets that are members should ensure support for LTS versions of bazel and that we should (with some notification and grace period) archive anything that doesn't meet this criteria. I think this would provide a clear mechanism to users to know which repos are actively supported but without breaking anyone by removing repos from the github org.
"who is going to maintain" - this also begs the question, what reputation does this person have, and do they have an employer backing the repo with other engineers to replace this person when they eventually move to another project? @shs96c certainly has an excellent reputation in the Bazel community for example. But how do we tell that without being biased or exclusionary?
"ensure support for LTS versions of bazel" and "actively supported" is the hard part. How can we tell? Maybe we require that rulesets have some bazel-in-bazel integration tests that ensure the compatibility, but we don't really know if there's good coverage. If users file issues and the maintainers don't respond in X months does that mean we archive the ruleset?
The SIG has some funding now, so if someone has a couple hours to write up a document they could bill for that time.
Criteria for accepting rule sets into this repo and avoid them from getting stale:
I think this is a good list. I think we should also codify the failure cases for this, because realistically without directly funding folks we won't really be able to hold them accountable to specific SLAs long term, and folks could leave the projects at any time, leading to us needing to find new maintainers, or archive the project etc.
When something no longer meets the criteria:
@jsharpe Now I am developing a pure starklark implementation for cuda rules. Just FYI.
We'll probably host some popular rulesets in this GitHub org.
Why?
Before we start bringing these in, we need to decide policy bits: