Hacker News new | ask | show | jobs
by chatmasta 1182 days ago
My problem with Bazel - at least based on my understanding when I evaluated it - is that you can't use the language-specific package managers for each module in your monorepo, so it's all or nothing. I'd prefer a tool that makes it much easier to defer build tasks to my package manager of choice in each project (eg Yarn for TS, Poetry for Python, etc.) and that lets me define rules at one level of abstraction above this.

In our monorepo, we ended up just using a Makefile, since it basically does that. Of course the Makefile is now a few hundred lines and we have about 60 *.compose.yml files, but that's another story.

Our current solution still uses the Makefile, but we basically split the monorepo into a Python part and a TypeScript part, and each of those has its own monorepo build system (Yarn workspaces for TS, and Poetry with Pants for Python).

1 comments

This was my main gripe with bazel. It's the worst build tool for any individual language but the best (only?) that can do all of them.

Other big complaints were:

- big CPU hog

- bad IDE integration (esp scala/java for intelliJ)

- it lets people write i-cant-believe-its-not-python, which is far too much rope to hang yourself with. I've seen horrors.