Skip to content

Commit ab77eaf

Browse files
authored
refactor(release): retire dedicated betas and preview lanes (#7058)
* refactor(release): retire dedicated betas and preview lanes * fix(updater): consume dynamic release channels * fix(e2e): narrow counted release versions structurally
1 parent 33b9b6f commit ab77eaf

24 files changed

Lines changed: 112 additions & 4475 deletions

File tree

.github/scripts/release/build-beta.ps1

Lines changed: 0 additions & 827 deletions
This file was deleted.

.github/workflows/release-beta-s.yml

Lines changed: 0 additions & 1042 deletions
This file was deleted.

.github/workflows/release-preview.yml

Lines changed: 0 additions & 1391 deletions
This file was deleted.

apps/daemon/src/migration/update-apply-observations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,10 @@ async function writeSummary(filePath: string, summary: InstallerObservationSumma
139139
}
140140

141141
export function normalizeUpdateObservationChannel(version: string, explicit?: string | null): InstallerObservationChannel {
142-
if (isReleaseChannel(explicit)) return explicit;
143142
if (explicit != null && explicit.startsWith('beta')) return 'beta';
144143
if (explicit != null && explicit.startsWith('preview')) return 'preview';
145144
if (explicit != null && explicit.startsWith('prerelease')) return 'prerelease';
145+
if (isReleaseChannel(explicit)) return explicit;
146146
const cleaned = version.trim().replace(/^v/i, '');
147147
const prerelease = cleaned.split('-', 2)[1] ?? '';
148148
const channel = releaseChannelFromVersion(version);

apps/desktop/src/main/updater/config.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
type DesktopUpdateMode,
99
type SidecarSource,
1010
} from "@open-design/sidecar-proto";
11-
import { releaseChannelFromVersion } from "@open-design/release";
11+
import { isReleaseChannel, releaseChannelFromVersion } from "@open-design/release";
1212

1313
/**
1414
* @module updater-config
@@ -44,7 +44,6 @@ const STABLE_POLL_INTERVAL_MS = 6 * 60 * 60 * 1000;
4444
const DEFAULT_POLL_INITIAL_DELAY_MS = 5000;
4545
const DEFAULT_POLL_BACKOFF_INITIAL_MS = 60 * 1000;
4646
const DEFAULT_POLL_BACKOFF_MAX_MS = 30 * 60 * 1000;
47-
const DESKTOP_UPDATE_CHANNEL_VALUES = new Set<string>(Object.values(DESKTOP_UPDATE_CHANNELS));
4847

4948
export type DesktopUpdaterConfigInput = {
5049
appVersion?: string | null;
@@ -112,7 +111,7 @@ function normalizeChannel(value: string | undefined, fallback: DesktopUpdateChan
112111
}
113112

114113
export function isDesktopUpdateChannel(value: unknown): value is DesktopUpdateChannel {
115-
return typeof value === "string" && DESKTOP_UPDATE_CHANNEL_VALUES.has(value);
114+
return isReleaseChannel(value);
116115
}
117116

118117
function defaultMetadataUrl(channel: DesktopUpdateChannel): string {

apps/desktop/src/main/updater/feed.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,9 @@ export function metadataChannel(metadata: Record<string, unknown>): DesktopUpdat
111111

112112
export function releaseVersionForChannel(metadata: Record<string, unknown>, channel: DesktopUpdateChannel): string | null {
113113
if (channel === DESKTOP_UPDATE_CHANNELS.BETA) return stringField(metadata, "releaseVersion") ?? stringField(metadata, "betaVersion");
114-
if (channel === DESKTOP_UPDATE_CHANNELS.BETAS) return stringField(metadata, "releaseVersion");
115114
if (channel === DESKTOP_UPDATE_CHANNELS.PRERELEASE) return stringField(metadata, "releaseVersion") ?? stringField(metadata, "prereleaseVersion");
116-
if (channel === DESKTOP_UPDATE_CHANNELS.PREVIEW) return stringField(metadata, "releaseVersion") ?? stringField(metadata, "previewVersion");
117-
return stringField(metadata, "releaseVersion") ?? stringField(metadata, "stableVersion");
115+
if (channel === DESKTOP_UPDATE_CHANNELS.STABLE) return stringField(metadata, "releaseVersion") ?? stringField(metadata, "stableVersion");
116+
return stringField(metadata, "releaseVersion");
118117
}
119118

120119
export function selectedMacPlatformKey(arch: string): string {
@@ -443,4 +442,3 @@ export function checksumMatchesCandidate(checksum: ResolvedChecksumSnapshot, can
443442
if (candidate.checksum.value != null && checksum.value.toLowerCase() !== candidate.checksum.value.toLowerCase()) return false;
444443
return true;
445444
}
446-

apps/desktop/tests/main/updater.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3106,7 +3106,7 @@ describe("desktop updater", () => {
31063106

31073107
const checked = await updater.checkForUpdates();
31083108
expect(checked.state).toBe(DESKTOP_UPDATE_STATES.DOWNLOADED);
3109-
expect(checked.channel).toBe(DESKTOP_UPDATE_CHANNELS.PREVIEW);
3109+
expect(checked.channel).toBe("preview");
31103110
expect(checked.availableVersion).toBe("1.0.1-preview.2");
31113111
} finally {
31123112
await fixture.close();

apps/desktop/tests/main/updater/config.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ describe("desktop updater config", () => {
8181
source: SIDECAR_SOURCES.PACKAGED,
8282
});
8383

84-
expect(config.channel).toBe(DESKTOP_UPDATE_CHANNELS.PREVIEW);
84+
expect(config.channel).toBe("preview");
8585
expect(config.metadataUrl).toContain("/preview/latest/metadata.json");
8686
} finally {
8787
rmSync(root, { force: true, recursive: true });

e2e/lib/vitest/packaged-update-scenario.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ function nextStablePatch(version: string): string {
7979
}
8080

8181
function nextHyphenPrerelease(version: string, label: string): string {
82-
if (label !== 'beta' && label !== 'betas' && label !== 'prerelease' && label !== 'preview') {
82+
if (!isReleaseChannel(label) || label === 'stable') {
8383
throw new Error(`unsupported counted release channel: ${label}`);
8484
}
8585
const parsed = parseReleaseVersion(version, label);
86-
if (parsed.channel === 'stable') {
86+
if (!("number" in parsed)) {
8787
throw new Error(`${label} release version must be x.y.z-${label}.N; got ${version}`);
8888
}
8989
return formatReleaseVersion(label, parsed.baseVersion, parsed.number + 1);

0 commit comments

Comments
 (0)