This document defines versioning, changelog, and deployment procedures for the Tikka ecosystem.
- Semantic Versioning:
MAJOR.MINOR.PATCH - MAJOR: Breaking changes to public APIs (Raffle, Ticket, Wallet, User, Network, Utils modules)
- MINOR: New features, non-breaking additions
- PATCH: Bug fixes, internal improvements
- Pre-release:
0.x.yduring development; increment MINOR for feature releases
- Calendar Versioning:
YYYY.MM.PATCH - YYYY.MM: Release date (e.g.,
2026.05.0) - PATCH: Hotfixes within the same month
- No pre-release versions; deploy directly to staging/production
- Versioned by timestamp:
YYYYMMDD_HHMMSS_description.sql - Must be reversible (include rollback logic)
- Deployed independently of app versions
- Update version in
sdk/package.json - Add entry to
CHANGELOG.md(see template below) - Tag commit:
sdk-v0.1.0 - Publish to npm:
npm publish(fromsdk/directory) - Update TypeDoc:
npm run docs
- Update version in package.json (if applicable)
- Add entry to
CHANGELOG.md - Tag commit:
app-YYYY.MM.PATCH(e.g.,app-2026.05.0) - Deploy to staging, run integration tests
- Deploy to production
- Create migration file in
backend/migrations/ - Include rollback procedure in comments
- Test locally:
npm run migrate:upandnpm run migrate:down - Deploy before app release
- Document in
CHANGELOG.md
Create entries in CHANGELOG.md at the root:
## [0.1.0] - 2026-05-28
### Added
- New feature description
### Changed
- Breaking change or significant modification
### Fixed
- Bug fix description
### Deprecated
- Deprecated API or feature
### Removed
- Removed feature or API
### Migration
- Database schema changes
- Rollback procedure (if applicable)
### Dependencies
- Updated or added dependencies- Tests pass (
npm test) - TypeDoc builds (
npm run docs) - No breaking changes to public APIs, 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
npm unpublish @tikka/sdk@0.1.0
git revert <commit-hash>
git push- Revert to previous tag:
git revert <tag> - Redeploy previous version
- Notify team of rollback reason
- Run rollback migration:
npm run migrate:down - Verify data integrity
- Redeploy app if needed
When multiple packages release together:
- Coordinate versions and changelog entries
- Tag all commits with a release date:
release-2026.05.28 - Deploy in order: Database → Backend → Indexer/Oracle → Client
- Verify each step before proceeding
- Document in main
CHANGELOG.md
- Update
sdk/package.jsonversion - TypeDoc automatically reflects version in generated docs
- Public APIs should reference version in JSDoc comments for breaking changes
- Update
package.jsonversion (if applicable) - Include version in deployment metadata (e.g., Docker image tags)
- Log version on startup for debugging