This project follows Semantic Versioning: MAJOR.MINOR.PATCH.
Version tags include an artifact prefix and v: node/v1.2.0, helm/node/v0.3.0.
A network qualifier may be appended as a pre-release suffix: node/v0.1.2-mainnet.
The Helm chart is versioned independently from the node.
| Artifact | Tag format | Examples |
|---|---|---|
| Node | node/v<semver> |
node/v1.2.0, node/v0.1.2-mainnet |
| Helm chart | helm/node/v<semver> |
helm/node/v0.2.2 |
| nodectl | nodectl/v<semver> |
nodectl/v0.1.0 |
| nodectl chart | helm/nodectl/v<semver> |
helm/nodectl/v0.1.0 |
Conventional Commits: type(scope): short description
Types: feat, fix, docs, chore, refactor, test, ci
Scopes: helm, nodectl, grafana (more scopes will appear as the node code lands)
| Branch | Purpose |
|---|---|
master |
Production-ready code. All final release tags live here. |
release/<version> |
Stabilization branch for an upcoming release. Branched off master. |
hotfix/<version> |
Urgent fix for a previously released version. Branched off the relevant release tag. |
The <version> in branch names matches the target tag, e.g. release/node/v0.2.0-mainnet,
hotfix/node/v0.1.3-mainnet, release/helm/node/v0.3.0.
| Tag | Meaning | Placed on |
|---|---|---|
node/v1.2.0 |
Final release | master |
node/v0.1.2-mainnet |
Final release (network qualifier) | master |
node/v1.2.0-rc.1 |
Release candidate | release/* |
node/v0.1.3-mainnet |
Hotfix for older version | hotfix/* (if not latest) |
| Tag | Meaning | Placed on |
|---|---|---|
helm/node/v0.2.2 |
Final release | master |
| Tag | Meaning | Placed on |
|---|---|---|
nodectl/v0.1.0 |
Final release | master |
helm/nodectl/v0.1.0 |
Chart final release | master |
- Final release tags live on
master, except hotfixes for older versions. - Release candidate tags live on
release/*branches. - Node, Helm chart, and nodectl tags are independent and may point to the same or different commits.
Create a branch release/<version> from master. Stabilize, tagging release
candidates as node/v<version>-rc.N or helm/node/v<version>-rc.N. Once stable, merge into master and tag.
Create a feature branch from master, fix, merge via PR, tag on master.
Create hotfix/<version> from the relevant release tag. Fix and tag on that
branch. Cherry-pick into master if applicable. GitHub Release is published
with make_latest: false.
- Build and push container images to
ghcr.io/rsquad/ton-rust-node/node. - Create a GitHub Release.
| Git Tag | Docker Tags | GitHub Release |
|---|---|---|
node/v1.2.0-mainnet |
v1.2.0-mainnet, latest |
Latest |
node/v1.2.0-rc.1 |
v1.2.0-rc.1 |
Pre-release |
node/v0.1.3-mainnet (hotfix) |
v0.1.3-mainnet (no latest) |
latest: false |
- Package the Helm chart.
- Push to
oci://ghcr.io/rsquad/ton-rust-node/helm/node. - Create a GitHub Release.
| Git Tag | OCI Tag | GitHub Release |
|---|---|---|
helm/node/v0.2.2 |
0.2.2 |
latest: false |
- Build and push container images to
ghcr.io/rsquad/nodectl(upstream). Mirror toghcr.io/rsquad/ton-rust-node/nodectl. - Create a GitHub Release.
| Git Tag | Docker Tags | GitHub Release |
|---|---|---|
nodectl/v0.1.0 |
v0.1.0, latest |
latest: false |
- Package the nodectl Helm chart.
- Push to
oci://ghcr.io/rsquad/ton-rust-node/helm/nodectl. - Create a GitHub Release.
| Git Tag | OCI Tag | GitHub Release |
|---|---|---|
helm/nodectl/v0.1.0 |
0.1.0 |
latest: false |
- Only node releases on
masterare marked as Latest. - Helm chart releases are always published with
make_latest: false. - nodectl and nodectl chart releases are always published with
make_latest: false. - Release candidates are marked as Pre-release.
- Hotfixes for older versions are published with
make_latest: false.
- Use meaningful PR titles — they serve as the changelog.
- Apply labels (
enhancement,bug,infrastructure,dependencies) for grouped release notes. - Add
skip-changelogto PRs that should not appear in release notes.