site/en/release/index.md
Project: /_project.yaml Book: /_book.yaml
{% dynamic setvar source_file "site/en/release/index.md" %} {% include "_buttons.html" %}
As announced in the original blog post, Bazel 4.0 and higher versions provides support for two release tracks: rolling releases and long term support (LTS) releases. This page covers the latest information about Bazel's release model.
| LTS release | Support stage | Latest version | End of support |
|---|---|---|---|
| Bazel 9 | Rolling | Check rolling release page | N/A |
| Bazel 8 | Active | 8.4.2{: .external} | December 2027 |
| Bazel 7 | Maintenance | 7.7.0{: .external} | Dec 2026 |
| Bazel 6 | Maintenance | 6.5.0{: .external} | Dec 2025 |
| Bazel 5 | Deprecated | 5.4.1{: .external} | Jan 2025 |
| Bazel 4 | Deprecated | 4.2.4{: .external} | Jan 2024 |
All Bazel LTS releases can be found on the release page{: .external} on GitHub.
Note: Bazel version older than Bazel 5 are no longer supported, Bazel users are recommended to upgrade to the latest LTS release or use rolling releases if you want to keep up with the latest changes at HEAD.
Bazel uses a major.minor.patch Semantic Versioning{: .external} scheme.
Additionally, pre-release versions are indicated by appending a hyphen and a date suffix to the next major version number.
For example, a new release of each type would result in these version numbers:
For each major Bazel version, there are four support stages:
Bazel regularly publish releases for two release tracks.
For planned releases, please check our release issues{: .external} on Github.
For rolling releases, the process is straightforward: about every two weeks, a new release is created, aligning with the same baseline as the Google internal Blaze release. Due to the rapid release schedule, we don't backport any changes to rolling releases.
For LTS releases, the procedure and policies below are followed:
Determine a baseline commit for the release.
Create a release branch in the name of release-<version> from the baseline
commit.
Backport changes via PRs to the release branch.
@bazel-io flag" on relevant GitHub issues or PRs to mark them as potential
release blockers, the Bazel team triages them and decide whether to
back-port the commits.Backport changes using Cherry-Pick Request Issue for Bazel maintainers.
Bazel maintainers can request to cherry-pick specific commit(s) to a release branch. This process is initiated by creating a cherry-pick request on GitHub. Here's how to do it.
The cherry-pick bot will process the request and notify if the commit(s) are eligible for cherry-picking. If the commits are cherry-pickable, which means there's no merge conflict while cherry-picking the commit, then the bot will create a new pull request. When the pull request is approved by a member of the Bazel team, the commits are cherry-picked and merged to the release branch. For a visual example of a completed cherry-pick request, refer to this example{: .external} .
Identify release blockers and fix issues found on the release branch.
Create a new release candidate from the release branch when all known release blockers are resolved.
Push the release candidate as the official release if no further release blockers are found
If a user finds a regression in a new Bazel release, release candidate or even Bazel at HEAD, please file a bug on GitHub{: .external}. You can use Bazelisk to bisect the culprit commit and include this information in the bug report.
For example, if your build succeeds with Bazel 6.1.0 but fails with the second release candidate of 6.2.0, you can do bisect via
bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar
You can set BAZELISK_SHUTDOWN or BAZELISK_CLEAN environment variable to run
corresponding bazel commands to reset the build state if it's needed to
reproduce the issue. For more details, check out documentation about Bazelisk
[bisect feature] (https://github.com/bazelbuild/bazelisk#--bisect){: .external}.
Remember to upgrade Bazelisk to the latest version to use the bisect feature.
If you are a rule authors and want to maintain compatibility with different Bazel versions, please check out the Rule Compatibility page.