Conventional Commits
Commit mesajları için bir gelenek: type(scope): description — örneğin feat(auth): add OAuth2 support.
Türler: feat, fix, chore, docs, refactor, test, perf, build, ci. Türden sonra gelen ! ya da gövdedeki BREAKING CHANGE: uyumsuz bir değişikliği belirtir. semantic-release, release-please ve changesets gibi araçlar geçmişi okuyup SemVer'i yükseltir ve changelog'u kendiliğinden üretir.
Herkesin sevdiği bir şey değil: eleştirenlere göre türler çoğu zaman keyfî, geçmiş ise gürültülü olur. Ama sürümleri otomatikleştirmek ya da git log --grep="^feat" ile süzmek isteyenler için eşsizdir.