3 ms·
> do you want something very general-purpose, or is something more specific to certain language(s) appropriate? This. At work, we use Bazel for the Java monore
by zellyn 2y ago
> do you want something very general-purpose, or is something more specific to certain language(s) appropriate?
This. At work, we use Bazel for the Java monorepo, and it's great (although pants2 seems like it might be better? Dunno, never used it...). Folks can convert individual classes to Kotlin, as they like to do, and it all just works.
The Go monorepo still uses standard Go tooling, with a couple makefiles and some scripts: there are certainly things that bazel/pants2 would do better, but the Go tooling is just so nice (and so fast) that there's a much higher activation energy required to give it up.
[Edit: adding...]
One note: probably the biggest thing about a monorepo is that you really need to invest in tooling to make your CI still go fast. Typically, that means (a) tracing out dependencies of a particular change, and testing only those things, and (b) partitioning the tests up intelligently and running them on lots of different machines.
IIUC, you could potentially get around having to do any partitioning or dependency tracing yourself by just using Bazel, with a bunch of Bazel workers running in the cloud, and then just do `bazed test //...` and let Bazel figure it out.
Otherwise, you're going to want to find or write something that divides your tests up.