mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# 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
|
|
- Desktop assets now come from the Electron package at `packages/desktop`
|
|
|
|
## 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:
|
|
```bash
|
|
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
|
|
- `npm run dev:desktop` and `npm run build:desktop` target the Electron desktop package in `packages/desktop`
|
|
- 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
|