Contributing
June 4, 2026 ยท View on GitHub
Branch Model
NanoTDB uses a simple release-branch workflow.
Branches:
main: next development line for the next planned release.release/X.Y: stable maintenance branch for a released minor line.feature/...: short-lived work branches that merge intomain.
Tags:
vX.Y.Ztags are immutable release points.- Examples:
v1.2.0,v2.0.0-rc1,v2.0.0.
Current Release Policy
Current release lines:
release/1.4: safe maintenance line for the1.4.xseries.release/1.3: older maintenance line, accepting only critical fixes.main: active integration branch for the next planned minor release.
Branch intent:
release/1.4accepts only low-risk fixes, docs fixes, packaging fixes, and critical regressions.release/1.3is kept open for critical regressions only.mainis the active integration branch for the next release until feature scope is frozen.- When the next minor release is frozen, cut a
release/X.Ybranch frommainand allow only stabilization work there. - New feature work should go to
mainor afeature/...branch and then be included in the release branch when that branch is refreshed or cut frommain.
Rules
- Do not develop new features directly on a maintenance branch.
- Do not merge
mainwholesale into an older release branch. - Fixes for older supported releases must be cherry-picked.
- Ship releases from
release/X.Ybranches, not from a local feature branch. - Cut a release branch before final stabilization if the upcoming release is large or risky.
Release Flow
Patch release from a stable line
Example: 1.3.1
- Branch or work on
release/1.3. - Apply only the targeted fix set.
- Validate the release branch.
- Tag the release:
v1.3.1. - Cherry-pick important fixes forward into
mainand any newer release branch.
Major or minor release
Example: 1.4.0
- Merge finished feature branches into
main. - Run integration and regression testing primarily on
mainwhile feature work is still settling. - When scope is frozen, cut or fast-forward
release/1.4frommain. - Allow only bug fixes, docs, packaging, and release preparation on that branch.
- Optionally tag one or more release candidates such as
v1.4.0-rc1. - Tag the final release from
release/1.4asv1.4.0. - Keep the release branch for
1.4.xfollow-up fixes if needed.
Cherry-Pick Policy
Use cherry-picks for fixes that must land on multiple supported branches.
Typical direction:
- old stable fix -> cherry-pick forward into newer lines
- never merge a newer unstable branch back into an older stable line
Operator Safety
To keep a release line safe:
- production deployments should come from a release branch or release tag
- do not deploy from a long-lived feature branch
- treat tags as shipped history and release branches as supported code lines
Notes For This Repo
For the current release cycle:
v1.4.0is the latest shipped minor release anchor (released 2026-05-28).release/1.4is the safe line for any1.4.xfollow-up fixes.release/1.3remains open for critical-only fixes against1.3.x.mainis the active merge and regression line for the next minor release.- Cut the next
release/X.Yfrommainwhen feature scope is frozen and move to stabilization there.