We’ve just released Bazel 0.29! Bazel 0.29 is intended to be backward-compatible with Bazel 0.28 and 0.27, and will be the final release before Bazel 1.0.
Please report any update problems.
repository_ctx.readcan now read files from anywhere on the system, and not just within the repository rule context.
- A new incompatible flag
--incompatible_disallow_unverified_http_downloadhas been added that disallows downloads via
http(as opposed to
https) unless a checksum is given. The flag will be flipped in Bazel 1.0 (but remain present throughout the 1.x cycle). To migrate, add a known-good checksum or at least one
httpssource for downloading the file.
- A new incompatible flag
--incompatible_disable_target_provider_fieldsremoves the ability to access a target's providers via the field syntax (for example,
ctx.attr.dep.my_provider). The provider-key syntax should be used instead (for example,
- Added two new tags to better control remote caching/execution:
no-remote-exec. Read the docs for details.
- The docker sandbox and the execution log now respect
- The platform attribute
remote_execution_propertieshas been deprecated in favor of the newly introduced
- We fixed remote execution on Windows for the Java rules. See #8614.
- You can now use a new
<PLATFORM>is one of
windows) in your builds. The new toolchain uses only pre-built tools, including singlejar and ijar, even on remote execution. The prebuilt toolchain should be used only when host and execution platform are the same, otherwise the binaries will not work on the execution platform.
annotation_processor_additional_outputs. The API for the Java compilation action enables supporting annotation processors that consume or produce artifacts.
- The Android NDK is now integrated with toolchains. To use them, pass the
--extra_toolchains=@androidndk//:allflag or register them in your WORKSPACE with
register_toolchains("@androidndk//:all"). Learn more here.
- There is now documentation on optimizing Android app build performance. Read it here.
--incompatible_load_python_rules_from_bzl, which will be flipped in a future Bazel version. To migrate, load Python rules from
@rules_python. See #9006.
- Add new incompatible flag
--incompatible_load_proto_rules_from_bzlto forbid loading the native proto rules. For migration instructions, see tracking issue #8922
rule_test: fix Bazel 0.27 regression ("tags" attribute was ignored, #8723)
objc_proto_libraryrule has been deleted from Bazel.
:pkg_tarare documented as deprecated. These features are now available independently of Bazel releases on the
rules_pkgrepository. The original rules will continue to exist until Bazel 2.0.
- Added a new flag
--//tools/build_defs/pkg:incompatible_no_build_defs_pkgto forbid loading rules from
- Stdout and stderr are checked to determine if output is going to a terminal.
--is_stderr_attyis deprecated and
cmd_batattributes. Find more details here.
- Li Haoyi from Databricks wrote about Fast Parallel Testing at Databricks with Bazel on their journey on reducing PR wait times for CI from ~3 hours with SBT to ~40 minutes with Bazel.
- Alex Eagle recorded screencasts on writing Bazel rules for Stylus (tweet, screencasts)
- Alex Eagle talked about Bazel on the Adventures in Angular 247 podcast.
- Vamsi Vempati wrote Angular 8 - Bazel Walkthrough.
- Wassim Chegham talked about Bazel for Angular developers at Angular In Depth 2019.
This release contains contributions from many people at Google, as well as Alexander Ilyin, Arek Sredzki, Artem Zinnatullin, Benjamin Peterson, Fan Wu, John Millikin, Loo Rong Jie, Marwan Tammam, Oscar Bonilla, Peter Mounce, Sergio Rodriguez Orellana, Takeo Sawada, and Yannic Bonenberger.