新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2013-05-17

[Perl]せっかくだから俺はこのMinillaを選ぶぜ

タイトルの元ネタはこれ

本題。ここに書いてあるように、
https://twitter.com/ytnobody/status/335212752857616384
Minillaつかってみた記録&べた褒めするエントリです。(Minilla作者によるエントリはこちら

1週間くらいMinillaをつかってみましたが、これからPerlモジュールをつくるのなら、Minillaはおそらく最上のツールとして選択肢に上るべきだと思いますね。

CPANにはこれまでもいくつかのモジュール作成支援ツールが登録されてます。例をあげると、

ExtUtils::MakeMaker
Module::Build
Dist::Zilla
Module::Starter
Module::Setup (しばらくこれのデフォルトフレーバーを使ってた)

などなどあるわけですが・・・(にわかCPAN Authorな僕はこのくらいしかしらないんですけど、Dist::Zilla,Module::Starter,Module::SetupがMinillaと同じいわゆる「Authoring tool」なんでしょうね)

Minillaのいいとこ


サブコマンドの直感性の高さ


よく使いそうなminilサブコマンドをあげてみると、

・new
・build
・test
・release

と、一目でみて使い方がわかりそうなものが多いです。ざっくり言うと、

minil new New::Module

とかで新しいモジュールの雛形つくってくれて、

minil build

でcpanfileやらNew::Moduleあたりのファイルを元にBuild.PLやREADME.mdあたりをつくってくれで、(大まかなイメージ。あってるかな・・・)

minil test

でテストを走らせてくれる。で、

minil release

で、そのままCPANにモジュールをアップしてくれます。開発からリリースまでの一連の流れをminilコマンド一つで面倒見てくれます。すごい。

git(特にgithub)との親和性の高さ


例えばminil testするときに、git add されていないテストファイルは実行されません。これは一見不便なように思えますが、新しくテストを書く場合、proveあたりで新しいテストファイル単品を実行すればよく、git addしてからminil testすれば、テストのcommit漏れとかなくなるはず・・・だと思ってます。

あとminil release したときに、gitで新しいtag切ってくれるの、すごく楽できていいと思います。origin がgithubだったりしても、git push --tags してくれます。

そして前述してある通り、minil buildしたときにREADME.mdを自動で吐き出してくれるので、わざわざREADME.なんとかを自分で書く必要なく、二度手間を解消できます。(今までそんなことやってたの?って言われるとわりと辛いんですけどね)


過去の財産のMinilla対応がものすごく簡単


これがもっとも驚いた特長なのですが、既存のModule::Buildベースなモジュールの開発ディレクトリで

minil migrate

してあげると、そのままMinilla対応のモジュールに早変わり。もうあとはgit pushするだけでオッケーなところまでやってくれます。
また、ExtUtils::MakeMakerにも対応しているらしく、おそらく同じコマンドを実行するだけでMinilla対応できちゃうというわけです。

とまあ、ものすごくべた褒めしてきたわけですけど、実際そのくらいによくできてます。
若干ブラックボックスっぽいところも無いわけではないんですけど、minil helpで大体の動作とか説明されてたり(まだドキュメント未整備のものも有る様ですが、特にminil help migrateの内容は、minil migrate使用前に読んでおくと、納得してminil migrateを使うことができます。)して、そこまでブラックボックスというものでもないという印象を受けました。


間違いなく、「これ使っとくといいよ!」とおすすめできるツールでしたので、ブログにて紹介させていただいた次第です。

0 件のコメント: