Release 9.0.0-pre.20241113.4 (2024-11-20)

Baseline: 8d02d476f0a1ccc5bfcc47b2dd9ac17526c4d0fb

Cherry picks:

   + 04871da8478a9ce713a0c08b442a686bed61c7c9:
     Use LinkedHashSet instead of HashSet in
     CcCompilationContext.Builder for determinism
   + aa5d821c58d8b20ba55365b32d1bccc3235eb70a:
     Automated rollback of commit
     7ffa08e649a57728a642fb1643396678ea2032a8.
   + 08beb210eddd35b703857e005d99c60b963e8e10:
     Put macro attribute inheritance behind an off-by-default
     --experimental_enable_macro_inherit_attrs flag
   + f8e1588bb3ae7f46ded713e129c6eff63d76d107:
     Update `with_cfg.bzl` to v0.6.0

Incompatible changes:

  - On Windows, a change to the output base locking protocol might
    cause an older Bazel invoked immediately after a newer Bazel (on
    the same output base) to error out instead of blocking for the
    lock, even if --block_for_lock is enabled.
  - The `--watchfs` startup option is now a no-op and will be removed
    in April 2025. Use the `--watchfs` command option instead.
  - The mnemonic passed to --worker_extra_flag is now matched against
    the worker key mnemonic when one is available, instead of the
    action mnemonic. This makes it consistent with other worker flags
    taking a mnemonic.

New features:

  - The "blaze --quiet" command line option can now be used to make
    Blaze emit much less output.
  - REPO.bazel now allows another directive, "ignore_directories()".
    It takes a list of directories to ignore just like .bazelignore
    does, but with glob semantics.
  - Commands executed by "bazel run" now have two extra environment
    variables: $BUILD_ID indicates the id of the Bazel command and
    $BUILD_EXECROOT indicates the execroot of the Bazel server.

Important changes:

  - The stripPrefix parameter of repository_ctx.download_and_extract()
    and repository_ctx.extract() has been renamed to strip_prefix;
    the deprecated
    stripPrefix name remains usable for compatibility.
  - A no-config transition is now available as `config.no_config()`.
  - Actions that create runfiles trees are now considered regular
    actions. This means that they are now reported in statistics,
    critical paths and the like.
  - External repositories that are managed by Bzlmod can now contain
    a top-level `external` directory or package.
  - `repository_ctx.execute` can now remove an environment variable
    when executing a process by associating it with the value `None`
    in the `environment` argument.
  - Add inherit_attrs param to macro() to allow symbolic macros to
    inherit attributes from rules or other symbolic macros.
  - `bazel mod` now tries to evaluate all module extensions, even
    when some have failed to evaluate.
  - The new `--inject_repository` flag can be used to add new
    repositories via the CLI with `--enable_bzlmod`. Such
    repositories behave as if they were declared by
    `local_repository` via `use_repo_rule` in the root module.
  - symbolic macro attribute inheritance is now marked experimental;
    set --experimental_enable_macro_inherit_attrs flag to enable it.

This release contains contributions from many people at Google, as well as Alexander Golovlev, Benson Muite, Cornelius Riemenschneider, dependabot[bot], Dimi Shahbaz, Fabian Meumertzheim, Farid Zakaria, Honnix, Jay Conrod, John Millikin, Keith Smiley, Matt Brown, Richard Woodbury, Roman Salvador, Rostislav Rumenov, Wojciech Mazur, Xdng Yng, Zhongpeng Lin.
1 file changed
tree: be7a47eba2da69b19d1b4ad5927a2acc485d8b36
  1. .bazelci/
  2. .github/
  3. examples/
  4. scripts/
  5. site/
  6. src/
  7. third_party/
  8. tools/
  9. .bazelrc
  10. .bazelversion
  11. .gitattributes
  12. .gitignore
  13. AUTHORS
  14. bazel_downloader.cfg
  15. BUILD
  16. CHANGELOG.md
  17. CODE_OF_CONDUCT.md
  18. CODEOWNERS
  19. combine_distfiles.py
  20. combine_distfiles_to_tar.sh
  21. compile.sh
  22. CONTRIBUTING.md
  23. CONTRIBUTORS
  24. distdir.bzl
  25. extensions.bzl
  26. LICENSE
  27. maven_install.json
  28. MODULE.bazel
  29. MODULE.bazel.lock
  30. README.md
  31. repositories.bzl
  32. requirements.txt
  33. SECURITY.md
  34. workspace_deps.bzl
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

Reporting a Vulnerability

To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.

Contributing to Bazel

See CONTRIBUTING.md

Build status