GIT
Branching Strategy
The project uses trunk-based development on main. There is no long-lived
develop branch; all changes integrate through pull requests into main.
Primary branches and branch types:
main- Production-ready trunk; always deployablefeature/*- Short-lived branches for new features or larger changesfix/*- Short-lived branches for bug fixes
Feature Branch Guidelines
Create feature branches from
mainBranch naming:
feature/descriptive-name(e.g.feature/add-cdc-support)Keep changes focused and atomic
Regularly sync with
mainto minimize merge conflictsOpen a pull request to merge into
mainwhen complete
Fix Branch Guidelines
Create fix branches from
mainBranch naming:
fix/issue-description(e.g.fix/logging-format)Include issue reference in commit messages when applicable
Keep changes minimal and focused on the bug fix
Open a pull request to merge into
mainwhen complete
Release and Versioning
Version bumps are automated when a pull request is merged into main (see
.github/workflows/main-build.yml):
Branches named
feature/*→ minor version bump (fix reset to 0)Branches named
fix/*→ fix (patch) version bumpOther branch names → no automatic version bump (warning in workflow log)
The workflow updates VERSION, commits to main, and creates a vX.Y.Z tag.
Hotfix Process
For urgent production issues:
Create a hotfix branch from
main(e.g.fix/critical-data-loss)Implement and test the fix
Merge to
mainvia pull request (squash merge)Let the version workflow tag
main(fix/*branch → patch bump)
Pull Request Expectations
Target branch:
mainPrefer squash and merge for a linear history
Ensure CI passes (
.github/workflows/ci.yml) before mergeDelete the feature branch after merge