Skip to content
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

Augment a registry to catalog existing rulesets #2

Open
alexeagle opened this issue Oct 7, 2021 · 10 comments
Open

Augment a registry to catalog existing rulesets #2

alexeagle opened this issue Oct 7, 2021 · 10 comments
Labels
bounty-1000USD A contributor who completes this will be rewarded $1000 help wanted Extra attention is needed

Comments

@alexeagle
Copy link
Contributor

alexeagle commented Oct 7, 2021

There are existing resources for Bazel users to find rulesets, but none are good enough:

The goal of this issue is to improve one of these to satisfy user needs, which are:

  1. Not have six different places to look
  2. Automation to stay updated with respect to canonical datasources
  3. Full-text search, i.e. a search for "typescript" should yield aspect_rules_ts. Implies that README content appears.
  4. Can figure out which rulesets are "recommended": active, maintained, released recently, some automated or manual curation of a "quality signal"
  5. Can see how widely adopted the ruleset is, based on stargazers, download count, etc
  6. Can see/filter on important attributes like "is tested on Windows", "works with Bzlmod", "tested on Bazel 8"
  7. Can see/filter on "is this a ruleset" vs. "it's a C++ library with some BUILD files"
  8. Include rules on BCR, but maybe also those which aren't
  9. [Stretch] includes a stardoc pipeline, similar to readthedocs.com so that Starlark API docs appear, are searchable
@jsharpe
Copy link
Member

jsharpe commented Nov 25, 2021

On thing we should probably suggest is a standard repository tagging structure; this is how buildkite discovers plugins; we could do something similar with rules? e.g. bazel-rules github repository tag?

@alexeagle alexeagle added the help wanted Extra attention is needed label Dec 14, 2021
@alexeagle
Copy link
Contributor Author

Maybe we also want to take over a page like https://docs.bazel.build/versions/main/rules.html#recommended-rules as part of this issue.

@alexeagle
Copy link
Contributor Author

I think an "MVP" to resolve this issue should have:

@alexeagle alexeagle added the bounty-1000USD A contributor who completes this will be rewarded $1000 label Apr 19, 2022
@hobofan
Copy link
Member

hobofan commented May 31, 2022

So from what I've gathered from today's SIG meeting, it seems like having the catalog is still something that has use for the SIG, and will only be partially supplemented/replaced by the BCR.

On top of that, it seems like having an up-to-date list of all rulesets and their existing (pre-bzlmod) dependencies would also help in bootstrapping the BCR by giving insight into which are the "most blocking" rulesets for wider bzlmod adoption (= rulesets that many other rulesets depend on).

So as the first step toward that, my plan would be to:

  • Try to extend the existing catalog to be as comprehensive as possible regarding the number of rulesets
  • Extend the information about the existing rulesets with:
    • Dependencies (via manual inspection of WORKSPACE/README)
    • Name in the BCR (if already published there)
    • Whether automatic publishing to the BCR is set up (to differentiate from sporadic one-off publications that you can't depend on yet as a rules author; I've seen that a GH Action for that is in the works)
    • Whether it's bzlmod module has feature parity (which I understand isn't a given for everything that exposes repository rules?)

@alexeagle WDYT?

@aiuto
Copy link

aiuto commented May 31, 2022 via email

@alexeagle
Copy link
Contributor Author

That sounds great, but running that CI sounds expensive and hard, and the SIG has barely done any meaningful engineering so far, so I don't think we should try to expand the scope of this one.
Also, the BCR has CI for interoperability as an explicit goal and has corporate funding to operate it, so maybe this one should be on the Google side of the "fence"?

@alexeagle
Copy link
Contributor Author

Update: @ashi009 has made some progress and we now have https://github.com/bazel-contrib/bazel-catalog as a home for it.

@alexeagle
Copy link
Contributor Author

@alexeagle
Copy link
Contributor Author

A "minimal viable product" for this is now at https://bazel-contrib.github.io/bazel-catalog/

@alexeagle alexeagle changed the title Catalog existing rulesets Augment a registry to catalog existing rulesets Nov 12, 2024
@alexeagle
Copy link
Contributor Author

Another update 15mo later - I have not found volunteer time to make progress on that MVP.

Discussed at today's Rules Authors SIG meeting that we would fund a developer to come make progress on this.

Note that the volunteer will have to be mostly self-managing since the SIG only meets bi-weekly and no one has much time to mentor/direct this work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty-1000USD A contributor who completes this will be rewarded $1000 help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants