0.14.0
Release 0.14.0 (2018-06-01)
Baseline: 5c3f5c9
Cherry picks:
- f96f037:
Windows, Java launcher: Support jar files under different drives - ff8162d:
sh_configure.bzl: FreeBSD is also a known platform - 7092ed3:
Remove unneeded exec_compatible_with from local_sh_toolchain - 57bc201:
Do not autodetect C++ toolchain when
BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 is present - 35a78c0:
remote: recursively delete incomplete downloaded output
directory. - 3c9cd82:
distfile: pack the archives needed later in the build - 27487c7:
Slightly refactor SpawnAction to improve env handling - 1b333a2:
Fix Cpp{Compile,Link}Action environment and cache key computation - 3da8929:
Make SymlinkTreeAction properly use the configuration's
environment - eca7b81:
Add a missing dependency from checker framework dataflow to
javacutils
Incompatible changes:
- Add --incompatible_disallow_legacy_javainfo flag.
- Added flag --incompatible_disallow_old_style_args_add to help
migrate from args.add() to args.add_all() / args.add_joined()
where appropriate.
New features:
- Bash,runfiles: use the new platform-independent library in
@bazel_tools//tools/bash/runfiles
to access runfiles
(data-dependencies). See
https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfile
s/runfiles.bash for usage information. - TemplateVariableInfo can now be constructed from Skylark.
- The java_host_runtime_alias rule is now implemented in Java.
Important changes:
- Introduce fdo_profile rule that allows architecture-sensitive
specification of fdo profiles. - canonicalize-flags no longer reorders the flags
- CppRules: optional_compiler_flag was removed from CROSSTOOL, use
features instead. - Labels of the form ////foo are disallowed.
- The
/
operator is deprecated in favor of//
(floor integer
division).
Try the--incompatible_disallow_slash_operator
flag to ensure
your code
is forward-compatible. - Flip default value of --experimental_shortened_obj_file_path to
true, Bazel now generates short object file path by default. - Exposed "mnemonic" and "env" fields on skylark "Action" objects.
- Removed flag
--incompatible_disallow_toplevel_if_statement
. - Remove vestigial 'deps' and 'data' attributes from
proto_lang_toolchain - Args objects (ctx.actions.args()) have new methods add_all() and
add_joined() for building command lines using depsets. FileType
is deprecated and will be removed soon.
Try the--incompatible_disallow_filetype
flag to ensure your
code
is forward-compatible.- Introduce absolute_path_profile attribute that allows fdo_profile
to accept absolute paths. - Support two-arg overloads for ctx.actions.args (eg.
args.add("--foo", val)) - Introduce 'tools' attribute to ctx.actions.run.
- Fixed error message for proguard_apply_dictionary.
- "bazel run" now lets one run interactive binaries. The
BUILD_WORKSPACE_DIRECTORY and BUILD_WORKING_DIRECTORY environment
variables indicate the working directory and the workspace root
of the Bazel invocation. Tests are provided with an approximation
of the official test environment. - repository rules are no longer restricted to return None.
- Add --high_priority_workers flag.
- CppRules: Feature configuration can be created from Skylark
- Adds new-style JavaInfo provider constructor.
- Make java_common.compile now uses java_toolchain javacopts by
default; explicitly retrieving them using
java_common.default_javac_opts is unnecessary. - CppRules: C++ command lines and env variables for C++ actions can
be retrieved from feature configuration. - Skylark rule definitions may advertise providers that targets of
the rule must propagate. - Bazel now supports running actions inside Docker containers.
To use this feature, run "bazel build --spawn_strategy=docker
--experimental_docker_image=myimage:latest". - Remote execution works for Windows binaries with launchers.
- Fixing start/end lib expansion for linking. There were many cases
where archive files were still being used with toolchains that
support start/end lib. This change consolidates the places that
make that decision so they can be more consistent. - Add support for reporting an error if
android_test.binary_under_test contains incompatible versions of
deps - We replaced the --experimental_local_disk_cache and
--experimental_local_disk_cache_path flags into a single
--disk_cache flag. Additionally, Bazel now tries to create the disk cache
directory if it doesn't exist. - Save Blaze memory by not storing LinkerInput objects in
LinkCommandLine - In the JavaInfo created by java_common.create_provider now
includes both direct and transitive arguments in
transitive_compile_time_jars and transitive_runtime_jars - Allow --worker_max_instances to take MnemonicName=value to
specify max for each worker. - Allow java_toolchain.header_compiler to be an arbitrary executable
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.