リリースごとにCHANGELOGをもれなく書くのは結構な手間です。 そこでcommit時にコミットログとしてCHANGELOGを記載しておき、リリース時にそれをまとめて出力することでその手間を削減します。
conventional-changelogを使ってCHANGELOG.mdを生成する方法について記載します。
事前準備
Node.jsのインストール(詳細はここでは割愛)
conventional-changelogのインストール
$ sudo npm install -g conventional-changelog
プロジェクトの設定
package.jsonというファイルをプロジェクトのトップディレクトリに配置します。 そして、以下のように、package.jsonにname, version, respsitoryを記載します。
- package.json
{ "name": "SampleApp", "version": "1.2.0", "repository": { "type": "git", "url": "https://github.com/xxxx/xxxx" } }
CHANGELOG情報のコミット
commitする際にCHANGELOGにのせる場合は、指定のフォーマットでcommitログ記載します。
angular, atomなど、プロジェクトによって独自のフォーマットが使われていて好みのものを利用します。
詳細はこちらを参照してください。 https://github.com/ajoslin/conventional-changelog/tree/master/conventions
CHANGELOGの生成
package.jsonを置いたのディレクトリ上で以下のコマンドを実行します。 (eslintのところはフォーマットによって変わります)
$ conventional-changelog -p eslint -i CHANGELOG.md -w
そうするとCHANGELOG.mdが生成されます。
ワークフロー
その後は、以下のようなワークフローでCHANGELOGを生成します。