This document defines the changelog format and versioning policy used by Trustchain Escrow.
Related reading:
- CHANGELOG.md — the project's changelog
- Contributing Guide — commit conventions and PR process
Trustchain Escrow follows Semantic Versioning (SemVer 2.0.0). Versions are formatted as MAJOR.MINOR.PATCH.
| Component | When to Bump | Example |
|---|---|---|
| MAJOR | Incompatible changes to the smart contract storage schema, API contract, or on-chain state format that require a migration | 2.0.0 |
| MINOR | New features that are backward-compatible, including new contract functions, new API endpoints, and new configuration options | 2.1.0 |
| PATCH | Backward-compatible bug fixes, security patches, and internal refactors | 2.1.1 |
Pre-release versions use the format MAJOR.MINOR.PATCH-alpha.N or MAJOR.MINOR.PATCH-beta.N:
2.1.0-alpha.1— first alpha of the 2.1.0 release2.1.0-beta.1— first beta of the 2.1.0 release2.1.0-rc.1— first release candidate
Pre-release versions have lower precedence than the associated stable version. For example, 2.1.0-alpha.1 < 2.1.0.
| File | Purpose |
|---|---|
package.json (version) |
Frontend and workspace version |
backend/package.json (version) |
Backend API version |
CHANGELOG.md |
Human-readable changelog |
Smart contract Cargo.toml (version) |
On-chain contract version |
The changelog follows the format of Keep a Changelog.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- New feature description
### Changed
- Changed behavior description
### Deprecated
- Deprecated feature description
### Removed
- Removed feature description
### Fixed
- Bug fix description
## [MAJOR.MINOR.PATCH] - YYYY-MM-DD
### Added
### Changed
### Deprecated
### Removed
### Fixed| Section | Description |
|---|---|
| Added | New features |
| Changed | Changes in existing functionality |
| Deprecated | Features that will be removed in a future release |
| Removed | Features removed in this release |
| Fixed | Bug fixes |
Each version section links to the GitHub compare URL between that version and the previous one:
[Unreleased]: https://github.com/KCEE0901/trustchain-escrow/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/KCEE0901/trustchain-escrow/compare/v1.0.0...v2.0.0
[1.0.0]: https://github.com/KCEE0901/trustchain-escrow/releases/tag/v1.0.0- Prepare the release — Update
CHANGELOG.mdwith all changes since the last release under theUnreleasedsection, then move them to a new version section. - Bump the version — Update
versioninpackage.json,backend/package.json, and the smart contractCargo.toml. - Create a git tag —
git tag vMAJOR.MINOR.PATCH - Create a GitHub Release — Attach the tag, link the compare URL, and paste the changelog section.
- Deploy — Follow the Production Deployment Guide for mainnet deployment.
A breaking change is any change that requires existing users or integrators to modify their code or configuration. Examples include:
- Changing the smart contract storage schema (requires a storage migration)
- Removing or renaming API endpoints
- Changing the request or response format of an API endpoint
- Changing the on-chain function signatures or parameter types
- Changing the minimum required Node.js, Rust, or Soroban CLI version
Breaking changes must be clearly marked in the changelog with a > **Breaking change:** callout and must be accompanied by a migration guide if the change affects on-chain state.