CONTRIBUTING.mdでのConventional Commits
CONTRIBUTING.mdにConventional Commitsセクションを追加。タイププレフィックス、スコープ、破壊的変更、コミットメッセージによる自動changelog生成について解説。
Commit Formats
詳細な説明
Conventional Commitsの採用
Conventional Commits仕様は、コミットメッセージの軽量な規約を提供します。セマンティックバージョニングとうまく連携し、自動的なchangelog生成を可能にします。
フォーマット
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
一般的なタイプ
| タイプ | 説明 | バージョンバンプ |
|---|---|---|
feat |
新機能 | Minor |
fix |
バグ修正 | Patch |
docs |
ドキュメント変更 | なし |
style |
フォーマット、セミコロン欠落 | なし |
refactor |
修正でも追加でもないコード変更 | なし |
perf |
パフォーマンス改善 | Patch |
test |
テストの追加または修正 | なし |
build |
ビルドシステムまたは依存関係の変更 | なし |
ci |
CI設定の変更 | なし |
chore |
その他の変更(例:.gitignore) | なし |
スコープ
スコープはコードベースの影響を受ける領域を絞り込みます:
feat(auth): add Google OAuth login
fix(api): handle timeout in fetch wrapper
docs(readme): update badge URLs
破壊的変更
タイプ/スコープの後に!を使用するか、BREAKING CHANGE:フッターを使用:
feat(api)!: change response format to JSON:API
BREAKING CHANGE: APIレスポンス構造が変更されました。
以前: { data: [...] }
新: { data: [...], meta: {...}, links: {...} }
実施ツール
- commitlint -- 規約に対してコミットメッセージをリント
- husky -- コミット時にcommitlintを実行するGitフック
- semantic-release -- コミットに基づく自動バージョニングとchangelog
- standard-version -- Conventional changelog生成
CONTRIBUTING.mdへの追加
フォーマット、タイプの表、プロジェクトからの3〜4個の実際の例、実施に使用するツールへのリンクを含めます。仕様にリンクするだけよりも有用です。
ユースケース
初めてConventional Commitsを採用するチームが、フォーマットを説明し、実際の例を示し、それを実施するツールをリストするコントリビューティングガイドの明確なセクションを必要としている場合。