This repo uses Changesets for version orchestration and a custom publish script for the generated executor npm package plus its platform packages.
- Add a changeset in the PR that should ship:
bun run changeset
- Merge that PR to
main. .github/workflows/release.ymlopens or updates aVersion PackagesPR.- Merge the
Version PackagesPR. - The release workflow tags the commit and dispatches
.github/workflows/publish-executor-package.yml. - The publish workflow:
- runs
bun run release:check - performs a full dry-run release build before publish
- publishes npm packages under the correct dist-tag
- creates or updates the GitHub release with build artifacts
- runs
Enter prerelease mode before starting a beta train:
bun run release:beta:start
That commits .changeset/pre.json into the repo and causes future release PRs to produce versions like 1.5.0-beta.0, 1.5.0-beta.1, and so on.
When the beta train is done:
bun run release:beta:stop
Stable versions publish to npm under latest.
Beta versions publish to npm under beta.
To build the full release payload without publishing to npm or GitHub:
bun run release:publish:dry-run
That produces:
- platform archives in
apps/cli/dist - the packed wrapper tarball in
apps/cli/dist/release
- Changesets owns the published CLI version via
apps/cli/package.json. - Only
apps/cli/package.jsonshould change during release versioning; the rest of the workspace is not version-synced for release PRs. - Changesets changelog file generation is disabled; GitHub release notes are generated at publish time instead.
- Workspace
CHANGELOG.mdfiles are kept as compatibility files for the Changesets GitHub Action release PR flow. - The publish workflow supports either npm trusted publishing or an
NPM_TOKENsecret. - Re-running the publish workflow for the same tag is safe for packages that are already on npm; existing versions are skipped.