Skip to content

Commit

Permalink
Update release-process.md (#718)
Browse files Browse the repository at this point in the history
* Update release-process.md

* Adjusting the format

* fix format
  • Loading branch information
lutzvahl authored Dec 7, 2023
1 parent f9c8fe0 commit 8783b53
Showing 1 changed file with 19 additions and 16 deletions.
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)

0 comments on commit 8783b53

Please sign in to comment.