发布流程

V8 的发布流程与 Chrome 的发布流程紧密相连。V8 团队使用 Chrome 的所有四个发布渠道将新版本推送到用户手中。

如果您想查看 Chrome 版本中包含的 V8 版本,您可以查看 Chromiumdash。对于每个 Chrome 版本,V8 仓库中都会创建一个单独的分支,以便更轻松地进行回溯,例如 Chrome M121

Canary 版本 #

每天都会通过 Chrome 的 Canary 渠道 向用户推送新的 Canary 版本。通常情况下,交付的是来自 main 分支的最新稳定版本。

Canary 版本的分支通常如下所示

Dev 版本 #

每周都会通过 Chrome 的 Dev 渠道 向用户推送新的 Dev 版本。通常情况下,交付的版本包含 Canary 渠道上最新的稳定 V8 版本。

Beta 版本 #

大约每两周就会创建一个新的主要分支,例如 Chrome 94。这与 Chrome 的 Beta 渠道 的创建同步进行。Chrome Beta 版本固定在 V8 分支的头部。大约两周后,该分支会被提升到 Stable 版本。

更改只会 cherry-pick 到分支上,以稳定版本。

Beta 版本的分支通常如下所示

refs/branch-heads/12.1

它们基于 Canary 分支。

Stable 版本 #

大约每四周就会发布一个新的主要 Stable 版本。不会创建特殊的分支,因为最新的 Beta 分支会被直接提升到 Stable 版本。该版本会通过 Chrome 的 Stable 渠道 推送到用户手中。

Stable 版本的分支通常如下所示

refs/branch-heads/12.1

它们是提升(重用)的 Beta 分支。

API #

Chromiumdash 还提供 API 来收集相同的信息

https://chromiumdash.appspot.com/fetch_milestones (to get the V8 branch name e.g. refs/branch-heads/12.1)
https://chromiumdash.appspot.com/fetch_releases (to get the the V8 branch git hash)

以下参数很有用
mstone=121
channel=Stable,Canary,Beta,Dev
platform=Mac,Windows,Lacros,Linux,Android,Webview,etc.

我应该在我的应用程序中嵌入哪个版本? #

与 Chrome 的 Stable 渠道使用的相同分支的顶端。

我们经常将重要的错误修复反向合并到稳定分支,因此如果您关心稳定性、安全性和正确性,您也应该包含这些更新——这就是我们推荐“分支的顶端”,而不是确切版本的原因。

一旦新分支被提升到 Stable 版本,我们就会停止维护之前的稳定分支。这种情况每四周发生一次,因此您应该做好至少每四周更新一次的准备。

相关: 我应该使用哪个 V8 版本?