Bazel: Love it or Leave it? My Short Experience

For the past two years, I’ve been using Bazel, an open-source build tool similar to Make, Maven, and Gradle. As their documentation states: “Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large code-bases across multiple repositories, and large numbers of users.”

My experience has primarily been within a monorepo setup, managing code written in both Java and Golang. While I wouldn’t call myself a Bazel guru, I’ve become comfortable with the core functionalities:

The good

The bad

By acknowledging these drawbacks, we can make informed decisions about whether Bazel is the right fit for a particular project.

And the ugly

References

  1. Bazel build system
  2. Kubernetes removes bazel
  3. Kubernetes removes bazel as build system
  4. BazelCon - A bazel related conference
  5. Gazelle - a bazel build file generator for Go and protobuf
  6. Bazelisk