conventional-changelog(npm)をRuby pruductから使う

conventional-changelogにactiveなメンテナーが増えて、v0.1.0に上がって以降(2015-09-25 時点でv0.4.3)だいぶ使いやすくなっている。
Ruby productから使う時の使い方をまとめた。

下記エントリーの続き。

bin/changelogを作って使う、と以前書いていたけど、設定ファイルだけ書いて、あとはコマンドラインのconventional-changelogから使えるようになった。実際に使っている例 parse_gemspec-cli

具体的にはこんなpackage.json書いて、npm run changelogする。

{
  "devDependencies": {
    "conventional-changelog": "0.4.3",
    "urijs": "^1.16.1"
  },
  "scripts": {
    "changelog": "conventional-changelog -i changelog.md --overwrite --preset angular --context .conventional-changelog.context.js"
  }
}

contextの指定で、無指定だとpackage.json読んでバージョンやリポジトリのurl取得するところを、Rubyプロダクト用に書き換えてやれば良い。
設定すべき値はconventional-changelog-writer のオプション。これを.conventional-changelog.context.jsにかく。ファイル名はどうでもいい。

'use strict';
var execSync = require('child_process').execSync;
var URI = require('urijs');

var gemspec = JSON.parse(execSync('bundle exec parse-gemspec-cli parse_gemspec-cli.gemspec'));
var homepageUrl = gemspec.homepage;
var url = new URI(homepageUrl);
var host = url.protocol() + '://' + url.authority();
var owner = url.pathname().split('/')[1];
var repository = url.pathname().split('/')[2];

module.exports = {
  version: gemspec.version,
  host: host,
  owner: owner,
  repository: repository
};

gemspec を読んで json を吐き出す parse_gemspec-cli gemを作った。パッケージはparse_gemspec-cli、コマンドは parse-gemspec-cli。今のところ name, version, homepage しか取り出せないけど、changelogの用途にはこれで良い。

これでgemを書くときにもchangelog環境が快適になった。

$ conventional-changelog --help
Options
(snip)
    -c, --context             A filepath of a javascript that is used to define template variables
    --git-raw-commits-opts    A filepath of a javascript that is used to define git-raw-commits options
    --parser-opts             A filepath of a javascript that is used to define conventional-commits-parser options
    --writer-opts             A filepath of a javascript that is used to define conventional-changelog-writer options

conventional-changelogのコマンドが、細かくmoduleに分割したあとにも、使うmoduleの設定書いたうえでCLIツールからそのまま使えるの、よく出来ている。

広告

conventional-changelog(npm)をRuby pruductから使う」への1件のフィードバック

  1. ピンバック: *.gemspec ファイルをいい感じにparseするgem書いた | 實松アウトプット

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中