# Bazel 8.8.0rc2 - Product: Bazel (https://whatsnew.fyi/product/bazel) - Vendor: Google - Date: 2026-08-18 - Version: 8.8.0rc2 - Original notes: https://github.com/bazelbuild/bazel/releases/tag/8.8.0rc2 - Permalink: https://whatsnew.fyi/product/bazel/releases/8.8.0rc2 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — The and_then method on transitions can be used to compose transitions, supporting both Starlark transitions and native transitions like config.exec() - **added** — module_extension(...) now accepts a facts_version integer parameter to invalidate persisted facts in MODULE.bazel.lock - **added** — The --experimental_remote_repo_contents_cache startup option allows caching results of reproducible repository rules in HTTP or gRPC remote cache - **added** — Enable TCP keepalive by default for gRPC connections with reasonable defaults - **fixed** — Fixed repo env handling and consolidated environment variable handling for repositories - **fixed** — Action rewinding can now succeed even if the remote cache does not verify that AC entries are not stale - **fixed** — Fixed an error when using strip_components with archives containing symbolic or hard links - **fixed** — Fixed spurious No such file errors with the remote repo contents cache when a repo contains a symlink to a .bzl file - **fixed** — Fixed a crash with --experimental_remote_repo_contents_cache when running without a remote or disk cache - **fixed** — Running bazel shutdown no longer results in stale lockfile data being written - **fixed** — Fixed repo contents cache FileValue staleness issues - **fixed** — Fixed remote repo content caching for non-gRPC backends - **fixed** — Fixed an issue that caused Bazel to fail on a lost input even with build or action rewinding enabled - **fixed** — Fixed Bazel being unable to run a Windows executable whose path is too long to shorten under MAX_PATH - **changed** — Make naming scheme for repo contents cache entries more reliable - **changed** — Prefetch .bzl files in the remote repo contents cache - **changed** — Support bounded parallel chunk transfers - **changed** — Bazel now parses and ignores the Starlark type annotation syntax introduced by newer Bazel versions, gated by --experimental_starlark_type_syntax and enabled by default > [!NOTE] > If you are looking for [rolling releases](https://bazel.build/release#rolling-releases), please visit [this page](https://bazel.build/release/rolling). #### Release 8.8.0rc2 (2026-08-18) Bazel 8.8.0 is a minor LTS release. It is fully backward compatible with Bazel 8.0 and contains selected changes by the Bazel community and Google engineers. ##### Configurability * The `and_then` method on `transition`s can be used to compose transitions. Both Starlark transitions and native transitions (e.g. `config.exec()`) are supported. ([#30330](https://github.com/bazelbuild/bazel/pull/30330)) ##### Core * Fix and consolidate repo env handling ([#29069](https://github.com/bazelbuild/bazel/pull/29069)) * Action rewinding (`--rewind_lost_inputs`) can now succeed even if the remote cache doesn't verify that AC entries aren't stale. ([#30398](https://github.com/bazelbuild/bazel/pull/30398)) ##### External Dependencies * Fixes an error when using strip_components with archives containing symbolic//hard links. ([#30463](https://github.com/bazelbuild/bazel/pull/30463)) * Make naming scheme for repo contents cache entries more reliable ([#29073](https://github.com/bazelbuild/bazel/pull/29073)) * `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. ([#29992](https://github.com/bazelbuild/bazel/pull/29992)) * Fixed spurious "No such file" errors with the remote repo contents cache when a repo contains a symlink to a `.bzl` file. ([#30101](https://github.com/bazelbuild/bazel/pull/30101)) * Fixed a crash with `--experimental_remote_repo_contents_cache` when running without a remote or disk cache. ([#30076](https://github.com/bazelbuild/bazel/pull/30076)) * Running `bazel shutdown` no longer results in stale lockfile data being written. ([#30397](https://github.com/bazelbuild/bazel/pull/30397)) ##### OSS * Fixed Bazel being unable to run a Windows executable whose path is too long to shorten under `MAX_PATH`. ([#30021](https://github.com/bazelbuild/bazel/pull/30021)) ##### Remote Execution * The results of reproducible repository rules without dependencies added at runtime (e.g., via `repository_ctx.watch` or `.getenv`) can now be cached in a regular HTTP or gRPC remote cache if the new `--experimental_remote_repo_contents_cache` startup option is provided. ([#29075](https://github.com/bazelbuild/bazel/pull/29075)) * Prefetch .bzl files in the remote repo contents cache. ([#29082](https://github.com/bazelbuild/bazel/pull/29082)) * Fix repo contents cache `FileValue` staleness ([#29084](https://github.com/bazelbuild/bazel/pull/29084)) * Fix remote repo content caching for non-gRPC backends ([#30029](https://github.com/bazelbuild/bazel/pull/30029)) * Support bounded parallel chunk transfers ([#29873](https://github.com/bazelbuild/bazel/pull/29873)) * Enable TCP keepalive by default for gRPC connections with reasonable defaults ([#30157](https://github.com/bazelbuild/bazel/pull/30157)) * Fixed an issue that caused Bazel to fail on a lost input even with build or action rewinding enabled. ([#29928](https://github.com/bazelbuild/bazel/pull/29928)) * Fixed spurious "No such file" errors with the remote repo contents cache when a repo contains a symlink to a `.bzl` file. ([#30101](https://github.com/bazelbuild/bazel/pull/30101)) ##### Starlark / Build Language * Bazel now parses and ignores the Starlark type annotation syntax introduced by newer Bazel versions (gated by `--experimental_starlark_type_syntax`, enabled by default). ([#30373](https://github.com/bazelbuild/bazel/pull/30373)) ##### Acknowledgments This release contains contributions from many people at Google, as well as Armando Montanez, Ashutosh Kumar S _[Truncated at 4000 characters — full notes: https://github.com/bazelbuild/bazel/releases/tag/8.8.0rc2]_