Release 9.0.0-pre.20241016.1 (2024-10-22)

Baseline: 253fedc5d5adbb6015735b31103be584e2125d5b

Incompatible changes:

  - With the default Unix toolchain on macOS, binaries now use
    `@rpath` to find their `.dylib` dependencies. This is required to
    fix issues where tools run during the build couldn't find their
    dynamic dependencies.
  - The flag `--incompatible_disallow_empty_glob` now defaults to
    true.

Important changes:

  - Native android_sdk is no longer available within Bazel. Use
    https://github.com/bazelbuild/rules_android
  - Add the
    --incompatible_simplify_unconditional_selects_in_rule_attrs
    option to simplify configurable rule attributes which contain
    only unconditional selects; for example, if ["a"] +
    select("//conditions:default", ["b"]) is assigned to a rule
    attribute, it is stored as ["a", "b"].
  - `--incompatible_disallow_unsound_directory_outputs` is deleted.
  - `--incompatible_remote_symlinks` and
    `--incompatible_remote_dangling_symlinks` are deleted.
  - The default value of
    `--experimental_remote_cache_eviction_retries` is changed to `5`.
  - If --proto:rule_classes flag is enabled, query proto output will
    contain rule class definitions in Stardoc proto format.
  - Non-singleton target visibility lists can now contain
    "//visibility:public" and "//visibility:private" elements; the
    result is appropriately simplified when assigned to an attribute:
    ["//foo:__subpackages__", "//visibility:public"] is saved as
    ["//visibility:public"], ["//foo:__subpackages__",
    "//visibility:private"] is saved as ["//foo:__subpackages__"],
    and for consistency's sake, an empty target visibility list [] is
    saved as ["//visibility:private"].
  - Symbolic Macros -- and with them, Finalizers and the new
    Macro-Aware Visibility model -- are now generally available
    (`--experimental_enable_first_class_macros` now defaults to
    true). Trivial `select()` values are automatically unwrapped
    (`--incompatible_simplify_unconditional_selects_in_rule_attrs`
    now defaults to true).
  - Moved all Bazel Android tool and action code to rules_android.
  - Add conlyopts and cxxopts attributes to cc rules
  - `@bazel_tools//tools/android` no longer exists. Use
    https://github.com/bazelbuild/rules_android instead.
  - Bazel now supports all characters in the rlocation and target
    paths of runfiles and can be run from workspaces with a space in
    their full path.
  - The Python six library is no longer part of @external_tools.

This release contains contributions from many people at Google, as well as Alessandro Patti, Benjamin Peterson, CaerusKaru, Dennis van den Berg, dependabot[bot], Fabian Meumertzheim, Fredrik Medley, hvd, Keith Smiley, Maria, Mislav Mandaric, Tomasz Pasternak, Xavier Bonaventura, Xdng Yng, Xùdōng Yáng.
1 file changed
tree: 59a29cd33a790bf305dcbe26e82cfa7f8e44a0a1
  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. rbe_extension.bzl
  31. README.md
  32. repositories.bzl
  33. requirements.txt
  34. SECURITY.md
  35. 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