Bazel Blog

Bazel 0.10

We're proud to announce the release of Bazel 0.10. The 400+ commits since last release include performance optimizations, bug fixes, and various improvements.

There is a new android test rule. android_local_test tests android_library code using Robolectric, a unit test framework designed for test-driven development without the need for an emulator or device. See the documentation for setup instructions and examples.

The depset type has evolved. To merge multiple depsets or add new elements, do not use the operators +, +=, |, or the .union method. They are deprecated and will be removed in the future. Instead use the new depset constructor, which has a better performance. For example, instead of d1 + d2 + d3, use depset(transitive = [d1, d2, d3]). See the documentation for more information and examples.

In addition to this new release, the Bazel community has been very active. See below what happened recently.

Languages & Rules


  • Spotify released a collection of tools for working with Bazel workspaces, mostly tailored towards writing JVM backend services.
  • Ever wanted to save a file and have your tests automatically run? How about restart your webserver when one of the source files change? Take a look at the Bazel watcher.


Did you know?

  • The heart of Bazel is a parallel evaluation and incrementality model called Skyframe.
  • Bazel is more than 10 years old, even though it was just open-sourced 3 years ago. John Field goes into the prehistory of Bazel in the opening remarks of Bazel Conference 2017 here.

Did we miss anything? Fill the form to suggest content for a next blog post.

Discuss on Hacker News or Reddit.