Bazel Blog

Bazel 0.26

The Bazel team is happy to announce a new version of Bazel, Bazel 0.26.

Incompatible changes

Apple

  • The --ios_multi_cpus, --watchos_cpus, --macos_cpus and --tvos_cpus are now additive. This means that you can now split the --ios_multi_cpus=arm64,armv7 into --ios_multi_cpus=arm64 and --ios_multi_cpus=armv7.

  • Add --incompatible_objc_framework_cleanup to control whether to enable some objc framework cleanup that changes the API. Specifically, the cleanup changes the objc provider API pertaining to frameworks. This change is expected to be transparent to most users unless they write their own Starlark rules to handle frameworks. See https://github.com/bazelbuild/bazel/issues/7594 for details.

  • objc_library does not support resource attributes any more. Please read #7594 for more info.

Android

  • Android resource conflicts will no longer be reported between a strong attr resource and a weak attr resource, if the weak attr does not have format specified.

  • Added support for compiling against fully qualified R classes from aar_import dependencies.

C++

Python

  • Fixed an issue where some py_runtimes were incompatible with using --build_python_zip (#5104).

Starlark

Windows

  • Windows, Python: the new --incompatible_windows_escape_python_args flag (false by default) builds py_binary and py_test targets with correct command line argument escaping. Similar to #7486 but for py_* rules.

Other changes

  • cquery supports --output=build

  • Generated Go protobufs now depend on //net/proto2/go:proto_gendeps instead of //net/proto2/go:proto

  • Added --incompatible_remove_binary_profile to disable the old binary profiles. Instead use the JSON profile format: https://docs.bazel.build/versions/0.26.0/skylark/performance.html#json-profile

  • Introducing --execution_log_binary_file and --execution_log_json_file that output a stable sorted execution log. They will offer a stable replacement to --experimental_execution_log_file.

  • New platform_mappings ability to allow gradual flag to platforms/toolchains migration. See also #6426

  • --tls_enabled flag is deprecated. Please provide grpcs as a scheme in the URLs if TLS should be used for a remote connection.

Community

This release contains contributions from many people at Google, as well as Benjamin Peterson, Brian Topping, clyang82, Dave Lee, George Gensure, Greg, Guro Bokum, Keith Smiley, Max Vorobev, Michael Hackner, Robert Brown, Robert Sayre, Ryan Beasley, and Yannic.