Bazel Blog

Bazel 1.0

Bazel 1.0 has just been released. As we announced before we start following semantic versioning for Bazel releases. We'll maintain at least three-month stability windows between Bazel major (backward-incompatible) releases.

Incompatible changes

Before updating to Bazel 1.0, first check if your codebase is compatible either by running bazelisk --migrate or by building your code with Bazel 0.29.1 and the following flags:

Windows

Execution

  • Set --experimental_allow_tags_propagation flag to propagate tags to the action's execution requirements from targets. Such tags should start with: no-, requires-, supports-, block-, disable-, cpu:. See #8830 for details.
  • All rules now have a default exec_properties attribute just like the one on a platform rule.
  • All gRPC connections from Bazel will default to TLS enabled. To disable TLS use the grpc:// scheme in your URIs. Flags affected are: --remote_cache, --remote_executor and --bes_backend. See #8061 for details.
  • Make either --subcommands or --verbose_failures imply --materialize_param_files

Configurability

Android

  • aapt2 is now enabled by default. To revert to aapt, set the --android_aapt=aapt flag.
  • Fixed Windows path issues with aapt2. See the GitHub issue for more information.

C++

  • cc_* rules support non-transitive defines through a local_defines attribute.
  • Bazel now supports ThinLTO builds on Linux for Clang versions 6.0 or above. ThinLTO can be enabled through --features=thin_lto.

Java

  • Deprecated Java-Starlark API java_common.create_provider is removed. JavaInfo() legacy args (actions, sources, source_jars, use_ijar, java_toolchain, host_javabase) are removed (see #5821).
  • maven_jar and maven_server now disallow using plain HTTP URLs without a specified checksum. If you are still using maven_jar, consider migrating to rules_jvm_external for transitive dependency management. See #8607 for more information.
  • Added sha256 and sha256_src attributes to maven_jar. Please consider migrating to SHA-256 as SHA-1 has been deemed cryptographically insecure. Or, use rules_jvm_external to manage your transitive Maven dependencies with artifact pinning and SHA-256 verification support.

This release contains contributions from many people at Google, as well as Adam Liddell, Alessandro Patti, Arshabh Kumar Agarwal, Artem Pelenitsyn, Artem Zinnatullin, Benjamin Peterson, Emmanuel Goh, Farhim Ferdous, George Gensure, Keith Smiley, Kiril Videlov, Mantas Sakalauskas, Marwan Tammam, Matt Mukerjee, panzhongxian, Shachar Anchelovich, Stepan Koltsov, Stephan Wolski, Travis Clarke, Yannic Bonenberger, Yuta Saito.