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
220 );220 );
221 assertContains(221 assertContains(
222 nightlyReleaseMetadata,222 nightlyReleaseMetadata,
223 "tag=nightly-v9.9.10-nightly.20260413.321",223 "tag=v9.9.10-nightly.20260413.321",
224 "Expected nightly metadata to contain the derived nightly tag.",224 "Expected nightly metadata to contain the derived nightly tag.",
225 );225 );
226 assertContains(226 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
24 {24 {
25 baseVersion: "9.9.10",25 baseVersion: "9.9.10",
26 version: "9.9.10-nightly.20260413.321",26 version: "9.9.10-nightly.20260413.321",
27 tag: "nightly-v9.9.10-nightly.20260413.321",27 tag: "v9.9.10-nightly.20260413.321",
28 name: "T3 Code Nightly 9.9.10-nightly.20260413.321 (abcdef123456)",28 name: "T3 Code Nightly 9.9.10-nightly.20260413.321 (abcdef123456)",
29 shortSha: "abcdef123456",29 shortSha: "abcdef123456",
30 },30 },
scripts/resolve-nightly-release.ts+1−1
@@ -54,7 +54,7 @@ export const resolveNightlyReleaseMetadata = ( · 53 unmodified lines
54 return {54 return {
55 baseVersion,55 baseVersion,
56 version,56 version,
57 tag: `nightly-v${version}`,57 tag: `v${version}`,
58 name: `T3 Code Nightly ${version} (${shortSha})`,58 name: `T3 Code Nightly ${version} (${shortSha})`,
59 shortSha,59 shortSha,
60 };60 };
scripts/resolve-previous-release-tag.ts+10−2
@@ -75,11 +75,17 @@ const parseStableTag = (tag: string): StableVersion | undefined => { · 74 unmodified lines
75 const [, major, minor, patch, prerelease] = match;75 const [, major, minor, patch, prerelease] = match;
76 if (!major || !minor || !patch) return undefined;76 if (!major || !minor || !patch) return undefined;
77 77
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
78 return {84 return {
79 major: Number(major),85 major: Number(major),
80 minor: Number(minor),86 minor: Number(minor),
81 patch: Number(patch),87 patch: Number(patch),
82 prerelease: prerelease ? prerelease.split(".") : [],88 prerelease: prereleaseIdentifiers,
83 };89 };
84};90};
85 91
@@ -92,7 +98,9 @@ const compareNightlyVersions = (left: NightlyVersion, right: NightlyVersion): nu · 6 unmodified lines
92};98};
93 99
94const parseNightlyTag = (tag: string): NightlyVersion | undefined => {100const 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);
96 if (!match) return undefined;104 if (!match) return undefined;
97 105
98 const [, major, minor, patch, date, runNumber] = match;106 const [, major, minor, patch, date, runNumber] = match;