Bazel

I found out that Google is open sourcing (more or less) the build system used internally, Blaze. The open source version is called Bazel.

Bazel logo

This is one the key tools that allows Google engineers to keep most of the code in a single repository, with millions of cross references and still be productive. Rachel Potvin and Josh Levenberg wrote a fantastic article explaining how this works in the Communications of the ACM.

This is how Bazel files look like:

java_binary(
    name = "my-other-runner",
    srcs = ["src/main/java/com/example/ProjectRunner.java"],
    main_class = "com.example.ProjectRunner",
    deps = [":greeter"],
)

java_library(
    name = "greeter",
    srcs = ["src/main/java/com/example/Greeting.java"],
)

No XML, just BUILD artifacts described in clear syntax. The Github page with the source code is here.

Written on August 11, 2016