Bazel Blog

Bazel 0.15

The Bazel team is happy to announce a new version of Bazel, Bazel 0.15!

On a related note, we'll be organizing the 2018 Bazel User Conference in NYC, on October 9-10. If you would like to join us, please register at: https://goo.gl/forms/1ySgfiKXzntp6Knj2. Check out last year's session recordings on the BazelCon website.

Here are the main changes of Bazel 0.15:

C++

  • C++ libraries can access data dependencies (runfiles). See usage info.
  • C++ artifacts use correct extensions on Windows (.obj, .lib, and .dll).

Android

  • Added support for including select Java 8 APIs into Android apps targeting pre-Nougat Android devices with --experimental_desugar_java8_libs.
  • Added support for pseudo-locales en_XA and ar_XB with --android_aapt=aapt2.
  • Added support for building fonts as resources.
  • The native Android rules are being incrementally migrated to Skylark implementations in rules_android.

Apple

Java

  • The java_plugin.data attribute has been removed.

Miscellaneous changes

  • Bazel now always runs binaries in with bazel run in interactive mode. The --nodirect_run command line option is now a no-op.
  • The bazel run --noas_test flag is no longer supported.
  • Bazel now allows almost all 7-bit ASCII characters in labels.
  • Indentation on the first line of a file was previously ignored. Bazel now displays an error when it encounters such indentation.
  • The --incompatible_disable_glob_tracking flag has been removed.
  • SkyQuery's rbuildfiles now returns targets corresponding to broken packages.
  • Introduce build support for providing cache prefetch hints.
  • The --batch flag has been deprecated. For build isolation, we recommend using the --nokeep_state_after_build flag instead. This flag guarantees that no incremental in-memory state is kept between builds. In order to keep restarting the Bazel server and jvm at every build, please explicitly use the bazel shutdown command.
  • The --experimental_remote_spawn_cache flag is now enabled by default. Remote caching no longer requires the --*_strategy=remote flags and fails if they are specified.
  • If the --incompatible_no_support_tools_in_action_inputs flag is enabled, Skylark action inputs are no longer scanned for tools. Move any such inputs to the newly introduced 'tools' attribute.

Community

Thank you to our contributors

This release contains contributions from many people at Google, as well as: Benjamin Peterson, Christian Verkerk, Dmitry Petrashko, Ed Baunton, Jamie, Kelsey Z, Natan Silnitsky, Siddhartha Bagaria, and Taras Tsugrii.

Thank you to everyone who contributed to this release!

Discuss on Hacker News.