Skip to content

0.14.0

Compare
Choose a tag to compare
@bazel-io bazel-io released this 01 Jun 13:39
· 24993 commits to master since this release

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.