Release Command
Release all packages with the specified version.
Arguments
$ARGUMENTS: The version number (semver, e.g.,3.13.0)
Version Guidance
- Find the last release version by checking the latest git tag (
vX.Y.Z) and confirm it matchespackages/*/package.jsonversions. - If no version is specified, review commits since the last tag, decide major/minor/patch, then bump accordingly.
- If the user specifies
major,minor, orpatch, bump from the last tag: major -> X+1.0.0, minor -> X.Y+1.0, patch -> X.Y.Z+1.
Usage
Run the release script:
bun scripts/release.ts $ARGUMENTS
The script handles everything automatically:
- Pre-flight checks (clean working dir, on main branch)
- Updates all package.json versions
- Regenerates bun.lock
- Updates CHANGELOGs ([Unreleased] → [version] - date)
- Commits and tags
- Pushes to origin
- Watches CI until all workflows pass
Handling CI Failures
If CI fails, the script exits with an error. Fix the issue, then repeat until CI passes:
git commit -m "fix: <brief description>"
git push origin main
git tag -f v$ARGUMENTS && git push origin v$ARGUMENTS --force
bun scripts/release.ts watch
The watch subcommand re-watches CI for the current commit until all checks pass.