Release 3.6.0 (2020-10-06)

Baseline: aa0d97c0bfc4c09ec6f45303aa80052ba28afbd9

Cherry picks:

   + 32c88da98f301333dc447b75564459165368d418:
     Patch RuleContext for android_binary.deps to restore legacy
     behavior.
   + db9fc88fed387f09067a9250a731f8bf9ad74b05:
     android_test also needs the legacy behavior in
     RuleContext.getPrerequisites.
   + 144d5149a0c50e464dd1be0769fed2ce33ab26a4:
     Update android_sdk_repository to create a valid, but useless,
     repository
   + bb11f9235da52eb3b3e462ce0286f1a89188cb89:
     Patch upb to fix build error with gcc 10
   + 9f06be482aea3fcadeaf8fca6e48b32f224eba2e:
     Patch upb to fix build error with gcc 10 (third_party)
   + b67b75e3a62f5433d812993f3702f431b6967e86:
     Fix issue where libtool_check_unique isn't found for sandbox
     builds

Incompatible changes:

  - `--experimental_ui_limit_console_output` is removed. Users of
    `--experimental_ui_limit_console_output=1` for silencing terminal
    output should use `--ui_event_filters=` instead.
  - --proto:instantiation_stack must be enabled in addition to
    --record_rule_instantiation_callstack to see call stack in proto
    output from blaze query.

New features:

  - cc_common.compile support for include_prefix/strip_include_prefix
  - Multiplexed persistent workers: Use
    --experimental_worker_max_multiplex_instances to configure the
    number of WorkRequests that are sent concurrently to one worker
    process. The --worker_max_instances flag will no longer be used
    to determine max instances for multiplex workers, since the two
    have different resource requirements. Multiplex workers will by
    default have a max instances of 8.

Important changes:

  - The prelude file (//tools/build_rules:prelude_bazel) is now
    processed as a Starlark module, rather than being sourced into
    the BUILD file textually. This may cause slight breakages
    depending on the content of the prelude file. (Use of the prelude
    file is discouraged as it will be removed in the long term.)
  - Removed --experimental_ignore_deprecated_instrumentation_spec and
    cleaned up the old deprecated behavior.
  - Added CODEBASE.md, a description of the Bazel codebase.
  - Removed the flag --experimental_transparent_compression.
  - Removed the flag --experimental_action_args.
  - Stop needlessly parsing WORKSPACE files from external
    repositories.
  - Dot ('.') is now allowed in workspace names. See
    https://github.com/bazelbuild/bazel/issues/11837.
  - This change can cause memory and performance regressions for some
    builds with C++ dependencies, due to extra actions being executed.
    RELNOTES: None
  - Building Android apps for legacy multi-dex (pre-L) now require a
    main-dex list if the application does not fit into a single DEX
    file.
  - Puts the experimental_worker_multiplex flag to use.
  - In Starlark, the Args object supports a new parameter file format
    'flag_per_line', compatible with the Abseil flags library.
  - The flag --incompatible_no_support_tools_in_action_inputs is
    removed.
  - Support for NDK 21 added
  - Bazel will now skip printing action stdout/stderr contents if
    they exceed --experimental_ui_max_stdouterr_memory_bytes.
  - The Starlark interpreter now correctly emits an error
     if the operand of the first loop in a list comprehension
     refers to a variable bound by a later loop, such as y in
     this example:
       [e1 for x in f(y) in e2 for y in e3] # error: undefined y
                      ^
     This may cause latent dynamic errors to become static errors.
  - Added support for a 'supports-graceful-termination' execution
    requirement and tag, which causes Bazel to send a SIGTERM to any
    tagged
    actions before sending a delayed SIGKILL. This is to give
    actions, and more
    specifically tests, a chance to clean up after themselves.
  - Non-android targets can again be built when
    android_sdk_repository is present but invalid.

This release contains contributions from many people at Google, as well as Benjamin Peterson, Daniel Wagner-Hall, Dave MacLachlan, David Ostrovsky, Emil Kattainen, George Gensure, Greg Estren, Keith Smiley, mai12, Mai Hussien, Michael Eisel, Per Halvor Tryggeseth, Ruixin Bao, Samuel Giddins, Steeve Morin, Thi Doan, Tom de Goede, Ulf Adams, Zhongpeng Lin.
1 file changed
tree: 2e6ae827ddbd63b5bb41de9e8b420176233e1cab
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEBASE.md
  15. CODEOWNERS
  16. combine_distfiles.py
  17. combine_distfiles_to_tar.sh
  18. compile.sh
  19. CONTRIBUTING.md
  20. CONTRIBUTORS
  21. distdir.bzl
  22. ISSUE_TEMPLATE.md
  23. LICENSE
  24. README.md
  25. WORKSPACE
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.

  • One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.

  • Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.

  • Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status