Skip to content

Releases: bazelbuild/bazel

0.20.0

30 Nov 14:53
Compare
Choose a tag to compare

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 a7g4@a7g4.net, Alan alan.agius@betssongroup.com, Asaf Flescher asafflesch@gmail.com, Benjamin Peterson bp@benjamin.pe, Ed Schouten ed.schouten@prodrive-technologies.com, George Gensure ggensure@uber.com, George Kalpakas kalpakas.g@gmail.com, Greg gregestren@users.noreply.github.com, Irina Iancu iirina@users.noreply.github.com, Keith Smiley keithbsmiley@gmail.com, Loo Rong Jie loorongjie@gmail.com, Mark Zeren mzeren@vmware.com, Petros Eskinder petroseskinder@users.noreply.github.com, rachcatch rachelcatchpoole@hotmail.com, Robert Brown robert.brown@gmail.com, Robert Gay robert.gay@redfin.com, Salty Egg 2281521+zhouhao@users.noreply.github.com.

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.

0.19.2

19 Nov 16:32
Compare
Choose a tag to compare

Release 0.19.2 (2018-11-19)

Baseline: eb2af0f

Cherry picks:

  • f7e5aef:
    Add cc_toolchain targets for the new entries in the default
    cc_toolchain_suite.
  • 683c302:
    Read the CROSSTOOL from the package of the current cc_toolchain,
    not from --crosstool_top
  • Fixes regression #6662, by fixing tools/cpp/BUILD
  • Fixes regression #6665, by setting the toolchain identifier.
  • 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.

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.

0.19.1

12 Nov 15:39
Compare
Choose a tag to compare

Release 0.19.1 (2018-11-12)

Baseline: f0c844c

Cherry picks:

  • 8e28083:
    Windows Add tests for msys gcc toolchain and mingw gcc toolchain
    + 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.

Important changes:

  • Fix regression #6610, which prevents using the MINGW compiler on Windows.

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.

0.18.1

31 Oct 14:52
Compare
Choose a tag to compare

Release 0.18.1 (2018-10-31)

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.
  • 914b4ce:
    Windows: Fix Precondition check for addDynamicInputLinkOptions
  • e025726:
    Update turbine

Important changes:

  • Fix regression #6219, remote cache failures

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.

0.19.0

29 Oct 14:41
Compare
Choose a tag to compare

Release 0.19.0 (2018-10-29)

Baseline: ac88041

Cherry picks:

  • 9bc3b20:
    Fix the "nojava" platform and enable full presubmit checks for
    the various JDK platforms now that we have enough GCE resources.
  • 54c2572:
    Add openjdk_linux_archive java_toolchain for nojava platform.
  • 20bfdc6:
    Automated rollback of commit
    19a401c.
  • 914b4ce:
    Windows: Fix Precondition check for addDynamicInputLinkOptions
  • 83d406b:
    Windows, test-setup.sh: Setting RUNFILES_MANIFEST_FILE only when
    it exists.
  • e025726:
    Update turbine
  • 5f312dd:
    Fix event id for action_completed BEP events

The Bazel team is happy to announce a new version of Bazel, Bazel 0.19.

This document lists the major changes since Bazel 0.18.

General changes

  • The --incompatible_expand_directories flag automatically expands directories in command lines. See the design document.

  • The --loading_phase_threads flag now defaults to auto instead of 200, which at the moment corresponds to the number of CPUs. This is appropriate for most users. However, if your sources reside on a network file system, increasing this value may yield better analysis-time performance when disk caches are cold.

Android

  • Fixed missing debug symbols when building native code with --compilation_mode=dbg that target Android ARM architectures by adding the -g flag.

C++

  • Added --incompatible_disable_legacy_flags_cc_toolchain_api to deprecate legacy cc_toolchain Starlark API for legacy CROSSTOOL fields. Tracking issue is #6434. See the instructions for migration.

  • Runfiles in cc_test: the C++ runfiles library (@bazel_tools//tools/cpp/runfiles) can now create Runfiles objects for tests. See //tools/cpp/runfiles/runfiles_src.h in the Bazel source tree for documentation.

  • :cc_binary link action no longer hardcodes -static-libgcc for toolchains that support embedded runtimes (guarded by --experimental_dont_emit_static_libgcc temporarily).

  • The flag --experimental_enable_cc_configuration_make_variables is removed, use --incompatible_disable_cc_configuration_make_variables instead.

Java

  • Bazel now requires a JDK to be installed as it no longer falls back to the internal JDK if the --javabase flag is not set. Instead, Bazel now searches for a JDK within the JAVA_HOME and PATH environment variables. If Bazel cannot find a JDK, it will not be able to run Java builds.

Code Coverage

--coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main

instead of the previous

--coverage_report_generator=@bazel_tools//tools/test/LcovMerger/java/com/google/devtools/lcovmerger:Main

Other Changes

  • Add --apple_compiler and --apple_grte_top options. These provide the equivalent of --compiler / --grte_top for the toolchain configured in --apple_crosstool_top.

  • There is now a same_pkg_direct_rdeps query function. See the query documentation for more details.

  • Propagating remote errors to the user even if --verbose_failures=false is set.

  • Add number of configured targets to analysis phase status output.

  • Bazel will now check stderr instead of stdout to decide if it is outputting to a terminal. --isatty is deprecated, use --is_stderr_atty instead.

Future Changes

We will do incompatible changes in Bazel 0.20. We encourage you to migrate in advance (or report any migration difficulty) with the following flags:

Thank you to our contributors!

This release contains contributions from many people at Google, as well as Andreas Herrmann, Andreas Hippler, Benjamin Peterson, David Ostrovsky, Ed Baunton, George Gensure, Igal Tabachnik, Jason Gavris, Loo Rong Jie, rmalik, and Yannic Bonenberger

Thank you to everyone who contributed to this release!

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.

0.18.0

15 Oct 08:40
Compare
Choose a tag to compare

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.

0.17.2

21 Sep 12:58
Compare
Choose a tag to compare

Release 0.17.2 (2018-09-21)

Baseline: aa118ca

Cherry picks:

  • 0e04625:
    Update checker framework dataflow and javacutil versions
  • 3987300:
    Stop using --release in versioned java_toolchains
  • 438b277:
    make_deb: Add new empty line in the end of conffiles file
  • 5044017:
    Properly mark configuration files in the Debian package.
  • 9ed9d8a:
    Add flag
    --incompatible_symlinked_sandbox_expands_tree_artifacts_in_runfil
    es_tree.
  • 22d761a:
    Update protobuf to 3.6.1 -- add new files
  • 27303d7:
    Update protobuf to 3.6.1 -- update references
  • ddc97ed:
    Update protobuf to 3.6.1 -- remove 3.6.0 sources
  • ead1002:
    Fix protobuf in the WORKSPACE
  • 12dcd35:
    Revert "Update to JDK 10 javac"
  • 7eb9ea1:
    Automated rollback of
    808ec9ff9b5cec14f23a4b
    a106bc5249cacc8c54 and
    4c9149d558161e7d3e363f
    b697f5852bc5742a36 and some manual merging.
  • 4566a42:
    Fix tests on JDK 9 and 10
  • 1e9f0aa:
    Fix more tests on JDK 9 and 10
  • a572c1c:
    Add ubuntu1804_nojava, ubuntu1804_java9, ubuntu1804_java10 to
    postsubmit.
  • 29f1de0:
    Disable Android shell tests on the "nojava" platform.
  • b495eaf:
    Update bazel_toolchains to latest release.
  • 9323c57:
    Windows: fix writing java.log
  • 1aba9ac:
    Automated rollback of commit
    de22ab0.
  • 2579b79:
    Fix toolchain_java9 on --host_javabase= after
    7eb9ea1
  • 2834613:
    Include also ext jars in the bootclasspath jar.
  • fdb09a2:
    Release 0.17.1 (2018-09-14)
  • 1d956c7:
    Do not fail the build when gcov is not installed
  • 2e677fb:
    Ignore unrecognized VM options in desugar.sh, such as the JVM 9
    flags to silence warnings.

Important changes:

  • In the future, Bazel will expand tree artifacts in runfiles, too,
    which causes the sandbox to link each file individually into the
    sandbox directory, instead of symlinking the entire directory. In
    this release, the behavior is not enabled by default yet. Please
    try it out via
    --incompatible_symlinked_sandbox_expands_tree_artifacts_in_runfile
    s_tree and let us know if it causes issues. If everything looks
    good, this behavior will become the default in a following
    release.

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.

0.17.1

14 Sep 10:46
Compare
Choose a tag to compare

Release 0.17.1 (2018-09-14)

Baseline: aa118ca

Cherry picks:

  • 0e04625:
    Update checker framework dataflow and javacutil versions
  • 3987300:
    Stop using --release in versioned java_toolchains
  • 438b277:
    make_deb: Add new empty line in the end of conffiles file
  • 5044017:
    Properly mark configuration files in the Debian package.
  • 9ed9d8a:
    Add flag
    --incompatible_symlinked_sandbox_expands_tree_artifacts_in_runfil
    es_tree.
  • 22d761a:
    Update protobuf to 3.6.1 -- add new files
  • 27303d7:
    Update protobuf to 3.6.1 -- update references
  • ddc97ed:
    Update protobuf to 3.6.1 -- remove 3.6.0 sources
  • ead1002:
    Fix protobuf in the WORKSPACE
  • 12dcd35:
    Revert "Update to JDK 10 javac"
  • 7eb9ea1:
    Automated rollback of
    808ec9ff9b5cec14f23a4b
    a106bc5249cacc8c54 and
    4c9149d558161e7d3e363f
    b697f5852bc5742a36 and some manual merging.
  • 4566a42:
    Fix tests on JDK 9 and 10
  • 1e9f0aa:
    Fix more tests on JDK 9 and 10
  • a572c1c:
    Add ubuntu1804_nojava, ubuntu1804_java9, ubuntu1804_java10 to
    postsubmit.
  • 29f1de0:
    Disable Android shell tests on the "nojava" platform.
  • b495eaf:
    Update bazel_toolchains to latest release.
  • 9323c57:
    Windows: fix writing java.log
  • 1aba9ac:
    Automated rollback of commit
    de22ab0.
  • 2579b79:
    Fix toolchain_java9 on --host_javabase= after
    7eb9ea1
  • 2834613:
    Include also ext jars in the bootclasspath jar.

Incompatible changes:

  • Loading @bazel_tools//tools/build_defs/repo:git_repositories.bzl
    no longer works. Load @bazel_tools//tools/build_defs/repo:git.bzl
    instead.
  • If the same artifact is generated by two distinct but identical
    actions, and a downstream action has both those actions' outputs
    in its inputs, the artifact will now appear twice in the
    downstream action's inputs. If this causes problems in Skylark
    actions, you can use the uniquify=True argument in Args.add_args.
  • If the same artifact is generated by two distinct but identical
    actions, and a downstream action has both those actions' outputs
    in its inputs, the artifact will now appear twice in the
    downstream action's inputs. If this causes problems in Skylark
    actions, you can use the uniquify=True argument in Args.add_args.
  • Labels in C++ rules' linkopts attribute are not expanded anymore
    unless they are wrapped, e.g: $(location //foo:bar)
  • If the same artifact is generated by two distinct but identical
    actions, and a downstream action has both those actions' outputs
    in its inputs, the artifact will now appear twice in the
    downstream action's inputs. If this causes problems in Skylark
    actions, you can use the uniquify=True argument in Args.add_args.
  • New bazelrc file list.
  • Windows: when BAZEL_SH envvar is not defined and Bazel searches
    for a suitable bash.exe, Bazel will no longer look for Git Bash
    and no longer recommend installing it as a Bash implementation.
    See issue #5751.
  • New bazelrc file list.

New features:

  • The aquery command now supports --output=text.
  • Java, runfiles: the Java runfiles library is now in
    @bazel_tools//tools/java/runfiles. The old target
    (@bazel_tools//tools/runfiles:java-runfiles) is deprecated and
    will be removed in Bazel 0.18.0.
  • Java, runfiles: the Java runfiles library is now in
    @bazel_tools//tools/java/runfiles. The old target
    (@bazel_tools//tools/runfiles:java-runfiles) is deprecated and
    will be removed in Bazel 0.19.0 (not 0.18.0, as stated earlier).

Important changes:

  • Allow @ in package names.
  • Remove support for java_runtime_suite; use alias() together with
    select() instead.
  • Python wrapper scripts for MSVC are removed.
  • [JavaInfo] Outputs are merged in java_common.merge().
  • Faster analysis by improved parallelization.
  • --experimental_shortened_obj_file_path is removed.
  • Introduce the --remote_cache_proxy flag,
    which allows for remote http caching to connect
    via a unix domain socket.
  • No longer define G3_VERSION_INFO for c++ linkstamp compiles, as
    it was a duplicate of G3_TARGET_NAME.
  • Added support for Android NDK r17. The default STL is now
    libc++, and support for targeting mips, mips64 and ARMv5
    (armeabi) has been removed.
  • Add aquery command to get analysis time information about the
    action graph.
  • Fixed compatibility with aar_import when using aapt2. AAPT2 is
    now supported for Android app builds without resource shrinking.
    To use it, pass the --android_aapt=aapt2 flag or define
    android_binary.aapt_version=aapt2.
  • Code coverage is collected for Java binaries invoked from sh_test.
  • java_common.compile creates the native headers jar accesible via
    JavaInfo.outputs.native_headers.
  • Deleting deprecated no-op flag --show_package_location
  • The JDK shipped with Bazel was updated to JDK10.
  • Rename the startup flag --host_javabase to --server_javabase to
    avoid confusion with the build flag --host_javabase
  • newly added options --experimental_repository_hash_file and
    --experimental_verify_repository_rules allow to verify for
    repositories
    the directory generated against pre-recorded hashes. See
    documentation
    for those options.
  • Removed the gen_jars output group
  • --subcommands can now take a "pretty_print" value
    ("--subcommands=pretty_print") to print the
    arguments of subcommands as a list for easier reading.
  • follow-up to
    1ac359743176e659e9c7472
    645e3142f3c44b9e8
  • A rule error is now thrown if a Skylark rule implementation
    function returns multiple providers of the same type.
  • When using Bazel's remote execution feature and Bazel has to
    fallback to local execution for an action, Bazel used
    non-sandboxed
    local execution until now. From this release on, you can use the
    new
    flag --remote_local_fallback_strategy= to tell Bazel
    which
    strategy to use in that case.
  • Execution Log Parser can now, when printing it out, filter the
    log by runner type
  • A rule error is now thrown if a Skylark rule implementation
    function returns multiple providers of the same type.
  • Removed the gen_jars output group
  • Removed the gen_jars output group
  • Set --defer_param_files to default to true.
  • Sort attribute lists in proto-form query output to fix
    non-deterministic genquery output.
  • Replace 0/1 with False/True for testonly attribute
  • bazel now supports a .bazelignore file specifying
    directories to be ignored; however, these directories still
    have to be well founded and, in particular, may not contain
    symlink cycles.
  • Add more detailed reporting of the differences between startup
    options.
  • update data binding to 3.2.0
  • For Android incremental dexing actions, Bazel now persists its
    DexBuilder process across individual actions. From our
    benchmarks, this results in a 1.2x speedup for clean local builds.
  • The standard xcode_VERSION feature now always uses exactly two
    components in the version, even if you specify --xcode_version
    with
    more or fewer than two.
  • A rule error will be thrown if a Skylark rule implementation
    function returns multiple providers of the same type. Try the
    --incompatible_disallow_conflicting_providers flag to ensure
    your code is forward-compatible.
  • Removed notion of FULLY_STATIC linking mode from C++ rules.
  • In documentation, we've renamed Skylark into Starlark.
  • Execution Log Parser can now, when printing it out, reorder the
    actions for easier text diffs
  • Linkstamps are no longer recompiled after server restart.
  • Use VanillaJavaBuilder and disable header compilation in
    toolchain_hostjdk8. The default toolchain will soon drop
    compatibility with JDK 8. Using a JDK 8 host_javabase
    will only be supported when using 'VanillaJavaBuilder' (which
    does not support Error Prone,
    Strict Java Deps, or reduced classpaths) and with header
    compilation disabled.
  • In the future, Bazel will expand tree artifacts in runfiles, too,
    which causes the sandbox to link each file individually into the
    sandbox directory, instead of symlinking the entire directory. In
    this release, the behavior is not enabled by default yet. Please
    try it out via
    --incompatible_symlinked_sandbox_expands_tree_artifacts_in_runfile
    s_tree and let us know if it causes issues. If everything looks
    good, this behavior will become the default in a following
    release.

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 b...

Read more

0.16.1

13 Aug 16:04
Compare
Choose a tag to compare

Release 0.16.1 (2018-08-13)

Baseline: 4f64b77

Cherry picks:

  • 4c9a0c8:
    reduce the size of bazel's embedded jdk
  • d3228b6:
    remote: limit number of open tcp connections by default. Fixes
    #5491
  • 8ff87c1:
    Fix autodetection of linker flags
  • c4622ac:
    Fix autodetection of -z linker flags
  • 1021965:
    blaze_util_posix.cc: fix order of #define
  • ab1f269:
    blaze_util_freebsd.cc: include path.h explicitly
  • 68e92b4:
    openjdk: update macOS openjdk image. Fixes #5532
  • f45c224:
    Set the start time of binary and JSON profiles to zero correctly.
  • bca1912:
    remote: fix race on download error. Fixes #5047
  • 3842bd3:
    jdk: use parallel old gc and disable compact strings
  • 6bd0bdf:
    Add objc-fully-link to the list of actions that require the
    apple_env feature. This fixes apple_static_library functionality.
  • f330439:
    Add the action_names_test_files target to the OSS version of
    tools/buils_defs/cc/BUILD.
  • d215b64:
    Fix StackOverflowError on Windows. Fixes #5730
  • 366da4c:
    In java_rules_skylark depend on the javabase through
    //tools/jdk:current_java_runtime
  • 30c601d:
    Don't use @local_jdk for jni headers
  • c56699d:
    'DumpPlatformClasspath' now dumps the current JDK's default
    platform classpath

This release is a patch release that contains fixes for several serious
regressions that were found after the release of Bazel 0.16.0.

In particular this release resolves the following issues:

  • Bazel crashes with a StackOverflowError on Windows (See #5730)
  • Bazel requires a locally installed JDK and does not fall back
    to the embedded JDK (See #5744)
  • Bazel fails to build for Homebrew on macOS El Capitan (See #5777)
  • A regression in apple_static_library (See #5683)

Please watch our blog for a more detailed release announcement.

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.

0.16.0

31 Jul 17:30
Compare
Choose a tag to compare

Release 0.16.0 (2018-07-31)

Baseline: 4f64b77

Cherry picks:

  • 4c9a0c8:
    reduce the size of bazel's embedded jdk
  • d3228b6:
    remote: limit number of open tcp connections by default. Fixes
    #5491
  • 8ff87c1:
    Fix autodetection of linker flags
  • c4622ac:
    Fix autodetection of -z linker flags
  • 1021965:
    blaze_util_posix.cc: fix order of #define
  • ab1f269:
    blaze_util_freebsd.cc: include path.h explicitly
  • 68e92b4:
    openjdk: update macOS openjdk image. Fixes #5532
  • f45c224:
    Set the start time of binary and JSON profiles to zero correctly.
  • bca1912:
    remote: fix race on download error. Fixes #5047
  • 3842bd3:
    jdk: use parallel old gc and disable compact strings

Incompatible changes:

  • The $(ANDROID_CPU) Make variable is not available anymore. Use
    $(TARGET_CPU) after an Android configuration transition instead.
  • The $(JAVA_TRANSLATIONS) Make variable is not supported anymore.
  • Skylark structs (using struct()) may no longer have to_json and
    to_proto overridden.
  • The mobile-install --skylark_incremental_res flag is no longer
    available, use the --skylark flag instead.

New features:

  • android_local_test now takes advantage of Robolectric's binary
    resource processing which allows for faster tests.
  • Allow @ in package names.

Important changes:

  • Option --glibc is removed, toolchain selection relies solely on
    --cpu and --compiler options.
  • Build support for enabling cross binary FDO optimization.
  • The --distdir option is no longer experimental. This
    option allows to specify additional directories to look for
    files before trying to fetch them from the network. Files from
    any of the distdirs are only used if a checksum for the file
    is specified and both, the filename and the checksum, match.
  • Java coverage works now with multiple jobs.
  • Flip default value of --experimental_shortened_obj_file_path to
    true, Bazel now generates short object file path by default.
  • New rules for importing Android dependencies:
    aar_import_external and aar_maven_import_external.
    aar_import_external enables specifying external AAR
    dependencies using a list of HTTP URLs for the artifact.
    aar_maven_import_external enables specifying external AAR
    dependencies using the artifact coordinate and a list of server
    URLs.
  • The BAZEL_JAVAC_OPTS environment variable allows arguments, e.g.,
    "-J-Xmx2g", may be passed to the javac compiler during bootstrap
    build. This is helpful if your system chooses too small of a max
    heap size for the Java compiler during the bootstrap build.
  • --noexpand_configs_in_place is deprecated.
  • A tool to parse the Bazel execution log.
  • Support for LIPO has been fully removed.
  • Remove support for --discard_actions_after_execution.
  • Add --materialize_param_files flag to write parameter files even
    when actions are executed remotely.
  • Windows default system bazelrc is read from the user's
    ProgramData if present.
  • --[no]allow_undefined_configs no longer exists, passing undefined
    configs is an error.
  • In remote caching we limit the number of open
    TCP connections to 100 by default. The number can be adjusted
    by specifying the --remote_max_connections flag.

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.