# Release All workspaces share one version and release together. ## Standard release (patch) ```bash npm run release:patch ``` This bumps the version across all workspaces, runs checks, publishes to npm, and pushes the branch + tag (triggering desktop, APK, and EAS mobile workflows). If asked to "release paseo" without specifying major/minor, treat it as a patch release. ## Manual step-by-step ```bash npm run version:all:patch # Bump version, create commit + tag npm run release:check # Validate release npm run release:publish # Publish to npm npm run release:push # Push HEAD + tag (triggers CI workflows) ``` ## Draft release flow ```bash npm run draft-release:patch # Bump, push tag, create draft GitHub Release npm run release:finalize # Publish npm, promote draft to published ``` - `draft-release:patch` creates the GitHub Release as a draft so desktop assets, APK uploads, and synced notes attach to it - `release:finalize` publishes npm and promotes the same draft release - Use the same semver tag for both; don't cut a second tag ## Notes - `version:all:*` bumps root + syncs workspace versions and `@getpaseo/*` dependency versions - `release:prepare` refreshes workspace `node_modules` links to prevent stale types - If `release:publish` partially fails, re-run it — npm skips already-published versions - Website Mac download CTA URL derives from `packages/website/package.json` version at build time ## Completion checklist - [ ] Update `CHANGELOG.md` with user-facing release notes (features, fixes — not refactors) - [ ] `npm run release:patch` completes successfully - [ ] GitHub `Desktop Release` workflow for the `v*` tag is green - [ ] GitHub `Android APK Release` workflow for the same tag is green - [ ] EAS `release-mobile.yml` workflow for the same tag is green