Release Checklist
Pre-release gates
bash
pnpm install --frozen-lockfile
pnpm lint
pnpm -r typecheck
pnpm -r test
pnpm -r buildAll steps must pass without errors.
Versioning
bash
pnpm changeset version- Verify generated
CHANGELOG.mdfiles in each package - Ensure versions are correct
- Commit the changes
Publishing
Publish order (dependencies first):
@statesync/core(core)@statesync/pinia@statesync/tauri
bash
pnpm releaseCI/CD secrets
For automated releases via GitHub Actions, configure repository secrets:
NPM_TOKEN— npm token for publishing packages. Get it vianpm token createor the npm web UI (Access Tokens). Scope: automation token with publish permissions.GITHUB_TOKEN— provided automatically by GitHub Actions. Used bychangesets/actionto create the Release PR.
Setup: Settings → Secrets and variables → Actions → New repository secret.
Smoke-import check (ESM + CJS)
Before publishing, ensure both formats work:
bash
# ESM
node -e "import('@statesync/core').then(m => console.log('ESM OK:', Object.keys(m)))"
# CJS
node -e "const m = require('@statesync/core'); console.log('CJS OK:', Object.keys(m))"Repeat for each package (@statesync/pinia, @statesync/tauri).
Post-release
- Smoke test: install published packages into a test project
- Verify ESM and CJS imports (see above)
- Verify TypeScript types resolve
- Create a git tag if needed
Docs deploy (GitHub Pages)
- Ensure repository Pages is enabled with Source = GitHub Actions.
- Push changes under
docs/**tomainand verify the Docs (GitHub Pages) workflow completes successfully.