Conventional Commits
コミットメッセージの規約で、形式は type(scope): description。例:feat(auth): add OAuth2 support。
type には feat、fix、chore、docs、refactor、test、perf、build、ci がある。typeの後ろの ! や本文の BREAKING CHANGE: は破壊的変更を示す。semantic-release、release-please、changesets などのツールが履歴を読み、SemVerの更新と変更履歴の生成を自動化する。
万人に好まれてはいない。typeが恣意的になりがちで履歴がうるさくなる、という批判もある。それでもリリースを自動化したい場合や、git log --grep="^feat" で絞り込みたい場合には代えがたい。