0.20.0
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"
- --incompatible_remove_native_http_archive.
- --incompatible_remove_native_git_repository.
- --incompatible_disable_cc_toolchain_label_from_crosstool_proto.
- --incompatible_disable_depset_in_cc_user_flags.
- --incompatible_disable_cc_configuration_make_variables.
- --incompatible_disallow_conflicting_providers.
- --incompatible_range_type.
0.20 is a migration window for the following changes
- --incompatible_use_jdk10_as_host_javabase
- --incompatible_use_remotejdk_as_host_javabase
- --incompatible_disable_sysroot_from_configuration
- --incompatible_provide_cc_toolchain_info_from_cc_toolchain_suite
- --incompatible_disable_depset_in_cc_user_flags
- --incompatible_package_name_is_a_function
Breaking changes in the next release (0.21)
- --incompatible_use_jdk10_as_host_javabase
- --incompatible_use_remotejdk_as_host_javabase
- --incompatible_disable_sysroot_from_configuration
- --incompatible_provide_cc_toolchain_info_from_cc_toolchain_suite
- --incompatible_disable_depset_in_cc_user_flags
- --incompatible_disallow_data_transition
- --incompatible_package_name_is_a_function
- --incompatible_disallow_slash_operator
- --incompatible_static_name_resolution
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.