Skip to content

Commit 0e0949d

Browse files
authored
Make formatting in update tool consistent. (#31)
* Make formatting in update tool consistent. The formatting for the update tool is now consistent across runs through sorting and Bazel file formatting. Also includes an update to the browsers. * set spaces for JSON output to match prettier * add newline to generated JSON to match prettier * format JSON with prettier
1 parent c041a67 commit 0e0949d

8 files changed

Lines changed: 589 additions & 40 deletions

File tree

browsers/private/update-tool/generation.mts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,29 @@ export interface RepoInfo {
1010

1111
export type Versions = Record<string, Record<string, RepoInfo>>;
1212

13+
function compareVersions(a: string, b: string) {
14+
const aParts = a.split('.').map((num) => Number(num));
15+
const bParts = b.split('.').map((num) => Number(num));
16+
// Compare the parts until one of them is larger than the other.
17+
for (let i = 0; i < aParts.length; i++) {
18+
if (aParts[i] < (bParts[i] ?? 0)) {
19+
return -1;
20+
}
21+
if (aParts[i] > (bParts[i] ?? 0)) {
22+
return 1;
23+
}
24+
}
25+
return 0;
26+
}
27+
28+
export function sortVersions(versions: Versions): Versions {
29+
const sortedVersions: Versions = {};
30+
for (const key of Object.keys(versions).sort(compareVersions)) {
31+
sortedVersions[key] = versions[key];
32+
}
33+
return sortedVersions;
34+
}
35+
1336
export function generateRepoInfo(
1437
binaries: BrowserBinaryInfo[],
1538
): Record<string, RepoInfo> {

browsers/private/update-tool/index.mts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ import {downloadAndHashBinariesForBrowser} from './download.mjs';
1414
import {
1515
generateRepoInfo,
1616
generateVersionsBzlFile,
17+
sortVersions,
1718
Versions,
1819
} from './generation.mjs';
1920
import fs from 'node:fs/promises';
2021
import {getChromeMilestones, getFirefoxMilestones} from './versions.mjs';
22+
import {exec} from 'node:child_process';
2123

2224
main().catch((e) => {
2325
console.error(e);
@@ -107,12 +109,16 @@ async function downloadMilestonesAndWriteVersionsFiles({
107109
versions[version] = repoInfo;
108110
}
109111

112+
// Sort versions since old versions will keep getting added after newer ones
113+
// are already out.
114+
versions = sortVersions(versions);
115+
110116
const allVersions = [...Object.keys(versions)];
111117
const defaultVersion = allVersions[allVersions.length - 1];
112118

113119
// Write both the JSON and the `.bzl` file. They both contain the same
114120
// versions list. The `.bzl` file just has some additional syntax.
115-
await fs.writeFile(jsonFilePath, JSON.stringify(versions, null, 4));
121+
await fs.writeFile(jsonFilePath, JSON.stringify(versions, null, 2) + '\n');
116122
await fs.writeFile(
117123
bzlFilePath,
118124
generateVersionsBzlFile(
@@ -121,6 +127,26 @@ async function downloadMilestonesAndWriteVersionsFiles({
121127
versions,
122128
),
123129
);
130+
131+
// Format the resulting `.json` file. Prettier may apply some formatting that
132+
// isn't consistent with default stringification (e.g. line length).
133+
exec(`npx prettier --write ${jsonFilePath}`, (err, stdout, stderr) => {
134+
if (err) {
135+
console.log(stdout);
136+
console.log(stderr);
137+
console.warn(`Formatting of ${jsonFilePath} failed: ${err.message}`);
138+
}
139+
});
140+
141+
// Format the resulting `.bzl` file. JSON is valid here, but it's not
142+
// formatted quite right (e.g. no trailing comma).
143+
exec(`buildifier ${bzlFilePath}`, (err, stdout, stderr) => {
144+
if (err) {
145+
console.log(stdout);
146+
console.log(stderr);
147+
console.warn(`Formatting of ${bzlFilePath} failed: ${err.message}`);
148+
}
149+
});
124150
}
125151

126152
async function main() {

browsers/private/versions/chromedriver.bzl

Lines changed: 112 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
DO NOT EDIT. Generated by //browsers/private/update-tool:update-tool.
44
"""
55

6-
DEFAULT_VERSION = "143.0.7459.0"
6+
DEFAULT_VERSION = "143.0.7482.0"
77

88
VERSIONS = {
99
"128.0.6613.137": {
@@ -482,6 +482,74 @@ VERSIONS = {
482482
},
483483
},
484484
},
485+
"141.0.7390.65": {
486+
"linux": {
487+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/linux64/chromedriver-linux64.zip",
488+
"integrity": "eabcd234f516bb85ceeeb9368f694a3b7d3b3f2002d37f2a986f1a212bc9f696",
489+
"exclude_patterns": [],
490+
"named_files": {
491+
"CHROMEDRIVER": "chromedriver-linux64/chromedriver",
492+
},
493+
},
494+
"mac": {
495+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/mac-x64/chromedriver-mac-x64.zip",
496+
"integrity": "8776657e5718701f9f13740e04efbcff1cb08bcfccc7d459d88008775c05d9e6",
497+
"exclude_patterns": [],
498+
"named_files": {
499+
"CHROMEDRIVER": "chromedriver-mac-x64/chromedriver",
500+
},
501+
},
502+
"mac_arm": {
503+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/mac-arm64/chromedriver-mac-arm64.zip",
504+
"integrity": "08cfb5203050823091bfa6fa116d3d4934719a897c4dc3d9a01c96d26fddbaa4",
505+
"exclude_patterns": [],
506+
"named_files": {
507+
"CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver",
508+
},
509+
},
510+
"win64": {
511+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/win64/chromedriver-win64.zip",
512+
"integrity": "3f408a173d87d979a7ced93e5556dac4a1bff228d4f697dff130ad2d6856e175",
513+
"exclude_patterns": [],
514+
"named_files": {
515+
"CHROMEDRIVER": "chromedriver-win64/chromedriver.exe",
516+
},
517+
},
518+
},
519+
"141.0.7390.78": {
520+
"linux": {
521+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.78/linux64/chromedriver-linux64.zip",
522+
"integrity": "91766fb286e64a2af8bf3356c43f2c316f61c2ee0b7c8aab634df3f8437b5c48",
523+
"exclude_patterns": [],
524+
"named_files": {
525+
"CHROMEDRIVER": "chromedriver-linux64/chromedriver",
526+
},
527+
},
528+
"mac": {
529+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.78/mac-x64/chromedriver-mac-x64.zip",
530+
"integrity": "2ed6bb0d416aeb81eea785fcb8e6b94f5d721300052907968ec5b2383b75ff17",
531+
"exclude_patterns": [],
532+
"named_files": {
533+
"CHROMEDRIVER": "chromedriver-mac-x64/chromedriver",
534+
},
535+
},
536+
"mac_arm": {
537+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.78/mac-arm64/chromedriver-mac-arm64.zip",
538+
"integrity": "9cc390d9f9db3da35ffb16dea9a509a980ee63a61c267a4456b5cbd9373b04e3",
539+
"exclude_patterns": [],
540+
"named_files": {
541+
"CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver",
542+
},
543+
},
544+
"win64": {
545+
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.78/win64/chromedriver-win64.zip",
546+
"integrity": "fc01f94897391cfbc875293676a3da15ca455b7df6f7236296eb10bbe54423a8",
547+
"exclude_patterns": [],
548+
"named_files": {
549+
"CHROMEDRIVER": "chromedriver-win64/chromedriver.exe",
550+
},
551+
},
552+
},
485553
"142.0.7444.6": {
486554
"linux": {
487555
"url": "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chromedriver-linux64.zip",
@@ -516,34 +584,34 @@ VERSIONS = {
516584
},
517585
},
518586
},
519-
"141.0.7390.65": {
587+
"142.0.7444.34": {
520588
"linux": {
521-
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/linux64/chromedriver-linux64.zip",
522-
"integrity": "eabcd234f516bb85ceeeb9368f694a3b7d3b3f2002d37f2a986f1a212bc9f696",
589+
"url": "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.34/linux64/chromedriver-linux64.zip",
590+
"integrity": "33850b3337bc92c6621e013af03323e0d6ae1e450aa1ff6b5776d47dd4d9b600",
523591
"exclude_patterns": [],
524592
"named_files": {
525593
"CHROMEDRIVER": "chromedriver-linux64/chromedriver",
526594
},
527595
},
528596
"mac": {
529-
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/mac-x64/chromedriver-mac-x64.zip",
530-
"integrity": "8776657e5718701f9f13740e04efbcff1cb08bcfccc7d459d88008775c05d9e6",
597+
"url": "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.34/mac-x64/chromedriver-mac-x64.zip",
598+
"integrity": "840101066642b930b937ba5e8d7506d9a71bbb6a9a45b5a4c11c05d83aace12c",
531599
"exclude_patterns": [],
532600
"named_files": {
533601
"CHROMEDRIVER": "chromedriver-mac-x64/chromedriver",
534602
},
535603
},
536604
"mac_arm": {
537-
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/mac-arm64/chromedriver-mac-arm64.zip",
538-
"integrity": "08cfb5203050823091bfa6fa116d3d4934719a897c4dc3d9a01c96d26fddbaa4",
605+
"url": "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.34/mac-arm64/chromedriver-mac-arm64.zip",
606+
"integrity": "eb8c32d19b7cf56fbb8aa5e1f1cf57170787d3eda59b9d4b6c7b93f09428bd92",
539607
"exclude_patterns": [],
540608
"named_files": {
541609
"CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver",
542610
},
543611
},
544612
"win64": {
545-
"url": "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.65/win64/chromedriver-win64.zip",
546-
"integrity": "3f408a173d87d979a7ced93e5556dac4a1bff228d4f697dff130ad2d6856e175",
613+
"url": "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.34/win64/chromedriver-win64.zip",
614+
"integrity": "93daa4027ad50b85fbcaafbe28b1b25d7afe56cf99f2fd20ebee023ee8c14a5a",
547615
"exclude_patterns": [],
548616
"named_files": {
549617
"CHROMEDRIVER": "chromedriver-win64/chromedriver.exe",
@@ -584,4 +652,38 @@ VERSIONS = {
584652
},
585653
},
586654
},
655+
"143.0.7482.0": {
656+
"linux": {
657+
"url": "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/linux64/chromedriver-linux64.zip",
658+
"integrity": "ea41e7a217d878c00e9d66a0724ff54be7d02d08adb7f6458b7d8487b6fbcd84",
659+
"exclude_patterns": [],
660+
"named_files": {
661+
"CHROMEDRIVER": "chromedriver-linux64/chromedriver",
662+
},
663+
},
664+
"mac": {
665+
"url": "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-x64/chromedriver-mac-x64.zip",
666+
"integrity": "aede9b67301b930ff9c673df28429aa82ce05c105a4ccbef7e0cd30a97ae429d",
667+
"exclude_patterns": [],
668+
"named_files": {
669+
"CHROMEDRIVER": "chromedriver-mac-x64/chromedriver",
670+
},
671+
},
672+
"mac_arm": {
673+
"url": "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-arm64/chromedriver-mac-arm64.zip",
674+
"integrity": "5adf89a3e8edc6755920f4cfe2fe0515d40684878ef5201da5e02a9d491c4003",
675+
"exclude_patterns": [],
676+
"named_files": {
677+
"CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver",
678+
},
679+
},
680+
"win64": {
681+
"url": "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/win64/chromedriver-win64.zip",
682+
"integrity": "a3dfe62b3e9e7a42bd324c07dcbbcc3a733a736b2a59f0e93b9250b88103ab73",
683+
"exclude_patterns": [],
684+
"named_files": {
685+
"CHROMEDRIVER": "chromedriver-win64/chromedriver.exe",
686+
},
687+
},
688+
},
587689
}

0 commit comments

Comments
 (0)