Development Workflow
Development Workflow
KoutenDB uses a stable-main workflow.
Branch Roles
| Branch | Role |
|---|---|
main |
Released, tagged, public-stable state. Documentation and package metadata on main should describe what users can install or evaluate now. |
devel |
Integration branch for the next release. Feature work targets devel first, not main. |
feature/... |
Focused implementation branches created from devel. |
docs/... |
Documentation-only branches created from devel unless they are patching released docs. |
test/... |
Test and CI changes created from devel unless they are release hotfixes. |
release/vX.Y.Z |
Short-lived release preparation branch cut from devel after the next release scope is ready. |
hotfix/... |
Urgent fix branch cut from main when the released state needs a direct patch. |
Normal Feature Flow
- Update local
devel. - Create a focused branch from
devel. - Implement and test the change.
- Open a PR into
devel. - Merge only after CI passes.
Feature branches should not target main directly. This keeps main aligned
with released tags and avoids exposing half-integrated work as the public
default state.
Release Flow
- Decide the next release scope on
devel. - Cut
release/vX.Y.Zfromdevel. - Update package metadata, release notes, and release checklist state.
- Open a PR from
release/vX.Y.Zintomain. - Merge after CI passes.
- Tag the merge commit on
main. - Create the GitHub Release from the release notes.
Tags are created only from main.
Hotfix Flow
Use a hotfix only when the currently released state needs a direct correction.
- Create
hotfix/...frommain. - Apply the smallest safe fix.
- PR into
main. - Tag a patch release after merge.
- Merge or cherry-pick the fix back into
devel.
Work In Progress
Large work should stay on a feature branch until it is coherent enough to enter
devel. If work must pause while a release is prepared, stash or commit it on
the feature branch. Do not apply unfinished feature work directly to devel.
CI Expectations
The repository CI is the release gate for merged branches. Core checks include:
- Nim semantic checks;
- SSL-enabled checks;
- C ABI contract checks;
- core tests;
- CLI, cluster, recovery, universe, and TLS smoke tests.
Driver compatibility tests may remain optional when the relevant driver repositories are developed separately.