Thank you for contributing to this project.
This repository uses dev as the default integration branch, while stable releases are published from main through release/* branches.
dev: default branch and day-to-day integration branchmain: stable release branchrelease/*: release preparation branches for maintainers- Recommended branch names for external contributors:
fix/*: bug fixesfeature/*: new features or enhancements
Maintainer release flow:
feature/* / fix/* -> dev -> release/* -> main -> tag(vX.Y.Z)
Whether your branch is fix/* or feature/*, external contributors should open pull requests directly against dev.
Reasons:
devis the active integration branch, so changes can be reviewed in the same lane as ongoing work- contributors align with the branch that triggers day-to-day validation and dev builds
- maintainers can cut
release/*branches fromdevwithout re-syncing external changes first
Recommended flow:
- Fork this repository
- Sync your fork with
devand create a branch fromdev(fix/*orfeature/*is recommended) - Make your changes and perform basic self-checks
- Push the branch to your fork
- Open a pull request against the
devbranch of this repository
Please keep each pull request focused, reviewable, and easy to validate.
Recommended expectations:
- one pull request should address one logical change
- use a clear title that explains the purpose
- include the following in the description:
- background and problem statement
- key changes
- impact scope
- validation method
- include screenshots or recordings for UI changes when helpful
- explicitly mention risk and rollback notes for compatibility, data, or build-chain changes
Pull requests merged into dev should generally use Squash and merge.
Reasons:
- keeps
devhistory readable and easier to audit during active iteration - maps each PR to a single integration commit on
dev - reduces cherry-pick and conflict cost before creating
release/*
Because external pull requests are merged directly into dev, maintainers should treat dev as the source branch for daily collaboration and release preparation.
Before a release, create a release branch from dev, for example:
git checkout dev
git pull
git checkout -b release/v0.6.0
git push -u origin release/v0.6.0When release preparation is complete, merge the release branch back into main and create a tag:
git checkout main
git pull
git merge release/v0.6.0
git push
git tag v0.6.0
git push origin v0.6.0After the release, sync main back into dev so the next iteration starts from the released code line:
git checkout dev
git pull
git merge main
git pushKeep commit messages clear and easy to audit.
Recommended format:
emoji type(scope): concise description
Examples:
🔧 fix(ci): fix DuckDB driver toolchain on Windows AMD64
✨ feat(redis): add Stream data browsing support
♻️ refactor(datagrid): optimize large-table horizontal scrolling and rendering
- Please include validation results for documentation, build-chain, or driver compatibility changes
- For larger changes, opening an issue or draft PR first is recommended
- Maintainers may ask contributors to narrow the scope if the change conflicts with the current project direction
Thank you for contributing.