Remix.run Logo
mgaunard 10 hours ago

My experience is that anything involving Bazel is slow, bloated, and complicated, hammers your disk, copies your files ten times over, and balloons your disk usage without ever collecting the garbage. A lot of essential features are missing so you realistically have to build a lot of custom rules if not outright additional tooling on top.

I'm not too surprised that out of the box docker images exhibit more of this. While it's good they're fixing it, it feels like maybe some of the core concepts cause pretty systematic issues anytime you try to do anything beyond the basic feature set...

gugagore 9 hours ago | parent | next [-]

For some more depth into the "bloat" of bazel, I like this reference: https://fzakaria.com/2024/02/27/hermetic-but-at-what-cost

rienbdj an hour ago | parent [-]

Curious if this bloat is present in a Build Without Bytes scenario?

rienbdj 2 hours ago | parent | prev | next [-]

What can used instead for a large multilanguage repo where we want to build every commit?

Genuine question - also find Bazel frustrating at times.

paulddraper 9 hours ago | parent | prev [-]

To be clear, when you say “they’re fixing this”…the Bazel maintainers have nothing to do with this.

Bazel is a general purpose tool like Make. But with caching and sandboxing and different syntax.

Make is no less focused on Docker than Bazel is.

Unlike Make however, Bazel does make it easy to share rule sets.

But you don’t need to use other people’s Bazel rule sets any more than you need to use other people’s Make recipes.

This author has a clever way to minimize needing to touch layers at all.

liuliu 9 hours ago | parent [-]

rules_oci (and bunch of rules_* under bazelbuild / bazel-contrib org on GitHub) is Bazel recommeded rule sets.

I don't agree with your parent comment about Bazel, but your comment is not fair too. Bazel tries to be better build tool so it took on responsibility on registry / rules_* and get critics for it is a fair game.

The "bloated Bazel" blame is not fair too, but I think somewhat understandable. If you ever going to only do JavaScript, bun or other package manager is enough and "lighter-weight". Same goes to uv + Python bundle. Bazel only shines if you are dealing with your C++ mess and even there, people prefer CMake for reasons beyond me.