カスタムコミットタイプの使用
wip、hotfix、releaseなどのカスタムタイプでConventional Commitsを拡張する方法。カスタムタイプが適切なタイミングと設定方法を学びます。
Best Practices
詳細な説明
標準タイプの拡張
Conventional Commits仕様ではfeatとfixのみが必須ですが、ほとんどのプロジェクトは11の標準タイプを持つAngularの規約を採用しています。一部のチームはさらに進んで、特定のワークフローに合わせたカスタムタイプを追加します。
一般的なカスタムタイプ
| カスタムタイプ | 目的 | 使用タイミング |
|---|---|---|
wip |
作業中 | フィーチャーブランチ;マージ前にスカッシュ |
hotfix |
緊急本番修正 | 通常のリリース外でデプロイされる緊急パッチ |
release |
リリース準備 | バージョンバンプ、変更ログの更新 |
deps |
依存関係の更新 | chore(deps)の代替 |
security |
セキュリティパッチ | CVE修正、脆弱性の修復 |
i18n |
国際化 | 翻訳ファイル、ロケールサポート |
a11y |
アクセシビリティ | ARIAラベル、キーボードナビゲーション、コントラスト |
ux |
ユーザーエクスペリエンス | 機能ではないUI/UXの改善 |
リンターでのカスタムタイプの追加
Optionsパネルでカンマ区切りのカスタムタイプを入力します:
wip, hotfix, release, deps, security
これらはデフォルトリストに追加されます。リンターは標準またはカスタムタイプのいずれかを使用したコミットを受け入れます。
チームガイドライン
カスタムタイプを追加する場合、プロジェクトのCONTRIBUTING.mdまたはコミット規約ガイドに文書化してください:
## コミットタイプ
標準タイプ:feat, fix, docs, style, refactor, perf,
test, build, ci, chore, revert
カスタムタイプ:
- `wip`:作業中(マージ前にスカッシュ)
- `hotfix`:緊急本番修正
- `deps`:依存関係の更新
ツール設定
commitlintを使用している場合、commitlint.config.jsでカスタムタイプを設定します:
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor',
'perf', 'test', 'build', 'ci', 'chore', 'revert',
'wip', 'hotfix', 'deps'
]]
}
};
カスタムタイプを避けるべきとき
- 変更が標準タイプに適合する場合は、標準タイプを使用してください。
- あまりにも特定のタイプは避けてください:
button-style-fixはfix(ui)の方が良いです。 - 標準タイプと重複するタイプは避けてください:
bugfixはfixと重複します。
ユースケース
標準タイプに適合しない繰り返し発生するコミットパターンがある場合にカスタムコミットタイプを追加します。これは、hotfixブランチ、国際化スプリント、自動化された依存関係更新ボットなどの特定のワークフローを持つチームで一般的です。