Remove language-specifics from this repo
- Dominant language
- Rust
- Stars
- 4.4k
- Forks
- 394
- PR merge metrics
- No merged PRs in 30d
Description
Just raising this for discussion (would you prefer it in Discussions?)
Currently buck2 is on the path of "include all languages", with requests like https://github.com/facebook/buck2/issues/394 sure to be followed by requests for 100 other languages and frameworks.
Take a look at https://bazel-contrib.github.io/bazel-catalog/ or awesomebazel.com to get an idea of the cardinality of these for Bazel today.
This also confuses the "Buck2 ships with no languages" story, which is a core "why is it better than Bazel" selling point. Granted, language rules are in starlark, while Buck2 daemon is in Rust, but having them co-located in the same repo makes this a subtle distinction.
Here are some other issues I see with this:
1. You don't have a principled answer for what is "in scope" here. You have to deal with the flood of issues and pull requests.
2. If you want to drop some language, it's a breaking change for users. Whatever semver guarantees you make will have to vary across folders.
3. Tagging the repo doesn't make much sense, unless all languages are maintained on the same cadence (e.g. released together)
4. Language rules have to be contributed under the license agreement of this repo, which stifles innovation by some companies.
5. GitHub's affordances for scaling a monorepo aren't that good - you have to invent ways of tagging issues for which language, manage CODEOWNERS, etc
6. It doesn't encourage an ecosystem to grow their language rules in their own repository, see https://github.com/facebook/buck2/issues/423 for what I imagine that would look like.
Contributor guide
Assessment
This issue has not been assessed yet.