Bazel 4.0 及更高版本支持两种发布轨道:长期支持 (LTS) 版本和滚动版本。本页介绍了 Bazel 中的版本控制、版本类型以及这些版本对 Bazel 用户和贡献者的优势。
了解 Bazel 的版本控制
Bazel 使用 major.minor.patch 语义版本控制方案。
- 主要版本包含不向后兼容先前版本的功能。
- 次要版本包含新的向后兼容功能。
- 补丁版本包含次要更改和 bug 修复。
以版本 3.5.1 为例,每种类型的新版本将生成以下版本号:
- 主要:4.0
- 次要:3.6
- 补丁:3.5.2
Bazel 的发布周期
Bazel 会持续发布滚动版本。每个主要版本都是一个 LTS 版本。您可以选择遵循发布频率 - 从一个 LTS 版本更新到下一个版本,或者随每个次要版本更新。
此图显示了滚动版本和 LTS 版本,以及每个版本的预期支持。
图 1. 滚动版本和 LTS 版本。
版本分支
每个主要版本在发布后都会成为单独的开发分支。您可以收到对该分支严重 bug 的修复,而无需直接更新到 Bazel 版本。主要版本分支中的其他功能将成为次要版本,而分支的最高版本则是受支持的版本。
每个 Bazel 版本都配有一系列可以搭配使用的推荐规则版本,并且每个分支都具有严格的向后兼容性。
LTS 版本
LTS 版本是主要版本(例如 4.0),会在发布后获得 3 年支持。 主要版本大约每 9 个月发布一次。
持续开发版本分支会产生次要版本。
您可以选择将项目固定到某个主要版本,然后根据自己的节奏更新到较新版本。这样,您就有时间预览即将发生的更改并提前进行调整。
滚动版本
滚动版本会定期从 Bazel 的主分支删除。此发布节奏涉及持续交付下一个主要 Bazel 版本的预览版,该版本与 Google 的内部 Blaze 版本同步。
请注意,新的滚动版本可能包含与先前版本不兼容的重大更改。
滚动版本在 Bazel CI 和 Google 的内部测试套件上使用 Bazel 的测试套件进行测试。不兼容的标志可用于减轻迁移到新功能的负担,但默认行为可能会随任何滚动版本而发生变化。(您还可以使用滚动版本来预览下一个 LTS 版本。例如,5.0.0-pre.20210604.6
基于 2021 年 6 月 4 日的候选版本,代表 5.0 LTS 版本的里程碑。)
您可以从 GitHub 下载最新的滚动版本。或者,您可以设置 Bazelisk v1.9.0(或更高版本),以使用特定版本名称或使用最新滚动版本的“滚动”标识符。如需了解详情,请参阅 Bazelisk 文档。
更新版本
- 如需详细了解如何更新 Bazel 版本,请参阅更新 Bazel。
- 如需详细了解如何为新的 Bazel 版本贡献更新,请参阅为 Bazel 贡献代码。