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を採用するチームが、フォーマットを説明し、実際の例を示し、それを実施するツールをリストするコントリビューティングガイドの明確なセクションを必要としている場合。

試してみる — CONTRIBUTING.md Generator

フルツールを開く