All acceptance criteria for the release policy have been implemented and verified.
Location: docs/RELEASE.md
Coverage:
- SDK Release (5 steps): version bump → changelog → tag → npm publish → TypeDoc
- App Release (5 steps): version bump → changelog → tag → staging → production
- Database Migration (5 steps): create migration → include rollback → test locally → deploy → document
Verification:
grep -n "### SDK Release\|### App Release\|### Database Migration" docs/RELEASE.mdSDK Version: sdk/package.json → "version": "0.1.0"
Changelog Entry: CHANGELOG.md → ## [Unreleased] section with template
TypeDoc Integration: sdk/package.json includes "docs": "typedoc" script
Verification:
- SDK version is semantic (MAJOR.MINOR.PATCH)
- Changelog uses Keep a Changelog format
- TypeDoc script configured to auto-generate docs
Location: docs/RELEASE.md → "Versioning" section
Rules Defined:
| Package | Versioning | Rules |
|---|---|---|
| SDK | Semantic | MAJOR: breaking changes, MINOR: features, PATCH: fixes |
| Apps | Calendar | YYYY.MM.PATCH format (release date + hotfix counter) |
| Database | Timestamp | YYYYMMDD_HHMMSS_description.sql |
Verification:
grep -A 3 "### SDK\|### Apps\|### Database" docs/RELEASE.mdLocation: CHANGELOG.md → "Unreleased" section
Template Sections:
- Added
- Changed
- Fixed
- Deprecated
- Removed
- Migration
- Dependencies
Format: Keep a Changelog (https://keepachangelog.com/)
Verification:
head -30 CHANGELOG.mdMigration Template: backend/database/MIGRATION_TEMPLATE.sql
Rollback Procedures:
- Template includes UP and DOWN sections
- Comments document rollback testing
docs/RELEASE.md→ "Database Migration" section specifies:- Migrations must be reversible
- Rollback tested locally before deploy
- Rollback procedure documented in comments
Verification:
cat backend/database/MIGRATION_TEMPLATE.sql
grep -A 5 "### Database" docs/RELEASE.md/workspaces/tikka/
├── README.md # Links to RELEASE.md
├── CHANGELOG.md # Keep a Changelog format
├── docs/
│ └── RELEASE.md # Complete release policy
└── backend/
└── database/
├── MIGRATION_TEMPLATE.sql # Migration template with rollback
└── migrations/ # Timestamped migration files
cd sdk
# 1. Update version in package.json
# 2. Add entry to ../../CHANGELOG.md
# 3. Commit and tag
git tag sdk-v0.1.0
# 4. Publish
npm publish
# 5. Generate TypeDoc
npm run docs# 1. Update version in package.json (if applicable)
# 2. Add entry to CHANGELOG.md
# 3. Commit and tag
git tag app-2026.05.0
# 4. Deploy to staging
# 5. Deploy to production# 1. Create migration file
touch backend/database/migrations/20260528_120000_description.sql
# 2. Include UP and DOWN procedures
# 3. Test locally
npm run migrate:up
npm run migrate:down
# 4. Deploy before app release
# 5. Document in CHANGELOG.mdnpm unpublish @tikka/sdk@0.1.0
git revert <commit-hash>
git pushgit revert <tag>
# Redeploy previous versionnpm run migrate:down
# Verify data integrityWhen multiple packages release together:
- Coordinate versions and changelog entries
- Tag all commits:
release-2026.05.28 - Deploy in order: Database → Backend → Indexer/Oracle → Client
- Verify each step
- Document in main
CHANGELOG.md
- Tests pass (
npm test) - TypeDoc builds (
npm run docs) - No breaking changes, or MAJOR version bumped
- Changelog entry added
- npm publish succeeds
- All package tests pass
- Root build passes
- Database migrations tested (if applicable)
- Staging deployment successful
- Integration tests pass
- Changelog entry added
- Production deployment scheduled
- Migration is reversible
- Rollback tested locally
- No data loss in rollback
- Deployed before app release
- Semantic Versioning
- Keep a Changelog
- Calendar Versioning
- Full policy:
docs/RELEASE.md - Changelog:
CHANGELOG.md