Skip to content

0.20.0

Compare
Choose a tag to compare
@bazel-io bazel-io released this 30 Nov 14:53
· 22804 commits to master since this release

Release 0.20.0 (2018-11-30)

Baseline: 7bf7f03

Cherry picks:

  • fd52341:
    update bazel-toolchains pin to latest release Part of changes to
    allow bazelci to use 0.19.0 configs. RBE toolchain configs at or
    before 0.17.0 are not compatible with bazel 0.19.0 or above.
  • 241f28d:
    Revert "Toggle --incompatible_disable_late_bound_option_defaults
    flag."
  • f7e5aef:
    Add cc_toolchain targets for the new entries in the default
    cc_toolchain_suite.
  • d2920e3:
    Revert "WindowsFileSystem: open files with delete-sharing"

Breaking changes in 0.20

0.20 is a migration window for the following changes

Breaking changes in the next release (0.21)

Incompatible changes:

  • the --experimental_no_dotd_scanning_with_modules command line
    argument is not supported anymore.
  • The --prune_cpp_modules command line option is not supported
    anymore.
  • the --experimental_prune_cpp_input_discovery command line option
    is not supported anymore.

New features:

  • Added support for Android NDK r18.

Important changes:

  • The 'default' parameter of attr.output and attr.output_list is
    removed. This is controlled by
    --incompatible_no_output_attr_default
  • A number of platform-related Starlark APIs which were previously
    marked "experimental" are now disabled by default, and may be
    enabled via --experimental_platforms_api
  • Make legacy-test-support ("legacy_test-") from
    android_sdk_repository neverlink. The legacy test support
    libraries shouldn't be built into test binaries. To make them
    available at runtime, developers should declare them via
    uses-library:
    https://developer.android.com/training/testing/set-up-project#andr
    oid-test-base
  • query remote server Capabilities (per REAPI v2)
  • CppRules: All cc_toolchains depended on from
    cc_toolchain_suite.toolchains are now analyzed when not using
    platforms in order to select the right cc_toolchain.
  • removed obsolete --explicit_jre_deps flag.
  • Incompatible flag
    --incompatible_disable_legacy_cpp_toolchain_skylark_api was
    flipped.
  • Improve error messaging when unsupport proguard options are
    specified at the library level.
  • Incompatible flag
    --incompatible_disable_legacy_cpp_toolchain_skylark_api was
    flipped.
  • Incompatible flag
    --incompatible_disable_legacy_cpp_toolchain_skylark_api was
    flipped.
  • The --incompatible_disable_late_bound_option_defaults flag has
    been flipped (#6384)
  • Incompatible flag
    --incompatible_disable_legacy_flags_cc_toolchain_api was flipped
    (#6434)
  • Fixed issue where ctx.resolve_command created conflicting
    intermediate files when resolve_command was called multiple times
    within the same rule invocation with a long command attribute.
  • Incompatible flag
    --incompatible_disable_cc_configuration_make_variables was
    flipped (#6381)
  • If the --javabase flag is unset, it Bazel locates a JDK using
    the JAVA_HOME environment variable and searching the PATH. If no
    JDK is found --javabase will be empty, and builds targeting Java
    will not
    be supported. Previously Bazel would fall back to using the
    embedded
    JDK as a --javabase, but this is no longer default behaviour. A
    JDK should
    be explicitly installed instead to enable Java development
  • Bazel will now shut down when idle for 5 minutes and the system
    is low on RAM (linux only).
  • CROSSTOOL file is now read from the package of cc_toolchain, not
    from
    the package of cc_toolchain_suite. This is not expected to break
    anybody since
    cc_toolchain_suite and cc_toolchain are commonly in the same
    package.
  • All overrides of Starlark's ctx.new_file function are now
    deprecated.
    Try the --incompatible_new_actions_api flag to ensure your
    code is forward-compatible.
  • --incompatible_disable_cc_toolchain_label_from_crosstool_proto
    was flipped.
  • Introduce --(no)shutdown_on_low_sys_mem startup flag to toggle
    idle low-memory shutdown, disabled by default.
  • --incompatible_disable_cc_toolchain_label_from_crosstool_proto
    was flipped.
  • --incompatible_disable_cc_toolchain_label_from_crosstool_proto
    was flipped.
  • CppRules: All cc_toolchains depended on from
    cc_toolchain_suite.toolchains are now analyzed when not using
    platforms in order to select the right cc_toolchain.
  • The function attr.license is deprecated and will be removed.
    It can be disabled now with --incompatible_no_attr_license.
  • range() function now returns a lazy value
    (--incompatible_range_type is now set by default).
  • The code coverage report now includes the actual paths to header
    files instead of the ugly,
    Bazel generated, virtual includes path.
  • --incompatible_disallow_conflicting_providers has been switched
    to true
  • Add new flag --incompatible_disable_systool_from_configration to
    disable loading the systool from CppConfiguration.
  • Add new flag --incompatible_disable_sysroot_from_configuration
    to
    disable loading the systool from CppConfiguration.
  • Sorting remote Platform properties for remote execution. May
    affect cache keys!
  • Use different server log files per Bazel server process; java.log
    is
    now a symlink to the latest log.

This release contains contributions from many people at Google, as well as a7g4 [email protected], Alan [email protected], Asaf Flescher [email protected], Benjamin Peterson [email protected], Ed Schouten [email protected], George Gensure [email protected], George Kalpakas [email protected], Greg [email protected], Irina Iancu [email protected], Keith Smiley [email protected], Loo Rong Jie [email protected], Mark Zeren [email protected], Petros Eskinder [email protected], rachcatch [email protected], Robert Brown [email protected], Robert Gay [email protected], Salty Egg [email protected].

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.