Git Flow and contribution workflow

Rill uses Git Flow for release management with Conventional Commits.

Branch structure

BranchPurpose
mainStable releases
developIntegration 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.