Skip to content

Commit 4f57ba2

Browse files
authored
Derive Edge beta/nightly/planned release from stable version (#27165)
* enhance(update-browser-releases): set beta/nightly/planned based on stable * refactor(update-browser-releases): extract setBrowserReleaseStatus
1 parent b91c36a commit 4f57ba2

File tree

2 files changed

+61
-2
lines changed

2 files changed

+61
-2
lines changed

scripts/update-browser-releases/edge.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ import chalk from 'chalk-template';
77

88
import stringify from '../lib/stringify-and-order-properties.js';
99

10-
import { newBrowserEntry, updateBrowserEntry } from './utils.js';
10+
import {
11+
newBrowserEntry,
12+
setBrowserReleaseStatus,
13+
updateBrowserEntry,
14+
} from './utils.js';
1115

1216
/**
1317
* getFutureReleaseDate - Read the future release date
@@ -242,10 +246,32 @@ export const updateEdgeReleases = async (options) => {
242246
}
243247
}
244248

249+
//
250+
// Ensure that the release following stable is 'beta'
251+
//
252+
const betaVersion = data[options.releaseBranch].version + 1;
253+
result += setBrowserReleaseStatus(
254+
edgeBCD,
255+
options.bcdBrowserName,
256+
betaVersion.toString(),
257+
'beta',
258+
);
259+
260+
//
261+
// Ensure that the release following beta is 'nightly'
262+
//
263+
const nightlyVersion = data[options.releaseBranch].version + 2;
264+
result += setBrowserReleaseStatus(
265+
edgeBCD,
266+
options.bcdBrowserName,
267+
nightlyVersion.toString(),
268+
'nightly',
269+
);
270+
245271
//
246272
// Add a planned version entry
247273
//
248-
const planned = (data[options.nightlyBranch].version + 1).toString();
274+
const planned = (data[options.releaseBranch].version + 3).toString();
249275
let releaseDate;
250276
try {
251277
releaseDate = await getFutureReleaseDate(

scripts/update-browser-releases/utils.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import chalk from 'chalk-template';
55
import xml2js from 'xml2js';
66

7+
import { BrowserName, BrowserStatus, CompatData } from '../../types/types.js';
8+
79
const USER_AGENT =
810
'MDN-Browser-Release-Update-Bot/1.0 (+https://developer.mozilla.org/)';
911

@@ -140,6 +142,37 @@ export const createOrUpdateBrowserEntry = (
140142
);
141143
};
142144

145+
/**
146+
* Updates the status of a browser release.
147+
* @param json json file to update
148+
* @param browser the entry name where to add it in the bcd file
149+
* @param version the version to add
150+
* @param status the status
151+
* @returns Text describing what has been updated
152+
*/
153+
export const setBrowserReleaseStatus = (
154+
json: CompatData,
155+
browser: BrowserName,
156+
version: string,
157+
status: BrowserStatus,
158+
): string => {
159+
const release = json.browsers[browser].releases[version];
160+
161+
if (release.status === status) {
162+
return '';
163+
}
164+
165+
return updateBrowserEntry(
166+
json,
167+
browser,
168+
version,
169+
release.release_date,
170+
status,
171+
'',
172+
'',
173+
);
174+
};
175+
143176
/**
144177
* Fetches an RSS feed, using a typical RSS user agent.
145178
* @param url The URL of the RSS feed.

0 commit comments

Comments
 (0)