github bazelbuild/bazel 10.0.0rc1

pre-release3 hours ago

Note

If you are looking for rolling releases, please visit this page.

The following release notes are still in the process of being updated and cleaned up.

Release 10.0.0rc1 (2026-10-07)

Release Notes:

Android:

  • Add proper error ordering for bazel mobile-install command (#30998)

Configurability:

  • [Incompatible] template_ctx.run now rejects a template's own output directories passed through tools, as it already did for inputs. Pass individual files produced by sibling actions instead. (#31029)
  • [Incompatible] Bazel no longer trims the lines of the unused_inputs_list file before matching them against the action's inputs as file names may begin or end with whitespace. (#31533)

ExternalDeps:

  • bazel fetch --force no longer causes the fetched repos to be fetched again by the next build with a spurious warning about external modifications. (#31108)
  • Added Label.repo_root as a replacement for the deprecated Label.workspace_root. (#31173)
  • bazel mod show_repo now prints the path of each repo's directory as a # Located at: comment in text output and as the new repo_root field in proto and JSON output. (#31176)
  • [Incompatible] bazel mod tidy now evaluates all module extensions in the dependency graph to update the lockfile, including extensions used only by dependencies. It can thus be used as a full replacement for bazel mod deps when the goal is to ensure that the lockfile is up-to-date. When using bazel vendor, this may require vendoring additional dependencies. (#31329)
  • bazel vendor --lockfile_deps additionally vendors the repositories required to update the lockfile, e.g. with bazel mod tidy, while fetching is disabled, which can be combined with target patterns. The @bazel_tools//tools:tools_for_bazel_subcommands filegroup is deprecated. (#31562)
  • [Incompatible] bazel_dep() no longer accepts dependencies on the current module, which serve no purpose and were never intended to be allowed. Remove self-dependencies and use the module's own repository name for self-references. (#31552)
  • [Incompatible] The root module can no longer use use_repo() to import an extension repository that it overrides with the root module itself (using override_repo() or inject_repo()). Remove the self-import and use the root module's existing repository name. Other modules can still import the overridden repository. (#31553)

General:

  • The deprecated remote_execution_properties platform attribute has been removed in favor of exec_properties.
  • The new attr.label_list_dict type accepts a dict in which keys are strings and values are lists of labels.
  • The new --remote_max_concurrency_per_connection can be used to specify the maximum number of concurrent gRPC requests Bazel will issue on a single connection to the server. The default value of 100 matches the previous behavior.
  • bazel query/cquery/aquery now supports an executables() function to find only the executable targets in a given expression
  • In environment variable values set via --repo_env, the substring %bazel_workspace% is now replaced with the absolute path of the current Bazel workspace. This can, for example, be used to make tools checked into the repository available on the PATH for repository rules.
  • Added an optional parameter to allow eliding the stack trace when calling fail().
  • --override_repository now supports apparent repository names from the point of view of the main repository. An unknown apparent repo name will result in an error.
  • The values of keyword arguments passed to use_repo can now contain the special substrings {name} and {version}, which are treated as equivalent to the corresponding attributes of the current module.
  • C static libraries can now elide backwards reference warnings (if linking with LLD and such warnings are enabled) if the warn_backrefs_defined feature is defined and enabled for the toolchain.
  • The new package_relative_label function on the rule context (ctx) can be used to turn a user-provided label string into a Label relative to the target that is currently being analyzed (where Label(...) would return a Label relative to the .bzl file containing the call).
  • Reporting of cached test results can now be suppressed with --test_summary=short_uncached or --test_summary=detailed_uncached.
  • [Incompatible] The config_settings @bazel_tools//src/conditions:{host_windows,remote} have been removed. Toolchains are usually a better fit as they don't depend on the configuration of the host machine running Bazel and/or fixed execution modes.
  • Bazel now fails over immediately to mirror URLs if a TLS handshake error occurs.
  • Labels in the main repo will now have a repr form that reliably evaluates back to themselves (that is, repr(Label("@@//:foo")) == "Label(\"@@//:foo\")").
  • The compatibility_level and max_compatibility_level attributes of module in MODULE.bazel are now no-ops. Module maintainers should stop specifying those attributes and provide clear build time error messages and actionable migration paths when making major breaking changes.
  • [Incompatible] The environment variable LC_CTYPE now defaults to C.UTF-8 for actions that set use_default_shell_env = True, which results in a Unicode-aware locale on essentially all non-EOL Linux distributions, with MSYS2 as well as macOS 15.4 and higher. Pass --action_env==LC_CTYPE (note the two =s) to explicitly unset this variable, which restores the previous behavior. On older versions of macOS, you can set --action_env=LC_CTYPE=UTF-8 instead.
  • The requires-worker-protocol execution requirement is now forwarded to remote execution services as a platform property (persistentWorkerProtocol) to support intermixing JSON and Proto remote persistent worker protocols across a build.
  • rctx.symlink now implicitly watches the target if it falls back to a copy.
  • Fix --lockfile_mode=error validation when rolling back changes to module extension facts
  • package_group now supports labels with external repositories in the packages attribute.
  • [Incompatible] --incompatible_check_testonly_for_output_files has been flipped. See #28875 for more details.
  • [Incompatible] string.splitlines() no longer incorrectly treats u+0085 (NEL) as a newline character
  • Bazel no longer verifies the digests of disk cache entries upon a cache hit. This honors the description but not the previous behavior of the --remote_verify_downloads flag, which in fact controlled digest verification for both remote and disk caches.
  • Bazel now has experimental support for --rewind_lost_inputs, which can rerun actions within a single build to recover from (remote or disk) cache evictions.
  • BEP events will now be written respecting parent-child ordering constraints.
  • Added --experimental_remote_cache_chunking flag to read and write large blobs to/from the remote cache in chunks. Requires server support.
  • Bzlmod now enforces that integrity strings for patches and overlay files in source.json are non-empty.
  • A .bazelrc file may now only import files recursively with a depth of up to 512 imports. If you see a "Maximum import depth exceeded parsing config file" error message, check that your workspace genuinely needs to be configured with .bazelrc files loading other rc files in a chain as long as 512 files. If you are configured in this way and cannot easily change your .bazelrc files to use shorter import chains, you may set the BAZEL_UNLIMITED_IMPORT_DEPTH environment variable to any value to disable this limit.
  • Module extension tags now have an implicit _sort_key field that can be compared to derive the order in which tags from different classes appear in the MODULE.bazel file.
  • The remote repo contents cache now supports all reproducible repo rules.
  • --disk_cache can now be set without an argument to enable the disk cache using a default location at <outputUserRoot>/cache/disk. Other boolean forms (--disk_cache=1 or --disk_cache=true to enable; --disk_cache=0, --disk_cache=false or --nodisk_cache to disable) are also accepted.
  • Adds --output:display_full_kind for query options to display the full kind for Starlark rules with the label_kind, location, and xml output formats.
  • Changes the debugPrint of ctx.download to include the state of the download. Adds an error key to the returned struct when success: false to explain why it's false.
  • The local and remote repo contents cache now include the host OS and CPU architecture in the cache key.
  • Fix launcher/launcher_maker for cross build, e.g. build windows binary on linux machine.
  • The flag --fdo_optimize now accepts repo labels as well as package labels.
  • [Incompatible] Add support for startup:linux, startup:macos, etc bazelrc options.
  • Adds -Djava.net.preferIPv6Addresses=system to startup JVM args which may impact certain IPv4-only environments. Override as necessary with --host_jvm_args.
  • [Incompatible] Add support for decompressing Brotli archives (.br, .tar.br)
  • bazelrc config declarations can now be empty
  • [Incompatible] Removes the deprecated repository rule new_git_repository. Users should use git_repository instead (they are the same)
  • [Incompatible] Remove /usr/local/bin from default PATH. Set --action_env and --host_action_env to /bin:/usr/bin:/usr/local/bin if needed.
  • Added SOCKS proxy support. Bazel now accepts socks://, socks4://, and socks5:// URLs in HTTPS_PROXY/HTTP_PROXY environment variables and related system properties.
  • None
  • Large numbers with 5+ digits in CLI output are now formatted with comma separators for improved readability (e.g., "12,345 targets configured" instead of "12345 targets configured")
  • Added the module_ctx.tag_sort_key(tag) method, which returns an opaque object for the given tag that can be compared to derive the order in which tags from different classes appear in the MODULE.bazel file.
  • Adds the strip_components attribute to extract/download_and_extract/http_archive to allow stripping of path components when extracting files.
  • [Incompatible] exec_properties now respects resources:cpu and resources:memory for local resource estimation.
  • Add add_prefix attribute to git_repository to allow cloning repositories into a given subdirectory prefix
  • {r,m}ctx.download* report the size of downloaded files Addition to the user-facing Build API
  • --tls_certificate=, --tls_client_certificate=, and --tls_client_key= can now be used to reset those flags to their unset state.
  • In output of query --output=build, string attributes containing newline characters are now enclosed in triple double quotes (""") for better readability.
  • CDC chunk uploads and downloads can now happen in parallel within a large blob.
  • Addition to the user-facing Build API
  • Enabled output path mapping (config stripping) support for ArchivedTreeArtifacts to improve action caching under --experimental_output_paths=strip.
  • module_extension(...) now accepts a facts_version integer parameter. Bumping it invalidates the facts persisted in MODULE.bazel.lock for that extension, allowing extension authors to make breaking changes to the facts schema without risking misinterpretation by older code paths.
  • Add an exclude param to rtx.watch_tree() to allow excluding glob patterns from watch.
  • Fixed an issue that caused Bazel to fail on a lost input even with build or action rewinding enabled.
  • BuildFinished events in BEP will consistently contain an "infrastructure-caused" detailed exit code when a single target contains both infrastructure-caused and user-caused exit codes in its failed actions.
  • The new refines_constraint_value attribute on constraint_setting can be used to indicate that any non-default value for that setting specified on a platform requires the refined value to also be specified.
  • Bazel's serialization system now has a new wire encoding that supports preserving how values are serialized across Bazel versions.
  • Fixed repo content caching for non-gRPC cache backends.
  • CCStarlarkInternal exposes hash functions currently used by rules_cc Java rules to starlark
  • The new --expand_param_files flag expands param files into their contents in --subcommands and --verbose_failures output.
  • Fixed a performance regression in Bazel 9 that causes RepoMappingManifest actions to consume a lot of CPU time.
  • Improved BES upload failure message with failed invocation's ID.
  • Any existing action relying on the legacy hardcoded list in Bazel code being populated will now need to opt-into output mapping by modifying their execution requirements.
  • Bazel no longer limits the size of gRPC messages received from the remote executor or cache.
  • The and_then method on transitions can be used to compose transitions. Both Starlark transitions and native transitions (e.g. config.exec()) are supported.
  • External repos are no longer refetched whenever they contribute inputs to an action using the hermetic Linux sandbox.
  • Enable TCP keepalive by default for gRPC connections with reasonable defaults
  • Remove CoptsFilter. rules_cc 0.2.19 no longer uses it..
  • The remote repo contents cache now correctly materializes chains of symlinks as action inputs, but no longer supports symlinks into the main repository.
  • Fixed Bazel being unable to run a Windows executable whose path is too long to shorten under MAX_PATH, e.g. when 8dot3 short names are disabled (microsoft/Windows-Containers#507).
  • Fixed spurious "No such file" errors with the remote repo contents cache when a repo contains a symlink to a .bzl file.
  • Source directories in external repositories are temporarily allowed to cross package boundaries. This will be disallowed in the future, gated by the new --incompatible_check_external_repo_source_dir_package_boundary flag.
  • Adds bazel dump --skyframe=keys to report only the keys available in SkyFrame. Always use with --skykey_filter to limit the number of keys reported.
  • Fixed a crash with --experimental_remote_repo_contents_cache when running without a remote or disk cache.
  • [Incompatible] Custom Starlark rules named test_suite are no longer treated as a test_suite
  • Fix --progress_in_terminal_title output under screen and emacs.
  • Modifying environment variables no longer causes spurious reloading of packages in external repositories.
  • Fixed a spurious remote-execution failure with --experimental_output_paths=strip where a lost input in a tree artifact shared between actions could not be recovered by action rewinding.
  • Windows launcher stubs now embed an asInvoker UAC manifest, preventing "The requested operation requires elevation. (error: 740)" for targets whose name matches the installer-detection heuristic.
  • Fixed a flaky crash when Java compilation actions encounter multiple lost .jdeps files.
  • The remote repo contents cache no longer caches or restores repos with cross-repo symlinks, thus avoiding a large surface area for bugs. The effort to reenable this support is tracked by #30160.
  • --worker_sandboxing can now be scoped per worker-key mnemonic with --worker_sandboxing=<mnemonic>=<boolean>.
  • If --incompatible_symbolic_macro_strict_attrs is enabled, invalid attribute values in symbolic macros fail the build (matching the behavior of rules).
  • [Incompatible] in min() and max(), the key callback is now prohibited from mutating the sequence being iterated over
  • Added a new instance_id field to the BuildMetrics BES event, in order to help diff between the current and previous builds on the running server.
  • --experimental_remote_scrubbing_config= now disables remote cache key scrubbing, allowing command-line overrides of scrubbing configs set in .bazelrc.
  • "$ bazel config x86-opt": you can now inspect configs based on output path prefixes, not just config checksum prefixes.
  • The JDK bundled with Bazel has been updated to 26.
  • Action rewinding (--rewind_lost_inputs) can now succeed even if the remote cache doesn't verify that AC entries aren't stale.
  • [Incompatible] --test_tmpdir= now resets a value from a bazelrc to the default execroot temp directory instead of creating _tmp in the workspace. Use --test_tmpdir=. to retain workspace-relative behavior.
  • Running bazel shutdown no longer results in stale lockfile data being written.
  • Starlark debug server now binds to the configured address (defaulting to 127.0.0.1) via --experimental_skylark_debug_server_address.
  • [Incompatible] Bind mounts specified via --sandbox_add_mount_pair (or -M/-m flags in linux-sandbox) are now correctly remounted read-only when using the hermetic sandbox (with --experimental_sandbox_hermetic). Build actions that write to these paths will now fail with a read-only filesystem error.
  • [Incompatible] --use_target_platform_for_tests is now a no-op. By default, tests are executed on an execution platform that has all constraints of the target platform, making this flag obsolete. To migrate, make sure that your target platform or a platform with at least the same constraints is registered as an execution platform.
  • Fixes an error when using strip_components with archives containing symbolic//hard links.
  • Fixed repository_ctx.download_and_extract failing with an "Expected a file with a ... suffix" error when --downloader_config blocks all URLs and the archive is served from the repository cache.
  • --incompatible_modify_execution_info_additive is now deprecated and a no-op. When --modify_execution_info is specified multiple times, all values are always applied in order.
  • Added --experimental_remote_cache_chunking_function to select the content-defined chunking function used by --experimental_remote_cache_chunking. Supported values are auto (the default, which negotiates the function from the server capabilities, preferring FastCDC 2020), fast_cdc_2020 and rep_max_cdc.
  • --experimental_split_coverage_processing and --experimental_fetch_all_coverage_outputs default to true.
  • Retry 408 and 429 status codes with HTTP remote caching.
  • Fixed a bug that could cause ignore_directories() to not ignore directories.
  • [Incompatible] The Windows shell launcher now again prepends rather than appends the directory containing the shell binary, restoring the behavior of Bazel 8.x. This is technically an incompatible change, but deemed necessary due to the unexpected and widespread implications of the change in 9.0.0. See #29637 for more context.
  • The BAZEL_LLVM_PROFILE_FILE environment variable can now be used to customize the LLVM profile filename pattern for C++ coverage collection (e.g. --test_env=BAZEL_LLVM_PROFILE_FILE=%p.profraw). Defaults to %h-%p-%m.profraw when unset.
  • Honor XDG_CACHE_HOME on Windows in Bazel.
  • Fix sh_binary on Windows to pass user arguments as positional parameters to bash instead of concatenating them.
  • Fixes a possible crash on Windows Arm64 related to JNI strings
  • Added urlencode($1) support to --downloader_config rewrite rules.
  • Fix Could not chdir in tw.exe for long runfiles paths on Windows.
  • --server_javabase and nojdk builds of Bazel can now use JREs in addition to JDKs.
  • With the new --experimental_keep_change_prunable_nodes_during_gc flag, Skyframe will keep computed nodes that aren't requested by the current evaluation but whose dependencies would be verified clean after change pruning.
  • Test targets can now be built for a target platform that no execution platform is compatible with, e.g. to cross-compile them. Running such a test fails with an error at execution time instead of failing analysis.
  • [Incompatible] --rewind_lost_inputs is now enabled by default. Builds with BwoB automatically recover from remote cache eviction by rewinding actions that generated lost inputs.
  • Cycles between MODULE.bazel files connected via include() are now reported as an error instead of hanging the build.
  • Fixed a crash while evaluating MODULE.bazel files when Skyframe dropped its temporary state in response to memory pressure.
  • Fixed a build failure with --execution_log_compact_file when a C++ action template has no inputs.
  • Files uploaded to the disk cache are now copied with a copy-on-write clone where the filesystem supports it, so a cache entry can share its blocks with the output it was uploaded from.
  • Module extensions are now correctly rerun when the root module changes the dev_dependency value of a use_extension call, which is visible to extensions as module_ctx.root_module_has_non_dev_dependency.
  • The C++ include scanner now properly resolves headers that are generated at build time and included as part of the toolchain.
  • Starlark fail() calls now format error messages with Error: instead of Error in fail: . Resolves #21523.
  • Aquery now supports the config(expr, word) function.
  • Fixed unnecessary remote-cache hits in incremental BwoB builds after a previous invocation used a broader remote output download policy.
  • Fix an issue on Windows where empty environment variables (e.g. --action_env=VAR=) caused test execution failures in the test wrapper.
  • --experimental_override_platform_cpu_name renamed to --override_platform_cpu_name
  • The macOS sandbox now allows actions to bind sockets when network access is blocked, matching the behavior of the Linux sandbox. Note that macOS cannot restrict inbound connections by peer, so an action that listens on a non-loopback address is reachable from other hosts on the network; outbound traffic remains restricted to loopback.
  • Clean up unused stashed sandbox directories when shutting down the Bazel server.
  • Downloader rewrites to endpoints that refuse connections no longer repeat the connector's full retry sequence.
  • Fix grep: invalid option -- P errors on macOS when running release and documentation scripts.
  • Remote execution, remote caching, and auth flags can now be reset to their default unset state on the command line by passing an empty value (e.g., --remote_cache=, --remote_executor=, --google_credentials=).
  • Invalidate cached action execution results when remote cache/executor endpoints or --remote_instance_name change between invocations.
  • Fix issue where bazel test --nobuild failed with TEST_WITH_NOANALYZE instead of succeeding after analysis.
  • With Build without the Bytes, a requested top-level output that was deleted locally is now reliably redownloaded in the next build that requests it, even if other invocations ran in between.
  • Avoid redundant remote CAS uploads when using combined disk and remote caching with a cold disk cache.
  • Fix incremental remote builds failing to create output directories beneath stale dangling symlinks.
  • credential-helper: treat null values in response as unset.
  • Fixed a rare crash with NullPointerException in ActionInputMap.getIndex when an action discovers additional inputs while executing.
  • Add repository_ctx.patch(directory)
  • Disk cache entries deleted by a concurrent garbage collection are now treated as cache misses and don't result in failures.
  • Fix an issue where Java compilation actions re-execute on every build due to an Action Cache digest mismatch when --experimental_output_paths=strip and in-memory .jdeps files are enabled.
  • Credential helper failures now abort HTTP downloads instead of continuing without authentication.
  • Support dict(label, string) aspect attributes in query --output=proto.
  • [Incompatible] --experimental_sibling_repository_layout is now a no-op.
  • Transitive rule and toolchain resolution errors are now formatted into a multi-line indented hierarchy. Fixes #15791
  • Fix NullPointerException and improve error messages when Starlark implicit output templates reference unset or unknown attributes.
  • DefaultInfo.executable exposes the executable of configured targets and directly constructed providers, including providers returned by ctx.super().
  • Skip implicit output generation when mandatory rule attributes are missing to prevent secondary error messages.
  • Fix crash when evaluating target patterns or paths containing invalid characters or wildcards on Windows.
  • Facts of reproducible module extensions are now restored to the expected state after external modifications by every Bazel command that updates the lockfile.
  • Fix for regression in #29284 that caused select builtin actions to incorrectly inherit resource set overrides.
  • The --disk_cache_gc_idle_delay, --disk_cache_gc_max_size and --disk_cache_gc_max_age flags are no longer experimental.
  • Add --target_query / --target_query_file flags for building the result of a bazel query in a single command
  • The --install_base_gc_max_age flag is no longer experimental.
  • Ensure test processes receive the full --local_termination_grace_seconds period to handle SIGTERM and perform cleanup on timeout.
  • Windows parameter files now preserve empty arguments and correctly escape backslashes before quotes and at the end of quoted arguments. (#31204)
  • The self-extracting installer now correctly creates installation directories when custom paths contain spaces. (#31226)
  • Fix an O(N^2 log N) analysis phase performance regression when parsing large numbers of Starlark flags.
  • The --action_cache_gc_idle_delay, --action_cache_gc_threshold and --action_cache_gc_max_age flags are no longer experimental.
  • read_user_netrc in @bazel_tools//tools/build_defs/repo:utils.bzl now honors the NETRC environment variable, as the http_* repository rules already do. (#31378)
  • Fix bazel run --run_under=... --script_path=... on Windows to correctly escape batch script invocations and forward arguments.
  • bazel dump --skyframe=changed lists the Skyframe values that the last command created or changed, together with the changed dependencies that caused each change.

Local-Exec:

  • Sandboxed actions no longer fail with "File exists" when an input is nested under a source directory input. (#31206)

OSS:

  • Allows Batchfiles ran by CreateProcessW in tw.exe to work under longpathAware. (#30490)
  • Add implicit (MODULE.tools) dep on rules_android v0.8.0. (#31425)

Performance:

  • ctx.actions.run now supports redirecting stdout to a file via the new stdout parameter. (#30408)
  • bazel query --output=streamed_proto can opt into parallel serialization with --experimental_parallel_streamed_proto_output. (#30959)

Remote-Exec:

  • Fixed excessive native thread accumulation when running commands with remote caching or execution enabled in rapid succession. (#31191)

Rules-CPP:

  • Bazel on Windows no longer fails with "Command line too long" when running in batch mode with a large environment. (#31380)
  • The embedded JDK has been updated to JDK 27. (#31491)

Rules-Server:

  • Fixed a Bazel server keeping its command lock after its client was killed, which stalled later invocations. (#30960)

Acknowledgements:

This release contains contributions from many people at Google, as well as Aaron Sky, adilburaksen, Adin Cebic, Akshay Ubale, Alan Mond, Albert Lloveras, Alex Eagle, Alex Novak, Alex O'Brien, Alexander Scott, Alexey Tereshenkov, Amit Keren, Andrew Hewitson, Angus Lees, Anthony Pratti, Anton Karpov, Armando Montanez, armandomontanez, Ashutosh0x, ashutosh0x, Benedict Chacko, Benjamin Peterson, Blaine Freestone, Boleyn Su, Brad Smith, Bryce Lampe, c2qd, Chedrian07, Chi Wang, Chris Heisterkamp, Chris Jakins, Chris McDonald, cjk, colbs255, Damian Banki, Dan Halperin, Dan Katz, Daniel Burrell, Daniel Pfeifer, David Jyo, David Ostrovsky, David Zbarsky, Denbeigh Stevens, dependabot[bot], Desel72, Douglas Thor, Dylan Bettermann, Dylan Joss, Ed Schouten, Fabian Brandstetter, Fabian Meumertzheim, Fredrik Medley, gampu, Garrett Holmstrom, gaurav0107, George Gensure, giria660, google-labs-jules[bot], Greg, Grzegorz Lukasik, Guillaume Maudoux, gztong666, H5-O5, Han-Wen Nienhuys, Henner Zeller, Herdiyan Adam Putra, honnix, hvadehra, ifutivic, ijuren8, iMostfa, Jacob Nowjack, jade, Jake Newfield, James Judd, Jasmine Tang, Jason Bedard, Javier Maestro, jcater, jdymitarai, Jean-Baptiste Bronisz, Jean-Yves LENHOF, Jeff Klukas, Jeremy Volkman, Jesse Schalken, jjj-n, John Cater, John Millikin, Jonathan Perry, JonathanPerry651, Jordan Mele, Joseph Gette, Justin, Justin Kaeser, Justin Won, justinswe, Kapunahele Wong, Kaylie, Keith Smiley, Kip Hamiltons, Kobi Hikri, Ladd Van Tol, lg-stripe, Lucas Pottersky, Malte Poll, Manoj Mahapatra, Markus Hofbauer, Matthew Steffen, Michael Mitchell, Mike Lundy, Ming Zhao, Moran Omer, Morax, Nikki Vijaybhaskar, Paul Tarjan, peakschris, Pieter Agten, PikachuHy, Rahul Butani, Raiyyan Ur Rahman Mohammed, Rajkaran Yadav, Rgis Desgroppes, Richard Lavoie, Régis Desgroppes, Salma Samy, Samuel Bronson, Sarad, Sarad Pant, Showta Ishizaki, Shrey Shah, Son Luong Ngoc, Stefan Penner, Steffeeen, Steve Barrau, Taeyang Jin (Theo), Tamir Duberstein, teaugene, Ted, Ted Kaplan, Timothy Gu, Tyler Breisacher, Tyler French, Ulrik Falklof, vadim, Vladimir Sitnikov, wade-arista, Will Stranton, willxiao-amzn, XananasX, Xdng Yng, Xudong Yang, Yagiz Nizipli, Yannic Bonenberger, Yonatan Goldschmidt, Yossi Eliaz, zhaixiaojuan, zozo123.

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 3D5919B448457EE0.

Don't miss a new bazel release

NewReleases is sending notifications on new releases.