Skip to content

Commit

Permalink
chore: update documentation on rolling chromium (#6399)
Browse files Browse the repository at this point in the history
Co-authored-by: Mathias Bynens <mathias@qiwi.be>
  • Loading branch information
johanbay and mathiasbynens committed Sep 8, 2020
1 parent b6bbfd0 commit 2470d1e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
12 changes: 12 additions & 0 deletions CONTRIBUTING.md
Expand Up @@ -269,6 +269,18 @@ See [Debugging Tips](README.md#debugging-tips) in the readme.

# For Project Maintainers

## Rolling new Chromium version

The following steps are needed to update the Chromium version.

1. Find a suitable Chromium revision
Not all revisions have builds for all platforms, so we need to find one that does.
To do so, run `utils/check_availability.js -rb` to find the latest suitable beta Chromium revision (see `utils/check_availability.js -help` for more options).
1. Update `src/revisions.ts` with the found revision number.
1. Run `npm run ensure-correct-devtools-protocol-revision`.
If it fails, update `package.json` with the expected `devtools-protocol` version.
1. Run `npm run tsc` and `npm install` and ensure that all tests pass. If a test fails, bisect the upstream cause of the failure, and either update the test expectations accordingly (if it was an intended change) or work around the changes in Puppeteer (if it’s not desirable to change Puppeteer’s observable behavior).

## Releasing to npm

Releasing to npm consists of the following phases:
Expand Down
32 changes: 20 additions & 12 deletions utils/check_availability.js
Expand Up @@ -60,7 +60,9 @@ Usage: node check_availability.js [<options>] [<browser version(s)>]
options
-f full mode checks availability of all the platforms, default mode
-r roll mode checks for the most recent Chromium roll candidate
-r roll mode checks for the most recent stable Chromium roll candidate
-rb roll mode checks for the most recent beta Chromium roll candidate
-rd roll mode checks for the most recent dev Chromium roll candidate
-h show this help
browser version(s)
Expand All @@ -71,8 +73,9 @@ Examples
To check Chromium availability of a certain revision
node check_availability.js [revision]
To find a Chromium roll candidate for current Stable Linux version
To find a Chromium roll candidate for current stable Linux version
node check_availability.js -r
use -rb for beta and -rd for dev versions.
To check Chromium availability from the latest revision in a descending order
node check_availability.js
Expand All @@ -97,7 +100,13 @@ function main() {
case 'f':
break;
case 'r':
checkRollCandidate();
checkRollCandidate('stable');
return;
case 'rb':
checkRollCandidate('beta');
return;
case 'rd':
checkRollCandidate('dev');
return;
default:
console.log(helpMessage);
Expand Down Expand Up @@ -148,19 +157,18 @@ async function checkOmahaProxyAvailability() {
stopWhenAllAvailable: false,
});
}

async function checkRollCandidate() {
async function checkRollCandidate(channel) {
const omahaResponse = await fetch(
'https://omahaproxy.appspot.com/all.json?channel=stable&os=linux'
`https://omahaproxy.appspot.com/all.json?channel=${channel}&os=linux`
);
const stableLinuxInfo = JSON.parse(omahaResponse)[0];
if (!stableLinuxInfo) {
console.error('no stable linux information available from omahaproxy');
const linuxInfo = JSON.parse(omahaResponse)[0];
if (!linuxInfo) {
console.error(`no ${channel} linux information available from omahaproxy`);
return;
}

const stableLinuxRevision = parseInt(
stableLinuxInfo.versions[0].branch_base_position,
const linuxRevision = parseInt(
linuxInfo.versions[0].branch_base_position,
10
);
const currentRevision = parseInt(
Expand All @@ -169,7 +177,7 @@ async function checkRollCandidate() {
);

checkRangeAvailability({
fromRevision: stableLinuxRevision,
fromRevision: linuxRevision,
toRevision: currentRevision,
stopWhenAllAvailable: true,
});
Expand Down

0 comments on commit 2470d1e

Please sign in to comment.