版本版本控制

Bazel 4.0 及更高版本支持两种发布轨道:长期支持 (LTS) 发布版本和滚动发布版本。本页介绍了 Bazel 中的版本控制、 发布版本类型,以及这些发布版本对 Bazel 用户和 贡献者的好处。

了解 Bazel 上的版本控制

Bazel 使用 major.minor.patch 语义版本控制方案。

  • 一个主要版本包含与 之前版本不向后兼容的功能。
  • A 次要版本包含新的向后兼容功能。
  • 一个补丁版本包含细微更改和 bug 修复。

以版本 3.5.1 为例,每种类型的新发布版本都会生成 以下版本号:

  • 主要版本:4.0
  • 次要版本:3.6
  • 补丁版本:3.5.2

Bazel 的发布周期

Bazel 会持续发布滚动发布版本。每个主要版本都是 LTS 版本。您可以选择遵循任一发布节奏:从一个 LTS 版本更新到下一个 LTS 版本,或者随着每个次要版本发布而更新。

下图显示了滚动发布版本和 LTS 发布版本,以及对 每个版本的预期支持。

路线图

图 1。滚动发布版本和 LTS 发布版本。

发布分支

每个主要版本在发布时都会成为一个单独的开发分支。您可以在 该分支上接收关键 bug 的修复,而无需更新到 Bazel 的最新发布版本。主要版本分支上的其他功能会成为 次要版本,并且分支上的最高版本是受支持的版本。

每个 Bazel 发布版本都与一系列推荐的规则版本配对,这些规则版本可以协同工作 ,并且每个分支内都有严格的向后兼容性。

LTS 发布版本

LTS 发布版本是指在发布后 3 年内受支持的主要版本(例如 4.0)。 主要版本大约每九个月发布一次。

在发布分支上进行持续开发会产生次要版本。

您可以选择将项目固定到主要版本,并在自己的时间更新到较新 版本。这样,您就有时间预览即将发生的更改并 提前适应这些更改。

滚动发布版本

滚动发布版本会定期从 Bazel 的主分支中切出。 此发布节奏涉及持续交付下一个主要 Bazel 版本的预览版,这些预览版与 Google 的内部 Blaze 发布版本同步。

请注意,新的滚动发布版本可能包含与之前版本 不兼容的重大更改。

滚动发布版本会在 Bazel CI 上的 Bazel 测试套件和 Google 的内部测试套件上进行测试。不兼容的标志可用于减轻迁移到新功能的负担,但默认行为可能会随着任何滚动发布版本而更改。(您还可以使用滚动发布版本来 预览下一个 LTS 版本。例如,5.0.0-pre.20210604.6 基于 2021-06-04 的 候选切出,代表着向 5.0 LTS 版本迈进的一个里程碑。)

您可以从 GitHub下载最新的滚动发布版本。 或者,您可以设置 Bazelisk v1.9.0 (或更高版本)以使用特定版本名称或 “rolling”标识符,该标识符使用最新的滚动发布版本。如需了解详情,请参阅 Bazelisk 文档

更新版本

  • 如需详细了解如何更新 Bazel 版本,请参阅 更新 Bazel
  • 如需详细了解如何为新的 Bazel 发布版本贡献更新,请参阅 为 Bazel 做贡献