Bazel v0.29.0 Release Notes

Release Date: 2019-08-28 // over 4 years ago
  • ๐Ÿš€ Release 0.29.0 (2019-08-28)

    Baseline: 6c5ef53

    Cherry picks:

    • 338829f:
      ๐Ÿ›  Fix retrying of SocketTimeoutExceptions in HttpConnector
    • 14651cd:
      Fallback to next urls if download fails in HttpDownloader
    • b7d300c:
      ๐Ÿ›  Fix incorrect stdout/stderr in remote action cache. Fixes #9072
    • 9602176:
      โช Automated rollback of commit
      0f0a0d5.
    • da557f9:
      ๐Ÿ Windows: fix "bazel run" argument quoting
    • ef8b6f6:
      Return JavaInfo from java proto aspects.
    • 209175f:
      โช Revert back to the old behavior of not creating a proto source
      root for generated .proto files.
    • 644060b:
      ๐Ÿ›  Fix PatchUtil for parsing special patch format
    • 067040d:
      Put the removal of the legacy repository-relative proto path
      behind the --incompatible_generated_protos_in_virtual_imports
      flag.
    • 76ed014:
      repository mapping lookup: convert to canonical name first

    Important changes:

    • โœ… rule_test: fix Bazel 0.27 regression ("tags" attribute was
      ingored, #8723
    • Adds --incompatible_enable_execution_transition, which enables
      incremental migration of host attributes to exec attributes.
    • objc_proto_library rule has been deleted from Bazel.
    • repository_ctx.read is no longer restricted to files
      in the repository contructed.
    • ๐Ÿท tags 'no-remote', 'no-cache', 'no-remote-cache',
      'no-remote-exec', 'no-sandbox' are propagated now to the actions
      ๐Ÿ‘ from targets when '--ncompatible_allow_tags_propagation' flag set
      ๐Ÿ‘€ to true. See #8830.
    • โž• Adds flag
      --//tools/build_defs/pkg:incompatible_no_build_defs_pkg. This
      flag turns off the rules //tools/build_defs/pkg:{pkg_deb,
      pkg_rpm, pkg_tar}.
    • The Android NDK is now integrated with toolchains. To use them,
      pass the --extra_toolchains=@androidndk//:all flag or register
      them in your WORKSPACE with
      register_toolchains("@androidndk//:all").
    • Stdout and stderr are checked to determine if output is going to a
      terminal. --is_stderr_atty is deprecated and --isatty is
      ๐Ÿ—„ undeprecated.
    • --incompatible_load_proto_rules_from_bzl was added to forbid
      ๐Ÿ‘€ loading the native proto rules directly. See more on tracking
      issue #8922
    • 0๏ธโƒฃ Docker Sandbox now respects remote_default_platform_properties
    • pkg_deb, pkg_rpm & pkg_tar deprecation plan announced in the
      ๐Ÿ“š documentation.
    • ๐Ÿš€ The new java_tools release:
      • fixes #8614
      • exposes a new toolchain @java_tools//:prebuilt_toolchain
        which is using all the pre-built tools, including singlejar and
        ijar, even on remote execution. This toolchain should be used
        only when host and execution platform are the same, otherwise the
        binaries will not work on the execution platform.
    • ๐Ÿ‘ java_common.compile supports specifying
      ๐Ÿ–จ annotation_processor_additional_inputs and
      ๐Ÿ–จ annotation_processor_additional_outputs for the Java compilation
      ๐Ÿ‘ action for supporting annotation processors that consume or
      ๐Ÿ›  produce artifacts. Fixes #6415
    • ๐Ÿ“š There is now documentation on optimizing Android app build
      ๐ŸŽ performance. Read it at
      ๐ŸŽ https://docs.bazel.build/versions/0.29.0/android-build-performance
      .html
    • 0๏ธโƒฃ Execution log now respects --remote_default_platform_properties
    • Include a link to the relevant documenation on transitive Python
      ๐Ÿ”– version errors.
    • ๐Ÿ†• New incompatible flag
      --incompatible_disable_target_provider_fields removes the ability
      (in Starlark) 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,
      ๐Ÿ‘€ ctx.attr.dep[MyProvider]). See
      #9014 for details.
    • A new platform exec_properties is added to replace
      remote_execution_properties.
    • Added --incompatible_load_python_rules_from_bzl, which will be
      ๐Ÿ‘€ flipped in Bazel 1.0. See
      #9006.
    • ๐Ÿ— add --break_build_on_parallel_dex2oat_failure to shortcut tests
      on dex2oat errors

    ๐Ÿš€ 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.

    ๐Ÿ”” Notice: Bazel installers contain binaries licensed under the GPLv2 with
    ๐Ÿ‘ป Classpath exception. Those installers should always be redistributed along with
    the source code.

    Some versions of Bazel contain a bundled version of OpenJDK. The license of the
    bundled OpenJDK and other open-source components can be displayed by running
    the command bazel license. The vendor and version information of the bundled
    OpenJDK can be displayed by running the command bazel info java-runtime.
    The binaries and source-code of the bundled OpenJDK can be
    ๐Ÿ— downloaded from our mirror server.

    ๐Ÿ”’ Security: All our binaries are signed with our
    ๐Ÿš€ public key 48457EE0.