Skip to content

Releases: bazelbuild/bazel

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.

0.15.2

17 Jul 12:42
Compare
Choose a tag to compare

Release 0.15.2 (2018-07-17)

Baseline: b93ae42

Cherry picks:

  • 4b80f24:
    Add option to enable Docker sandboxing.
  • 6b16352:
    Allow disabling the simple blob caches via CLI flag overrides.
  • 4ec0a75:
    Use BUILD.bazel instead of BUILD for external projects
  • 2ff8c5f:
    Release 0.15.0 (2018-06-26)
  • 8ff87c1:
    Fix autodetection of linker flags
  • c4622ac:
    Fix autodetection of -z linker flags
  • d3228b6:
    remote: limit number of open tcp connections by default. Fixes
    #5491

Important changes:

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

0.15.1

16 Jul 14:25
Compare
Choose a tag to compare

Release 0.15.1 (2018-07-16)

Baseline: b93ae42

Cherry picks:

  • 4b80f24:
    Add option to enable Docker sandboxing.
  • 6b16352:
    Allow disabling the simple blob caches via CLI flag overrides.
  • 4ec0a75:
    Use BUILD.bazel instead of BUILD for external projects
  • 2ff8c5f:
    Release 0.15.0 (2018-06-26)
  • 8ff87c1:
    Fix autodetection of linker flags
  • c4622ac:
    Fix autodetection of -z linker flags
  • d3228b6:
    remote: limit number of open tcp connections by default. Fixes
    #5491

Important changes:

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

0.15.0

26 Jun 12:19
Compare
Choose a tag to compare

Release 0.15.0 (2018-06-26)

Baseline: b93ae42

Cherry picks:

  • 4b80f24:
    Add option to enable Docker sandboxing.
  • 6b16352:
    Allow disabling the simple blob caches via CLI flag overrides.
  • 4ec0a75:
    Use BUILD.bazel instead of BUILD for external projects

Incompatible changes:

  • Bazel now always runs binaries in with "bazel run" in
    interactive mode. The "--nodirect_run" command line option is now
    a no-op.
  • "bazel run --noas_test" is not supported anymore.
  • Indentation on the first line of a file was previously ignored.
    This is now fixed.

New features:

Important changes:

  • Bazel now allows almost all 7-bit ASCII characters in labels.
  • Remove vestigial java_plugin.data attribute
  • Bazel supports including select Java 8 APIs into Android apps
    targeting pre-Nougat Android devices with
    --experimental_desugar_java8_libs
  • Flag --incompatible_disable_glob_tracking is removed.
  • SkyQuery's rbuildfiles now returns targets corresponding to
    broken packages.
  • Introduce build support for providing cache prefetch hints.
  • Update the skylark DefaultInfo documentation to spell out
    runfiles, data_runfiles and default_runfiles
  • An internal action for symlinking runfiles will use Command
    instead of a Spawns. This should have no functional chages; the
    only user visible consequence should be that the internal action
    is no longer be included in statistics when calculating processes
    count.
  • --batch is deprecated
  • execution strategies line no longer handles differently the case
    where all processes have the same strategy.
  • The --experimental_remote_spawn_cache flag is now enabled by
    default, and remote caching no longer needs --*_strategy=remote
    flags (it will fail if they are specified).
  • android_binary.aapt_version='aapt2' now supports en_XA and ar_XB
  • Added --apple_enable_auto_dsym_dbg flag.
  • non_propagated_deps has been removed from objc_library and
    apple_binary.
  • For Android projects, Bazel now supports building fonts as
    resources. See
    https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml
    for more information on the feature.
  • With --incompatible_no_support_tools_in_action_inputs enabled, Skylark
    action inputs are no longer scanned for tools. Move any such
    inputs to the newly introduced 'tools' attribute.

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

08 Jun 12:32
Compare
Choose a tag to compare

Release 0.14.1 (2018-06-08)

Baseline: 10a4de9 (Release 0.14.0 (2018-06-01))

Cherry picks:

  • 4b80f24:
    Add option to enable Docker sandboxing.
  • 6b16352:
    Allow disabling the simple blob caches via CLI flag overrides.

This is a patch release on top of 0.14 containing critical fixes for:

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

01 Jun 13:39
Compare
Choose a tag to compare

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:

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.

0.13.1

23 May 11:47
Compare
Choose a tag to compare

Release 0.13.1 (2018-05-23)

Baseline: fdee70e

Cherry picks:

  • f083e76:
    windows: GetOutputRoot() returns GetHomeDir()
  • fa36d2f:
    Automated rollback of commit
    4465dae.
  • 4abd2ba:
    Add error message on empty public resources
  • 2c95757:
    test-setup: remove leading "./" from test name
  • e6eaf25:
    Sort entries by segment when building a parent node to prevent
    unordered directory structures.

Important changes:

  • Remote Execution: Fixes a regression that produces directories with unsorted file/directory lists

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

30 Apr 08:58
Compare
Choose a tag to compare

Release 0.13.0 (2018-04-30)

Baseline: fdee70e

Cherry picks:

  • f083e76:
    windows: GetOutputRoot() returns GetHomeDir()
  • fa36d2f:
    Automated rollback of commit
    4465dae.
  • 4abd2ba:
    Add error message on empty public resources
  • 2c95757:
    test-setup: remove leading "./" from test name

Incompatible changes:

  • Remove //tools/defaults:android_jar. Use
    @bazel_tools//tools/android:android_jar instead.

  • The flag --incompatible_show_all_print_messages is removed.
    Messages generated by print statements from any package will be
    displayed as
    DEBUG messages.

  • The --incompatible_disallow_uncalled_set_constructor flag is no
    longer available, the set constructoris completely removed from Skylark. Usedepset` instead.

  • Variables PACKAGE_NAME and REPOSITORY_NAME are deprecated in
    favor of
    functions package_name() and repository_name().

    https://docs.bazel.build/versions/master/skylark/lib/native.html#p
    ackage_name

  • BUILD_TIMESTAMP now contains seconds (and not milliseconds) since
    the epoch.

New features:

  • Strings have a new .elems() method, that provides an iterator on
    the characters of the string.
  • Now you can access three functions in windows_cc_configure.bzl by:
    load("@bazel_tools/tools/cpp:windows_cc_configure.bzl",
    "<function_name>")

Important changes:

  • CppRules: Unified action_configs for static libraries

  • Remove support for blaze dump --vfs. It is no longer meaningful.

  • Enable dependency checking for aar_import targets.

  • internal_bootstrap_hack has been deprecated and removed.

  • Properly handle tree artifacts on the link command line coming
    from a cc_library dependency.

  • Allow C++ features to make proto_library emit smaller C++ code

  • The 'j2objc' configuration fragment is exposed to Skylark.

  • Remove the default content of the global bazelrc.

  • In int() function, do not auto-detect base if input starts with
    '0'.

  • Users can now pass --experimental_shortened_obj_file_path=true to
    have a shorter object file path, the object file paths (and all
    other related paths) will be constructed as following:
    If there's no two or more source files with the same base name:

    /<target_package_path>/_objs/<target_name>/<source_base
    _name>.
    otherwise:

    /<target_package_path>/_objs/<target_name>/N/<source_ba
    se_name>.
    N = the file?s order among the source files with the same
    basename, starts from 0.

  • Move (c/cxx)opts from legacy_compile_flags to user_compile_flags

  • CppRules: Remove optional_*_flag fields from CROSSTOOL, they are
    not
    used, and could be expressed using features.

  • Introduce --incompatible_disable_objc_provider_resources to turn
    off all resource-related fields of the Objc provider.

  • Removed the statement of "What does Bazel support?" as it's
    limiting/misleading. Added supported host OSes to
    "multi-platform" paragraph.

  • android_library AAR output now contains proguard.txt

  • Bazel now displays information about remote cache hits and
    execution strategies used in its UI after every build and test,
    and adds a corresponding line "process stats" to BuildToolLogs in
    BEP.

  • Print correct build result for builds with --aspects flag.

  • android_binary.manifest_merger is no longer supported.

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

11 Apr 16:09
Compare
Choose a tag to compare

Release 0.12.0 (2018-04-11)

Release notes are here: https://blog.bazel.build/2018/04/11/bazel-0.12.html

Baseline: b33e5af

Cherry picks:

  • 3694099:
    Automated rollback of commit
    c2b332b.
  • dbf7798:
    Emit SJD errors even if we don't know the label of a dependency
  • 4c3098c:
    Android tools: remove mtime-modifications
  • a1068c4:
    NDK cc_toolchains: include bundled runtime libraries in
    cc_toolchain.all_files
  • b1be581:
    runfiles,Python: remove library from @bazel_tools
  • 0a46220:
    Fix visibility of def_parser for remote builds
  • 3c5373c:
    Remove visibility attribute from
    //third_party/def_parser:def_parser
  • f54d7e5:
    Enable bulk writes in the HttpBlobStore
  • 04ce86e:
    remote/http: properly complete user promise

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.