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
andar_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
- Added the
--apple_enable_auto_dsym_dbg
flag. - The
non_propagated_deps
attribute has been removed fromobjc_library
andapple_binary
.
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 thebazel 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
- Tony Allevato has published rules_swift which can be used to build Swift libraries and executables for Apple platforms (iOS, macOS, tvOS, and watchOS) and Linux.
- The code formatter for bzl files is now ready: check out Buildifier. Please report any issue you have.
- Daniel Muller wrote the article Cross language API schemas with Bazel.
- Francois Stephany wrote the article about using Bazel to build polyglot mobile apps (iOS/Android).
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.