@bazel-io bazel-io released this Oct 15, 2018 · 1356 commits to master since this release

Assets 26

Release 0.18.0 (2018-10-15)

Baseline: c062b1f

Cherry picks:

  • 2834613:
    Include also ext jars in the bootclasspath jar.
  • 2579b79:
    Fix toolchain_java9 on --host_javabase= after
    7eb9ea1
  • faaff7f:
    Release notes: fix markdown
  • b073a18:
    Fix NestHost length computation Fixes #5987
  • bf6a63d:
    Fixes #6219. Don't rethrow any remote cache failures on either
    download or upload, only warn. Added more tests.
  • c1a7b4c:
    Fix broken IdlClassTest on Bazel's CI.
  • 71926bc:
    Fix the Xcode version detection which got broken by the upgrade
    to Xcode 10.0.
  • 86a8217:
    Temporarily restore processing of workspace-wide tools/bazel.rc
    file.

General changes

  • New bazelrc file list.
    If you need to keep both the old and new lists of .rc files active
    concurrently to support multiple versions of Bazel, you can import the old
    file location into the new list using try-import. This imports a file if it
    exists and silently exits if it does not. You can use this method to account
    for a user file that may or may not exist

  • .bazelignore
    is now fully functional.

  • The startup flag --host_javabase has been renamed to
    --server_javabase to avoid confusion with the build flag
    --host_javabase.

Android

  • The Android resource processing pipeline now supports persistence
    via worker processes. Enable it with
    --persistent_android_resource_processor. We have observed a 50% increase
    in build speed for clean local builds and up to 150% increase in build
    speed for incremental local builds.

C++

  • In-memory package //tools/defaults has been removed (controlled by
    --incompatible_disable_tools_defaults_package flag). Please see
    migration instructions
    and migrate soon, the flag will be flipped in Bazel 0.19, and the legacy
    behavior will be removed in Bazel 0.20.

  • Late bound option defaults (typical example was the --compiler flag, when
    it was not specified, it’s value was computed using the CROSSTOOL) are removed
    (controlled by --incompatible_disable_late_bound_option_defaults flag).
    Please see migration instructions
    and migrate soon, the flag will be flipped in Bazel 0.19, and the legacy
    behavior will be removed in Bazel 0.20.

  • Depsets are no longer accepted in user_compile_flags and user_link_flags
    in the C++ toolchain API (controlled by
    --incompatible_disable_depset_in_cc_user_flags flag) affects C++ users.
    Please see migration instructions
    and migrate soon, the flag will be flipped in Bazel 0.19, and the legacy
    behavior will be removed in Bazel 0.20.

  • CROSSTOOL is no longer consulted when selecting C++ toolchain (controlled by
    --incompatible_disable_cc_toolchain_label_from_crosstool_proto flag).
    Please see migration instructions
    and migrate soon, the flag will be flipped in Bazel 0.19, and the legacy behavior will be removed in Bazel 0.20.

  • You can now use toolchain_identifier attribute
    on cc_toolchain to pair it with CROSSTOOL toolchain.

  • C++ specific Make variables
    are no longer passed from the CppConfiguration, but from the C++ toolchain
    (controlled by --incompatible_disable_cc_configuration_make_variables flag).
    Please see migration instructions
    and migrate soon, the flag will be flipped
    in Bazel 0.19, and the legacy behavior will be removed in Bazel 0.20.

  • Skylark api accessing C++
    toolchain in ctx.fragments.cpp is removed (controlled by
    --incompatible_disable_legacy_cpp_toolchain_skylark_api flag).
    Please migrate soon, the flag will be flipped
    in Bazel 0.19, and the legacy behavior will be removed in Bazel 0.20.

  • cc_binary link action no longer hardcodes
    -static-libgcc for toolchains that support embedded runtimes
    (guarded by --experimental_dont_emit_static_libgcc
    temporarily). Proper deprecation using --incompatible flags will follow.

Java

  • Future versions of Bazel will require a locally installed JDK
    for Java development. Previously Bazel would fall back to using
    the embedded --server_javabase if no JDK as available. Pass
    --incompatible_never_use_embedded_jdk_for_javabase to disable the
    legacy behaviour.

  • --javacopt= no longer affects compilations of tools that are
    executed during the build; use --host_javacopt= to change javac
    flags in the host configuration.

Objective C

  • objc_library now supports the module_name attribute.

Skylark

Windows

  • --windows_exe_launcher is deprecated, this flag will be removed
    soon. Please make sure you are not using it.

  • Bazel now supports the symlink runfiles tree on Windows with
    --experimental_enable_runfiles flag. For more details, see
    this doc.

Other Changes

  • A new experimental option --experimental_ui_deduplicate has been added. It
    causes the UI to attempt to deduplicate messages from actions to keep the
    console output cleaner.

  • Add --modify_execution_info, a flag to customize action execution
    info.

  • Add ExecutionInfo to aquery output for ExecutionInfoSpecifier
    actions.

  • When computing --instrumentation_filter, end filter patterns with
    "[/:]" to match non-top-level packages exactly and treat
    top-level targets consistently.

  • Added the bazel info server_log command, which obtains the main Bazel
    server log file path. This can help debug Bazel issues.

  • aapt shrink resources now properly respect filter configurations.

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.