Skip to content

Tags: brentleyjones/bazel

Tags

3.3.1

Toggle 3.3.1's commit message
Release 3.3.1 (2020-06-30)

Baseline: c063b5c

Cherry picks:

   + cb798a4:
     Restore missing Building with Platforms docs.
   + 9be9767:
     Release 3.3.0 (2020-06-17)
   + 3b0439e:
     Fix incorrect assumption of desugar persistent worker conditional

This release contains contributions from many people at Google, as well as .

3.3.0

Toggle 3.3.0's commit message
Release 3.3.0 (2020-06-17)

Baseline: c063b5c

Cherry picks:

   + 23bd69d:
     Restore missing Building with Platforms docs.

Incompatible changes:

  - The startup option --fatal_event_bus_exceptions is now a no-op
    and will be removed soon.

New features:

  - Bazel offers basic completion for the fish shell.

Important changes:

  - Add configuration_field for --custom_malloc to cpp config fragment
  - Flip --incompatible_objc_compile_info_migration to true.  See
    bazelbuild#10854.
  - It is now possible to use different action mnemonics while still
    sharing the same pool of persistent workers. It requires setting
    a new property
    on the execution requirements (`worker-key-mnemonic`). The value
    overrides
    the action's mnemonic when it comes to reusing worker processes.
  - linkshared=1 in cc_binary no longer requires '.so' or '.dll' in
    the target name
  - Revert --incompatible_objc_compile_info_migration to false.  See
    bazelbuild#10854.
  - Invoke clang with the correct -target flag when building for
    watchOS.
  - NA
  - Add experiment flag to forward InstrumentedFilesInfo from
    non-tool deps by default.

This release contains contributions from many people at Google, as well as Abhishek Kumar, Adam Azarchs, Akira Baruah, Daniel Wagner-Hall, Derek Argueta, glukasiknuro, Greg Estren, Greg, Jason Furmanek, Jiri Dank, Keith Smiley, Kseniia Vasilchuk, Laurent Le Brun, Matt Mackay, Michael Klemm, Nikolay Shelukhin, Patrick Balestra, Rui Chen, Siggi Simonarson, sventiffe, Tobias Werth, Tom de Goede, Vladimir Chebotarev, Yannic Bonenberger.

3.2.0

Toggle 3.2.0's commit message
Release 3.2.0 (2020-05-27)

Baseline: 1d93d26

Important changes:

  - Renamed --experimental_slim_json_profile to --slim_profile.
  - Expose ctx.attr.write Args content for analysistest when possible
  - Added aquery_differ_v2 that works with the new aquery proto
    output format.
  - Add new flag, 'experimental_no_product_name_out_symlink', to omit
    creating '<product>-out' symlink if user specifies
    '--symlink_prefix' option.
  - --ram_utilization_factor is removed (as is
    --incompatible_remove_ram_utilization_factor). Please use
    --local_ram_resources.
  - Improve include scanner support for cl.exe and clang-cl command
    lines
  - ctx.split_attr now includes attributes with Starlark split
    transitions.
  - Added --incompatible_string_replace_count, to make
    string.replace() behave as in Python.
  - Bazel can now recursively delete non-executable but readable
    directories.
  - Restore case-sensitivity to -I and /I include scanning detection
    to avoid conflicts.

This release contains contributions from many people at Google, as well as Alessandro Patti, Antoine Eiche, Beebs, Brian Silverman, George Gensure, Gerhard Pretorius, Gibson Fahnestock, Greg, Gregor Jasny, Gustav Westling, hannometer, Jin, Jonathan Gerrish, Josh Smith, Justin Y Wei, Laurent Le Brun, Links, liubang, Lszl Csomor, Matt Mackay, Moritz Krger, Ryan Beasley, Siddhartha Bagaria, Yannic Bonenberger, Yannic, Zhongpeng Lin.

3.1.0

Toggle 3.1.0's commit message
Release 3.1.0 (2020-04-21)

Baseline: 17ebbf1

Cherry picks:

   + 71fb56b:
     Suppress last-ditch download exceptions w/cleanup
   + fd60614:
     In repo rules, don't warn about generator_* attributes being
     non-canonical
   + 2a37279:
     Refactor configureFeatures and prevent NPE
   + 777a6ee:
     Automated rollback of commit
     0bbe381.
   + 2ee53c9:
     Guard parseActionResultMetadata with bulk wrapper

Incompatible changes:

  - The deprecated startup options
    --experimental_oom_more_eagerly(_threshold) are removed.

Important changes:

  - Remove flag
    --incompatible_load_proto_toolchain_for_javalite_from_com_google_p
    rotobuf which has been flipped in Bazel 3.0.
  - Allow assembly file sources in cc_common.compile.
  - Set default .netrc file on Windows to %USERPROFILE%
  - A maximum 150 attributes per RuleClass is enforced
  - Increase max targets per rule class limit to 200
  - ctx.split_attr now includes attributes with Starlark split
    transitions.
  - The --max_computation_steps flag bounds the computation done by a
    BUILD file.
  - Native patch can handle file permission properly
  - Aspects may now propagate through dependencies on rule outputs by
    being defined with `apply_to_generating_rules = True`.
  - 'query --output=build' now shows where rule classes (not just
    rules) are created.
  - The flag `incompatible_bzl_disallow_load_after_statement` is
    removed.
  - ctx.split_attr now includes attributes with Starlark split
    transitions.
  - The flag `incompatible_no_output_attr_default` is removed.
  - Fix wall-time of the SpawnResult in WorkerSpawnRunner
  - Add stamp parameter for cc_common.link to enable including build
    info
  - The flag `--incompatible_restrict_named_params` is removed.
  - The flag `--incompatible_depset_union` is removed.
  - Bazel uses fewer compiler flags by default when building
    Objective-C. In
    particular, Bazel no longer sets `-O0`, `-DDEBUG=1`,
    `-fstack-protector`, `-fstack-protector-all`, or `-g` in dbg
    mode, and
    Bazel no longer sets `-Os`, `-DNDEBUG=1`, `-Wno-unused-variable`,
    `-Winit-self`, or `-Wno-extra` in opt mode. If you want to apply
    these
    flags to your project, you can reenable them in your CROSSTOOL.
  - A maximum attribute name length is 128 is enforced

This release contains contributions from many people at Google, as well as Alessandro Patti, Benjamin Peterson, Benjamin Romano, Bor Kae Hwang, Chris Heisterkamp, Cristian Hancila, Dmitri G, Douglas Parker, George Gensure, Gregor Jasny, John Millikin, Keith Smiley, Leo, Mike Fourie, Patrick Balestra, Robbert Van Ginkel, Ryota, Samuel Giddins, Ulf Adams, Ulf Adams, Vertexwahn, Xavier Bonaventura, Yannic Bonenberger.

3.0.0

Toggle 3.0.0's commit message
Release 3.0.0 (2020-04-06)

Baseline: 3c7cc74

Cherry picks:

   + 19e214b:
     Use prefix encoding for paths.
   + 63b01f7:
     Avoid file operations in the sandbox creation critical path.
   + 80a2d7c:
     Implementation (but not plumbing) of the gRPC remote downloader
   + 586eabf:
     Implement RemoteDownloader w/ `--experimental_remote_downloader`

Incompatible changes:

  - Flip --incompatible_remove_enabled_toolchain_types, so that rules
    can no longer access enabled toolchain types from the platform
    fragment.
  - The --incompatible_use_jdk11_as_host_javabase flag has been
    removed (it was flipped in Bazel 0.25.0).
  - Using JDK 9 or 10 as a `--host_javabase` is no longer officially
    supported. As always, you can use the
    `@bazel_tools//tools/jdk:toolchain_vanilla` Java toolchain to use
    older or newer JDKs than what Bazel currently supports.
  - --fatal_event_bus_exceptions is deprecated and should not be
    used. Any crashes should be reported so that they can be fixed.
  - The old-style binary profile format is no longer suppported, use
    the new JSON trace profile instead.

Important changes:

  - Improve the performance of creating a sandboxed execution root
    for workers when the number of inputs is large (>1000).
  - Treat .cu and .cl files as C++ source. CUDA or OpenCL are not
    natively supported and will require custom flags to compile with
    e.g. clang.
  - Add actions' primary output details in JSON profile and
    analysis_v2.proto.
  - Add --cds_archive option for embedding CDS archive into deploy
    JAR.
  - Add new global attribute: applicable_licenses
    - Package level default with default_applicable_licenses
    - guarded by --incompatible_applicable_licenses (default true for
    Blaze, false for Bazel)
    - In support of
    https://docs.google.com/document/d/1uwBuhAoBNrw8tmFs-NxlssI6VRolid
    GYdYqagLqHWt8/edit#
  - Non-test Java rules no longer require the TestConfiguration and
    thus --trim_test_configuration is again usable for Java builds
  - The flag `--incompatible_always_check_depset_elements` is enabled
    by default.
  - --incompatible_objc_compile_info_migration determines
    whether native rules can assume compile info has been migrated to
    CcInfo. See bazelbuild#10854.
  - --incompatible_remove_local_resources is true by default. Please
    use --local_ram_resources and --local_cpu_resources instead of
    --local_resources.

This release contains contributions from many people at Google, as well as Alessandro Patti, Benjamin Peterson, Christy Norman, Dave hughes, David Haxton, David Neil, garyschulte, George Chiramel, George Gensure, Gibson Fahnestock, Greg Estren, Greg, Jason Hoch, Jin, John Millikin, Jonathan Springer, Keith Smiley, Laurent Le Brun, Ulf Adams, Yannic Bonenberger, Yannic, Yihong Wang, Yuchen Dai.

2.2.0

Toggle 2.2.0's commit message
Release 2.2.0 (2020-03-03)

Baseline: 78055ef

Incompatible changes:

  - The --[no]incompatible_windows_bashless_run_command flag is no
    longer supported. It was flipped in Bazel 1.0
  - The --[no]incompatible_windows_native_test_wrapper flag is no
    longer supported. It was flipped in Bazel 1.0

Important changes:

  - Consistent target naming style in example target names.
  - cquery's config() now supports arbitrary configurations.
  - The flag --incompatible_disallow_dict_lookup_unhashable_keys is
    removed.
  - Include target label in Python version error message.
  - The flag --incompatible_remap_main_repo is removed.
  - Windows: we now discourage running Bazel from MSYS2 because of a
    newly found bug (bazelbuild#10573)
  - Reduced the packaging time (`package-bazel.sh`) for the
    `//src:bazel-dev` Bazel development build target from 14s to 6s.
    Use `//src:bazel-dev` if you're iterating rapidly on a local
    Bazel changes, and use `//src:bazel --compilation_mode=opt` for
    release builds.
  - cquery: "//foo:bar" now means "all configured targets with label
    //foo:bar" instead of "choose an arbitrary configured target with
    label //foo:bar". See cquery docs for details.
  - WORKSPACE and BUILD.bazel files of http_archive repositories can
    now be patched using the "patch_cmds" and "patches" attributes.
  - Actions with "parse" on the critical path should no longer finish
    in the future.
  - Flags that affect external repositories like
    "--override_repository" can now be addressed in bazelrc files
    using the "common" command, without causing commands like "bazel
    shutdown" to fail.
  - The flag --incompatible_disallow_unverified_http_downloads is
    removed.
  - Create the incompatibleApplicableLicenses flag.
    We plan to flip this from false to true in Bazel 4.x.
    Implementation to follow.
  - Treat .cu and .cl files as C++ source. CUDA or OpenCL are not
    natively supported and will require custom flags to compile with
    e.g. clang.
  - Treat .cu and .cl files as C++ source. CUDA or OpenCL are not
    natively supported and will require custom flags to compile with
    e.g. clang.
  - The --starlark_cpu_profile=<file> flag writes a profile in
    pprof format containing a statistical summary of CPU usage
    by all Starlark execution during the bazel command. Use it
    to identify slow Starlark functions in loading and analysis.
  - --ram_utilization_factor will be deprecated. Please use
    --local_ram_resources=HOST_RAM*<float>
  - Docs: glob() documentation is rewritten, and now it points out a
    pitfall of rules shadowing glob-matched files.

This release contains contributions from many people at Google, as well as Alessandro Patti, Alex Kirchhoff, aman, Artur Dryomov, Benjamin Peterson, Benjamin Peterson, David Ostrovsky, Elliotte Rusty Harold, Eric Klein, George Chiramel, George Gensure, Guillaume Bouchard, Hui-Zhi, John Millikin, Jonathan Springer, Laurent Le Brun, Michael McLoughlin, nikola-sh, Nikolaus Wittenstein, Nikolay Shelukhin, Yannic Bonenberger, Yannic.

2.1.1

Toggle 2.1.1's commit message
Release 2.1.1 (2020-02-21)

Baseline: 41ec5a2

Cherry picks:

   + 733ac0f:
     Adds an alias for d8_jar_import in android.WORKSPACE.
   + c94b147:
     Automatic code cleanup.
   + 2a8cc70:
     Do not fail or print errors when Shellzelisk cannot find a
     requested ?
   + bdf34d7:
     Fix race when extracting the install base when Bazel runs in a
     PID namespace.
   + d381c25:
     Fix wrong mode of install base directory.
   + eab39cc:
     Disable broken test_max_open_file_descriptors.
   + e6ee35f:
     Release 2.1.0 (2020-02-07)
   + 9a823d9:
     Prevent NPE on backwards seek on Chunker

9a823d9: Prevent NPE on backwards seek on Chunker.

This release contains contributions from many people at Google, as well as George Gensure.

2.0.1

Toggle 2.0.1's commit message
Release 2.0.1 (2020-02-21)

Baseline: db0e32c

Cherry picks:

   + 85e84f7:
     Set --incompatible_prohibit_aapt1 default to true.
   + 84eae2f:
     Let shellzelisk fallback to bazel-real if it's the requested
     version.
   + d5ae460:
     Fix a typo in bazel.sh
   + 59e3600:
     Release 2.0.0 (2019-12-19)
   + 9a823d9:
     Prevent NPE on backwards seek on Chunker
   + 2a8cc70:
     Do not fail or print errors when Shellzelisk cannot find a
     requested ?

9a823d9: Prevent NPE on backwards seek on Chunker.
2a8cc70: Do not fail or print errors when Shellzelisk cannot find a requested Bazel binary, if tools/bazel exists.

This release contains contributions from many people at Google, as well as George Gensure.

2.1.0

Toggle 2.1.0's commit message
Release 2.1.0 (2020-02-07)

Baseline: 41ec5a2

Cherry picks:

   + 733ac0f:
     Adds an alias for d8_jar_import in android.WORKSPACE.
   + c94b147:
     Automatic code cleanup.
   + 2a8cc70:
     Do not fail or print errors when Shellzelisk cannot find a
     requested ?
   + bdf34d7:
     Fix race when extracting the install base when Bazel runs in a
     PID namespace.
   + d381c25:
     Fix wrong mode of install base directory.
   + eab39cc:
     Disable broken test_max_open_file_descriptors.

Incompatible changes:

  - The following attributes of CcToolchainProvider, which formerly
    were
    accessible both as fields (x.f) and as methods (x.f()), are now
    only fields:

New features:

  - Similar to the
    [.bazelignore](https://docs.bazel.build/versions/master/guide.html
    #.bazelignore) in the main repository, a `.bazelignore` file in
    external repository will cause the specified directories to be
    ignored by Bazel. Bazel won't try to identify any packages under
    the directories, but the files can still be referenced in other
    BUILD files.
  - bazelignore files now support line comments, e.g. "# this is a
    comment"

Important changes:

  - Experimental support for d8 merger is now available for use using
    --define=android_dexmerger_tool=d8_dexmerger.
  - Critical path run time should not have a longer run time than
    total execution run time.
  - Remove "please do not import" warning for cc rules.
  - x.f() is now equivalent to y=x.f; y(). That is, x.f should return
    the same
    attribute value regardless of whether it is accessed as a field
    or called
    like a method. Any arguments to the call are evaluated after the
    x.f operation.
  - Add desugaring support for RoleManager#addRoleHolderAsUser
  - Adds ctx.target_platform_has_constraint to allow rules to check
    the target platform's constraints.
  - Critical path run time should not have a longer run time than
    total execution run time.
  - Post new ConvenienceSymlinksIdentifiedEvent to the
    BuildEventProtocol when
    --experimental_convenience_symlinks_bep_event is enabled.
  - Keyword-only arguments are now allowed:
        def foo(a, *, k): pass
        def foo(a, *b, k): pass
      where k can be specified only by keyword:
        foo(5, k=6)
  - Generated Go protobufs now depend on //net/proto2/go:protodeps in
    addition to //net/proto2/go:proto
  - cquery 'somepath' returns more reliable results when the
    dep has a different configuration than the parent. To get a
    result for
    `somepath(//foo, //bar`) where //bar isn't in the top-level
    configuration,
    run your query with `--universe_scope=//foo`. See cquery docs for
    details.

This release contains contributions from many people at Google, as well as Adam Liddell, Alessandro Patti, Andreas Herrmann, Bor Kae Hwang, Brian Silverman, Emran BatmanGhelich, George Gensure, Greg Estren, Jeff Palm, Jonathan Beverly, Mark Nevill, Patrick Niklaus, Peter, Philipp Wollermann, Ryan Beasley, Shin Yamamoto, Yen-Chi Chen.

2.0.0

Toggle 2.0.0's commit message
Release 2.0.0 (2019-12-19)

Baseline: 807ed23

Cherry picks:

   + db0e32c:
     build.sh: Fix bug in build script for RC release
   + 85e84f7:
     Set --incompatible_prohibit_aapt1 default to true.
   + 84eae2f:
     Let shellzelisk fallback to bazel-real if it's the requested
     version.
   + d5ae460:
     Fix a typo in bazel.sh

Incompatible changes:

  - --incompatible_remap_main_repo is enabled by default. Therefore,
    both ways of addressing the main repository, by its name and by
    '@' are now considered referring to the same repository.
    see bazelbuild#7130
  - --incompatible_disallow_dict_lookup_unhashable_keys is enabled by
    default bazelbuild#9184
  - --incompatible_remove_native_maven_jar is now enabled by default
    and the flag removed. See bazelbuild#6799
  - --incompatible_prohibit_aapt1 is enabled by default.
    See bazelbuild#10000

Important changes:

  - --incompatible_proto_output_v2: proto v2 for aquery proto output
    formats, which reduces the output size compared to v1. Note that
    the messages' ids in v2 are in uint64 instead of string like in
    v1.
  - Adds --incompatible_remove_enabled_toolchain_types.
  - Package loading now consistently fails if package loading had a
    glob evaluation that encountered a symlink cycle or symlink
    infinite expansion. Previously, such package loading with such
    glob evaluations would fail only in some cases.
  - The --disk_cache flag can now also be used together
    with the gRPC remote cache.
  - An action's discover inputs runtime metrics is now categorized as
    parse time on the CriticalPathComponent.
  - Make the formatting example more like to the written text by
    adding an initial description.
  - An action's discover inputs runtime metrics is now categorized as
    parse time on the CriticalPathComponent.
  - Bazel's Debian package and the binary installer now include an
    improved wrapper that understands `<WORKSPACE>/.bazelversion`
    files and the `$USE_BAZEL_VERSION` environment variable. This is
    similar to what Bazelisk offers
    (/~https://github.com/bazelbuild/bazelisk#how-does-bazelisk-know-whi
    ch-bazel-version-to-run-and-where-to-get-it-from), except that it
    works offline and integrates with apt-get.
  - We are planning to deprecate the runfiles manifest files, which
    aren't safe in the presence of whitespace, and also unnecessarily
    require local CPU when remote execution is used. This release
    adds --experimental_skip_runfiles_manifests to disable the
    generation of the input manifests (rule.manifest files) in most
    cases. Note that this flag has no effect on Windows by default or
    if --experimental_enable_runfiles is explicitly set to false.

This release contains contributions from many people at Google, as well as aldersondrive, Benjamin Peterson, Bor Kae Hwang, David Ostrovsky, Jakob Buchgraber, Jin, John Millikin, Keith Smiley, Lauri Peltonen, nikola-sh, Peter Mounce, Tony Hsu.