ちなみに

火曜日の空は僕を押しつぶした。

CPAN に姉を公開した話

f:id:Sixeight:20150218174131p:plain

最近は Perl を勉強していて、続・初めてのPerl 改訂第2版 を読んでいたりしました。 最後の方の練習問題で CPAN にモジュールをアップロードするのがあったので、お遊びのモジュールを公開してみた。

 題材はなんでも良かったので、さいきん話題の姉を作ってみた。

PAUSE への登録

モジュールを CPAN に公開するには、PAUSE (The [Perl programming] Authors Upload Server) への登録が必要。名前の通りこのサーバーにモジュールをアップロードすることになる。

Request PAUSE account から必要な情報を入力して、しばらく待つと登録が完了した旨のメールが届く。そこに記載されている初期パスワードを使ってログインしてパスワードを変更しておく。登録時に入力した Desired ID がユーザ名になるみたい。

cpan.org のメールアドレスが発行されるが、単体では受け取れないのでプロフィールページから転送設定をしておく。このアドレスで Gravatar とか登録する必要があるので転送設定は必須。(参考: こんな僕が CPAN Author (一応) になるまで。 - (゚∀゚)o彡 sasata299's blog)

モジュールを作る

Minilla を使うとひな形の作成からビルドまでやってくれて楽ちん。

$ cpanm Minilla
$ minil new Acme::Ane
$ vim lib/Acme/Ane.pm # and so on
$ minil test

コードを書いて、ドキュメントとテストも書いたら公開準備をする。 Changes のバージョンは自動で更新されるので書かない。{{$NEXT}} にリリース時のバージョンが入るので、その下に変更点を書いておくと良さそう。

git add されていないファイルはビルドの対象にならないので、テストもされないというのにはまったので注意したい。

公開

まずは PAUSE のユーザー設定を ~/.pause に作成する。

Config::Identity で読み込まれるので書き方は以下のようにする。

user USERNAME
password your_secret_password

これで準備が整ったのでリリースする。

$ minil release

バージョンがこれであってるか聞かれて、最後に CPAN にアップロードするか聞かれる。 完了するとタグを作ってくれて push までやってくれる。もちろん PAUSE へのアップロードも完了している。

しばらく待つと PAUSE にインデクスされた旨のメールが届いて、MetaCPAN にも表示される。

補足

本当は公開前に PrePAN と呼ばれるサイトに投稿して、識者のレビューを受けるのが良いとのこと。(参考: 「 DISられないCPANizeを目指して (PrePAN - Introduction to a website to request for reviews of Perl modules)」の詳細 - YAPC::Asia Tokyo 2011 [Oct 13, 14, 15])

公開したモジュール

妹なのに姉になれて便利。

use Acme::Ane;

my $imouto = Imouto->new;
my $ane = Acme::Ane->new($imouto);

if ($ane->is_ane) {
  say "姉";
}

ユーザーの声

追記

妹も出来ました。