History

fix(release): use v<semver> tag format for nightly releases (#2186)

Efe Baran Durmaz committed 6 months agov0.0.21-nightly.20260419.73

Commit c83bc5d1 parent 9df3c645 files · +15 −6Browse files

Showing the changes to scripts (4 of 5 files). Show all

Unified · Split

4 files
  1. scripts/release-smoke.ts +1 −1
  2. scripts/resolve-nightly-release.test.ts +1 −1
  3. scripts/resolve-nightly-release.ts +1 −1
  4. scripts/resolve-previous-release-tag.ts +10 −2
scripts/release-smoke.ts+1−1
@@ -220,7 +220,7 @@ try { · 219 unmodified lines
220220 );
221221 assertContains(
222222 nightlyReleaseMetadata,
223− "tag=nightly-v9.9.10-nightly.20260413.321",
223+ "tag=v9.9.10-nightly.20260413.321",
224224 "Expected nightly metadata to contain the derived nightly tag.",
225225 );
226226 assertContains(
scripts/resolve-nightly-release.test.ts+1−1
@@ -24,7 +24,7 @@ it("derives nightly metadata including the short commit sha in the release name" · 23 unmodified lines
2424 {
2525 baseVersion: "9.9.10",
2626 version: "9.9.10-nightly.20260413.321",
27− tag: "nightly-v9.9.10-nightly.20260413.321",
27+ tag: "v9.9.10-nightly.20260413.321",
2828 name: "T3 Code Nightly 9.9.10-nightly.20260413.321 (abcdef123456)",
2929 shortSha: "abcdef123456",
3030 },
scripts/resolve-nightly-release.ts+1−1
@@ -54,7 +54,7 @@ export const resolveNightlyReleaseMetadata = ( · 53 unmodified lines
5454 return {
5555 baseVersion,
5656 version,
57− tag: `nightly-v${version}`,
57+ tag: `v${version}`,
5858 name: `T3 Code Nightly ${version} (${shortSha})`,
5959 shortSha,
6060 };
scripts/resolve-previous-release-tag.ts+10−2
@@ -75,11 +75,17 @@ const parseStableTag = (tag: string): StableVersion | undefined => { · 74 unmodified lines
7575 const [, major, minor, patch, prerelease] = match;
7676 if (!major || !minor || !patch) return undefined;
7777
78+ const prereleaseIdentifiers = prerelease ? prerelease.split(".") : [];
79+ // Nightly tags also start with `v` and carry a `nightly.*` prerelease
80+ // identifier. They must not be considered stable candidates when resolving
81+ // the previous stable tag.
82+ if (prereleaseIdentifiers[0] === "nightly") return undefined;
83+
7884 return {
7985 major: Number(major),
8086 minor: Number(minor),
8187 patch: Number(patch),
82− prerelease: prerelease ? prerelease.split(".") : [],
88+ prerelease: prereleaseIdentifiers,
8389 };
8490 };
8591
@@ -92,7 +98,9 @@ const compareNightlyVersions = (left: NightlyVersion, right: NightlyVersion): nu · 6 unmodified lines
9298 };
9399
94100 const parseNightlyTag = (tag: string): NightlyVersion | undefined => {
95− const match = /^nightly-v(\d+)\.(\d+)\.(\d+)-nightly\.(\d{8})\.(\d+)$/.exec(tag);
101+ // Accept both the current `v<semver>` format and the legacy `nightly-v<semver>`
102+ // format so release note diffs keep working across the tag-format transition.
103+ const match = /^(?:nightly-)?v(\d+)\.(\d+)\.(\d+)-nightly\.(\d{8})\.(\d+)$/.exec(tag);
96104 if (!match) return undefined;
97105
98106 const [, major, minor, patch, date, runNumber] = match;