Git Flow and contribution workflow
Rill uses Git Flow for release management with Conventional Commits.
Branch structure
| Branch | Purpose |
|---|---|
main | Stable releases |
develop | Integration branch |
feature/* | New features (branch off develop) |
release/* | Release candidates (branch off develop) |
hotfix/* | Urgent fixes (branch off main) |
Workflow
Setting up
git clone https://github.com/DigitalRats/rill
cd rill
git flow init -d
Creating a feature
git flow feature start my-awesome-effect
# ... work, commit, test ...
git flow feature finish my-awesome-effect
Preparing a release
git flow release start 0.7.0
# update versions in Cargo.toml
cargo test --workspace
git flow release finish 0.7.0
git push --all origin
git push --tags origin
Hotfix
git flow hotfix start 0.6.1
# fix, commit, test
git flow hotfix finish 0.6.1
git push --all origin
git push --tags origin
Commit conventions
<type>(<scope>): <description>
[optional body]
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(core): add ParameterId with validation
fix(automation): prevent crash when LFO frequency is zero
docs(readme): add git flow section
Versioning
All crates in the workspace version synchronously. Breaking changes, new features, and patches bump together.