Use this checklist before publishing a new NotifyChain release (tagged version on
main). It aligns with the CI workflow and the
verification steps in CONTRIBUTING.md.
- Release scope is agreed (contracts, listener, dashboard, docs only, etc.).
- All changes for the release are merged to
main(or the release branch). -
mainis up to date with upstream:git checkout main git pull upstream main
Run the same checks CI runs on pull requests. From the repository root:
cd contract
rustup component add rustfmt
cargo fmt --all -- --check
cargo test --workspace --all-features --verbose-
cargo fmtcheck passes - All contract unit tests pass
- Fuzz tests pass (
cargo test fuzz_ --verbose -- --nocaptureincontract/)
cd listener
npm ci
npm run lint
npm run typecheck
npm test --silent- Listener lint/typecheck passes
- Listener tests pass
cd dashboard
npm ci
npm run lint
npm run build
npm test --silent
npm run test:wallet --silent- Dashboard lint passes
- Dashboard build (TypeScript + Vite) succeeds
- Dashboard tests pass
- Wallet integration tests pass (
npm run test:wallet)
cd listener
npm ci
npm run migrate
npm run check-migrations- Migrations apply cleanly on a fresh database
- No pending migrations reported by
check-migrations
- Contract WASM builds successfully (
stellar contract buildincontract/) - Listener production build:
cd listener && npm run build - Manual smoke test: listener events API + dashboard against testnet (see README)
- README.md reflects new features, config, or breaking changes
- CONTRIBUTING.md is still accurate (setup, test commands)
- User-facing guides updated where behavior changed (for example TROUBLESHOOTING.md, NOTIFICATION_PAYLOAD_SCHEMA.md, CONTRACT_UPGRADE_GUIDE.md)
- Environment variables documented in
listener/.env.exampleif new vars were added - Breaking API or event schema changes noted (changelog entry or dedicated doc)
- Release version number chosen (semver tag, e.g.
v1.2.0) - Contract version / WASM artifacts identified if contracts ship in this release
- If upgrading deployed contracts, CONTRACT_UPGRADE_GUIDE.md followed and testnet verification completed
- Git tag created on the release commit:
git tag -a vX.Y.Z -m "Release vX.Y.Z" git push upstream vX.Y.Z # or push tag to your fork and open PR if tags go via maintainers
- GitHub Release drafted with summary, upgrade notes, and known issues
- Release notes list contributors and link closed issues where helpful
- Deployed environments updated (listener, dashboard) if applicable
- Staging workflow expectations met if using the
stagingbranch (see .github/workflows/staging.yml) - Monitor logs and notification delivery after deploy
- Open follow-up issues for deferred items or regressions found after ship
| Role | Name | Date | Notes |
|---|---|---|---|
| Release manager | |||
| Technical review |