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
- New Python Interest Group! Evan Jones kickstarted a thread about Python development on bazel-discuss, which resulted in a new Python special interest group. Read the meeting notes and join the mailing list.
- Alex Eagle has been working on a prototype for deploying an Angular app to Kubernetes using Bazel.
- Hassan Syed has been working on new Kotlin rules, using persistent workers to significantly improve the performance.
- Paul Johnston created some initial rules for building static websites with hugo.
- Harvey Tuch, a contributor on Envoy, wrote a blog post about External C++ dependency management in Bazel.
Tools
- 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.
Performance
- Jason Lunz wrote a nice blog post: We Switched from Maven to Bazel and Builds Got 10x Faster
- Mike Morearty wrote an article about How to Create a Persistent Worker for Bazel. This technique gave a 3x speedup of their Typescript compilation.
- Nicolò Valigi explained how to get faster Bazel builds with remote caching.
- We added a section on Remote Caching to our website. It's a great way to significantly speed up your CI builds.
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.