CPAN のリリース管理を Minilla に変えてみる
$ cpanm Minilla
で入れると minil コマンドができる。既存レポジトリで (ここでは Test-Name-FromLine) minil migrate すると以下のようになる。
$ minil migrate [Test-Name-FromLine] $ perl -I/Users/cho45/project/Test-Name-FromLine/lib -I/Users/cho45/lib/perl -I. Makefile.PL Cannot determine perl version info from lib/Test/Name/FromLine.pm Writing Makefile for Test::Name::FromLine Writing MYMETA.yml and MYMETA.json [Test-Name-FromLine] $ make metafile Using Module::Build (Because this distribution uses xs) [Test-Name-FromLine] $ git add cpanfile Detecting project name from directory name. Retrieving meta data from lib/Test/Name/FromLine.pm. Name: Test::Name::FromLine Abstract: Auto fill test names from caller line Version: 0.09 [Test-Name-FromLine] $ git add -f LICENSE [Test-Name-FromLine] $ git rm --quiet Makefile.PL [Test-Name-FromLine] $ git rm --quiet MANIFEST [Test-Name-FromLine] $ git rm --quiet MANIFEST.SKIP [Test-Name-FromLine] $ git rm --quiet .shipit [Test-Name-FromLine] $ git rm --quiet xt/99_pod.t [Test-Name-FromLine] $ git rm --quiet README [Test-Name-FromLine] $ git add .gitignore [Test-Name-FromLine] $ git add .
既存の xt/podspell.t は消えなかったので消しとく。
Changes のフォーマットを Chagelog 形式にしていたのだけれど (vim で \o で簡単に新規エントリが書けるので……)、この形式だと minil release 時に怒られるので、新しい分からは変えることにする。Changelog 形式にしていたのは日付を手書きするのが面倒だったからなので、Minilla を使えばそれは解消される。フォーマット自体にこだわりはないので主流にあわせられるならあわせる気持ち。
PERL_MINILLA_SKIP_CHECK_CHANGE_LOG=1 にすればチェックを飛ばすことができるけど、気持ちが良くないのでそうしなかった。途中でフォーマットが変わるのもだいぶ気持ちが良くないのでなんともいえない。
すなわち
{{$NEXT}} - Append line number to exiting comment
みたいのを冒頭に書く。
$ minil release
すると新規バージョンを訊かれるので答える。これで release される…… はずなんだけど、Minilla は CPAN::Uploader を使っている。これは ~/.pause ファイルを読むのだけれど、cpan-upload-http より厳密なフォーマットを要求するので書きかえた (= があってはダメ)。
無事に upload までうまくいくと、git でタグが打たれて勝手に push された。こんにちは Minilla ありがとう ShipIt。