コミットメッセージのフォーマット
conventional-changelogはAngularJSのGit Commit Guidelinesに準拠しています。
ログを出力するためのコミットメッセージのフォーマットは以下になります。
<type>(<scope>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer>
typeはそのコミットが新規実装なのかバグフィックスなのか、などを判別するためのラベルになります。
typeには以下のいずれかを指定します。
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- refactor: A code change that neither fixes a bug or adds a feature
- perf: A code change that improves performance
- test: Adding missing tests
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
scopeには修正した対象がわかるように記述します。
例えばAngularJSのリポジトリを例に見ると、scopeにはモジュール名が入ることが多いようです。
feat($cookies): allow passing cookie options The `put`, `putObject` and `remove` methods now take an options parameter where you can provide additional options for the cookie value, such as `expires`, `path`, `domain` and `secure`. Closes #8324 Closes #3988 Closes #1786 Closes #950
メッセージの書き方については他にも決まりごとがあるので、詳しくはこちらを見てください。
conventional-changelogでログを生成する
今回はchangelogのチュートリアルなので試しに適当にコミットしていき、最後にtagを打ちます。このタグの位置が、次回logを出力する起点にもなります。
$ git tag 20150528
最後に先ほど作成したchangelog.jsと同じ階層に移動して、コマンドを実行してみましょう。同じ階層にマークダウンが出力されているでしょうか?
$ node changelog.js
私の手元では以下のようなマークダウンを生成することができました。
<a name“1.0.0“></a> ## 1.0.0 (2015-05-28) #### Bug Fixes * **restangular-sample:** headタグの閉じる位置を修正 ([e14d4abd](https://github.com/i78s/ligblog-sample/commit/e14d4abd))
いかがでしたでしょうか?
コミットメッセージのフォーマットを覚えるまで少し面倒かもしれませんが、フォーマットだけ気をつければ変更点を箇条書きで列挙することができます。リリース前やリリース後のチェックがとても楽になりますね。ログから直接そのコミット内容の修正内容へリンクで飛べるのがとても便利で、気に入っています。
【エンジニアいなばのアウトプット】
※ WebAPIドキュメント作成サービス「Apiary」を使ってWebアプリ開発を高速化しよう
※ Markdownでいい感じのプレゼン用スライド資料を作れる「Deckset」を使ってみよう
※ AngularJSのngResourceモジュールをRestangularに置き換えてみた
※ AngularJS ui-routerを使って認証機能を実装してみよう
※ LIG・SHIFTBRAIN・Uniba合同LT会でのLTデビュー前に準備した6つのこと
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。