Files
paseo/docs/RELEASE.md

3.0 KiB

Release

All workspaces share one version and release together.

Standard release (patch)

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

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

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

Fixing a failed release build

NEVER bump the version to fix a build problem. New versions are reserved for meaningful product changes (features, fixes, improvements). Build/CI failures are fixed on the current version.

To retry a failed workflow for an existing tag:

  1. Retry via workflow_dispatch — all release workflows support workflow_dispatch with a tag input:
    gh workflow run "Desktop Release" -f tag=v0.1.28                      # all platforms
    gh workflow run "Desktop Release" -f tag=v0.1.28 -f platform=macos    # single platform
    gh workflow run "Android APK Release" -f tag=v0.1.28
    gh workflow run "Deploy App"                                           # no tag input needed
    
  2. Platform-specific retry tags (desktop only) — push a tag like desktop-macos-v0.1.28 to rebuild just that platform against the release tag's code

If the fix requires a code change (e.g. a broken build script), commit the fix to main and use workflow_dispatch pointing at the existing tag — the workflow checks out the tag ref, but for build-tooling fixes you may need to point it at main or cherry-pick the fix onto the 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