Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update release-process.md #718

Merged
merged 3 commits into from
Dec 7, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions src/docs/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,29 @@ description: 'This document explains the V8 release process.'
---
The V8 release process is tightly connected to [Chrome’s](https://www.chromium.org/getting-involved/dev-channel). The V8 team is using all four Chrome release channels to push new versions to the users.

If you want to look up what V8 version is in a Chrome release you can check [OmahaProxy](https://omahaproxy.appspot.com/). For each Chrome release a separate branch is created in the V8 repository to make the trace-back easier e.g. for [Chrome 94.0.4606.61](https://chromium.googlesource.com/v8/v8.git/+/chromium/4606).
If you want to look up what V8 version is in a Chrome release you can check [Chromiumdash](https://chromiumdash.appspot.com/releases). For each Chrome release a separate branch is created in the V8 repository to make the trace-back easier e.g. for [Chrome M121](https://chromium.googlesource.com/v8/v8/+log/refs/branch-heads/12.1).

## Canary releases

Every day a new Canary build is pushed to the users via [Chrome’s Canary channel](https://www.google.com/chrome/browser/canary.html?platform=win64). Normally the deliverable is the latest, stable enough version from [main](https://chromium.googlesource.com/v8/v8.git/+/refs/heads/main).

Branches for a Canary normally look like this:

```
remotes/origin/9.4.146
```

## Dev releases

Every week a new Dev build is pushed to the users via [Chrome’s Dev channel](https://www.google.com/chrome/browser/desktop/index.html?extra=devchannel&platform=win64). Normally the deliverable includes the latest stable enough V8 version on the Canary channel.

Branches for a Dev normally look like this:

```
remotes/origin/9.4.146
```

## Beta releases

Roughly every 4 weeks a new major branch is created e.g. [for Chrome 94](https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/9.4). This is happening in sync with the creation of [Chrome’s Beta channel](https://www.google.com/chrome/browser/beta.html?platform=win64). The Chrome Beta is pinned to the head of V8’s branch. After approx. 4 weeks the branch is promoted to Stable.
Roughly every 2 weeks a new major branch is created e.g. [for Chrome 94](https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/9.4). This is happening in sync with the creation of [Chrome’s Beta channel](https://www.google.com/chrome/browser/beta.html?platform=win64). The Chrome Beta is pinned to the head of V8’s branch. After approx. 2 weeks the branch is promoted to Stable.

Changes are only cherry-picked onto the branch in order to stabilize the version.

Branches for a Beta normally look like this

```
remotes/branch-heads/9.4
refs/branch-heads/12.1
```

They are based on a Canary branch.
Expand All @@ -47,19 +38,31 @@ Roughly every 4 weeks a new major Stable release is done. No special branch is c
Branches for a Stable release normally look like this:

```
remotes/branch-heads/9.4
refs/branch-heads/12.1
```

They are promoted (reused) Beta branches.

## API

Chromiumdash is also providing an API to collect the same information:

```
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)
```

The following parameter are helpful:
mstone=121
channel=Stable,Canary,Beta,Dev
platform=Mac,Windows,Lacros,Linux,Android,Webview,etc.

## Which version should I embed in my application?

The tip of the same branch that Chrome’s Stable channel uses.

We often backmerge important bug fixes to a stable branch, so if you care about stability and security and correctness, you should include those updates too — that’s why we recommend “the tip of the branch”, as opposed to an exact version.

As soon as a new branch is promoted to Stable, we stop maintaining the previous stable branch. This happens every six weeks, so you should be prepared to update at least this often.

Example: If the current stable Chrome release is [94.0.4606.61](https://omahaproxy.appspot.com), with V8 v9.4.146.17. So you should embed [branch-heads/9.4](https://chromium.googlesource.com/v8/v8.git/+/branch-heads/9.4). And you should update to branch-heads/9.5 when Chrome 95 is released on the Stable channel.
As soon as a new branch is promoted to Stable, we stop maintaining the previous stable branch. This happens every four weeks, so you should be prepared to update at least this often.

**Related:** [Which V8 version should I use?](/docs/version-numbers#which-v8-version-should-i-use%3F)