Conventional Commits

Convention for meaningful & machine-readable Commit Messages

Conventional Commits Format

<type>[optional scope]: <description>
 
[optional body]
 
[optional footer(s)]

Subset of possible Labels

LabelsDescription
featpatch a bug (related to PATCH in Semantic Versioning)
choreintroduce a feature (related to MINOR in Semantic Versioning)
docschanges to documentation
stylenon-functional changes to appearance
refactornon-functional changes

Remarks

  • I’ve adopted the Convention Angular uses, without conforming to Semantic Versioning
  • Having to think which label to use trains yourself to think about your commits more
  • It also enforces separation of different types of changes

Examples

docs(REAMDME): add CI badges
fix(backend): Spring 6 CSRF
chore(frontend): update weblate to 0.8
 
# commit with a breaking change
feat(app): revamp order process
 
BREAKING CHANGE: public interface changes for api v1 /orders

References