blob: 09aecd2e11a0cda48a0d7927d57e0b3c5546e731 [file] [log] [blame] [view]
---
layout: documentation
title: Release Policy
category: getting-started
---
# Release Policy
Bazel maintains a
[Long Term Support (LTS)](versioning.html)
release model, where a major version is released every nine months and minor
versions are released monthly. This page covers the Bazel release policy,
including the release candidates, timelines, announcements, and testing.
Bazel releases can be found on
[GitHub](https://github.com/bazelbuild/bazel/releases).
## Release candidates
A release candidate for a new version of Bazel is usually created at the
beginning of every month. The work is tracked by a
[release bug on GitHub](https://github.com/bazelbuild/bazel/issues?q=is%3Aissue+is%3Aopen+label%3Arelease)
indicating a target release date, and is assigned to the current Release manager.
Release candidates should pass all Bazel unit tests, and show no unwanted
regression in the projects tested on [Buildkite](https://buildkite.com/bazel).
Release candidates are announced on
[bazel-discuss](https://groups.google.com/g/bazel-discuss).
Over the next days, the Bazel team monitors community bug reports for any
regressions in the candidates.
## Releasing
If no regressions are discovered, the candidate is officially released after
one week. However, regressions can delay the release of a release candidate. If
regressions are found, the Bazel team applies corresponding cherry-picks to the
release candidate to fix those regressions. If no further regressions are found
for two consecutive business days beginning after one week since the first
release candidate, the candidate is released.
New features are not cherry-picked into a release candidate after it is cut.
Moreover, if a new feature is buggy, the feature may be rolled back from a
release candidate. Only bugs that have the potential to highly impact or break
the release build are fixed in a release candidate after it is cut.
A release is only released on a day where the next day is a business day.
If a critical issue is found in the latest release, the Bazel team creates a
patch release by applying the fix to the release. Because this patch updates an
existing release instead of creating a new one, the patch release candidate can
be released after two business days.
## Testing
A nightly build of all projects running on
[ci.bazel.build](https://ci.bazel.build/) is run, using Bazel binaries built at
head, and release binaries. Projects going to be impacted by a breaking change
are notified.
When a release candidate is issued, other Google projects like
[TensorFlow](https://tensorflow.org) are tested on their complete test suite
using the release candidate binaries. If you have a critical project
using Bazel, we recommend that you establish an automated testing process that
tracks the current release candidate, and report any regressions.