Skip to content

Commit 233a73d

Browse files
tejaskashclaude
andcommitted
feat: add preview-major bump type for preview version releases
Adds a `preview-major` bump type that increments the major preview number and resets the minor to 0 (e.g. 0.3.0-preview.1.0 -> 0.3.0-preview.2.0). The existing `preview` bump type continues to increment the minor preview number (e.g. 0.3.0-preview.1.0 -> 0.3.0-preview.1.1). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ec44120 commit 233a73d

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
type: choice
1010
options:
1111
- preview
12+
- preview-major
1213
- patch
1314
- minor
1415
- major

scripts/bump-version.ts

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* npx tsx scripts/bump-version.ts <bump_type> [options]
88
*
99
* Arguments:
10-
* bump_type: major | minor | patch | prerelease | preview
10+
* bump_type: major | minor | patch | prerelease | preview | preview-major
1111
*
1212
* Options:
1313
* --changelog <text> Custom changelog entry
@@ -16,7 +16,8 @@
1616
*
1717
* Preview bumps (internal format):
1818
* - 0.3.0 -> 0.3.0-preview.1.0
19-
* - 0.3.0-preview.1.0 -> 0.3.0-preview.1.1
19+
* - 0.3.0-preview.1.0 -> 0.3.0-preview.1.1 (preview)
20+
* - 0.3.0-preview.1.0 -> 0.3.0-preview.2.0 (preview-major)
2021
*/
2122
import { execSync } from 'child_process';
2223
import { existsSync, readFileSync, writeFileSync } from 'fs';
@@ -25,7 +26,7 @@ import { existsSync, readFileSync, writeFileSync } from 'fs';
2526
// Types
2627
// ===========================
2728

28-
type BumpType = 'major' | 'minor' | 'patch' | 'prerelease' | 'preview';
29+
type BumpType = 'major' | 'minor' | 'patch' | 'prerelease' | 'preview' | 'preview-major';
2930

3031
interface ParsedVersion {
3132
major: number;
@@ -175,6 +176,26 @@ function bumpVersion(current: string, bumpType: BumpType, prereleaseTag = 'beta'
175176
previewMinor: 0,
176177
});
177178

179+
case 'preview-major':
180+
// Increment the major preview number and reset minor to 0
181+
if (parsed.previewMajor !== undefined && parsed.previewMinor !== undefined) {
182+
return formatVersion({
183+
major: parsed.major,
184+
minor: parsed.minor,
185+
patch: parsed.patch,
186+
previewMajor: parsed.previewMajor + 1,
187+
previewMinor: 0,
188+
});
189+
}
190+
// Otherwise, start at preview.1.0
191+
return formatVersion({
192+
major: parsed.major,
193+
minor: parsed.minor,
194+
patch: parsed.patch,
195+
previewMajor: 1,
196+
previewMinor: 0,
197+
});
198+
178199
default: {
179200
const exhaustiveCheck: never = bumpType;
180201
throw new Error(`Unknown bump type: ${exhaustiveCheck as string}`);
@@ -371,7 +392,7 @@ function parseArgs(): { bumpType: BumpType; changelog?: string; prereleaseTag: s
371392
Usage: npx tsx scripts/bump-version.ts <bump_type> [options]
372393
373394
Arguments:
374-
bump_type: major | minor | patch | prerelease | preview
395+
bump_type: major | minor | patch | prerelease | preview | preview-major
375396
376397
Options:
377398
--changelog <text> Custom changelog entry
@@ -381,14 +402,15 @@ Options:
381402
382403
Preview bumps:
383404
- 0.3.0 -> 0.3.0-preview.1.0
384-
- 0.3.0-preview.1.0 -> 0.3.0-preview.1.1
405+
- 0.3.0-preview.1.0 -> 0.3.0-preview.1.1 (preview)
406+
- 0.3.0-preview.1.0 -> 0.3.0-preview.2.0 (preview-major)
385407
`);
386408
process.exit(0);
387409
}
388410

389411
const bumpType = args[0] as BumpType;
390-
if (!['major', 'minor', 'patch', 'prerelease', 'preview'].includes(bumpType)) {
391-
console.error(`Error: Invalid bump type '${bumpType}'. Must be one of: major, minor, patch, prerelease, preview`);
412+
if (!['major', 'minor', 'patch', 'prerelease', 'preview', 'preview-major'].includes(bumpType)) {
413+
console.error(`Error: Invalid bump type '${bumpType}'. Must be one of: major, minor, patch, prerelease, preview, preview-major`);
392414
process.exit(1);
393415
}
394416

0 commit comments

Comments
 (0)