「CPAN Author になったよ」のつづき
先日のエントリ「CPAN Author になったよ」のつづきです。
これが公開されたということは、Niigata.pm 居酒屋LT 2012 秋の陣 : ATNDが開始されているのでしょう。きっと。
CPAN Author になるまでの手順
さて、ずっと敷居が高いと思っていたCAPN Authorになるまでの手順ですが、実際はこんな感じです。
とっても簡単ですね。
PAUSE にユーザー登録
PAUSEのRequest PAUSE accountからアカウント発行申請を行います。
このとき"A short description of why you would like a PAUSE ID"の項目が重要です。Perlに対する熱い思いのたけをぶつけてみましょう。
あまり変なことを書くと申請を蹴られる場合があるそうなので、ちょっと真面目に書きましょう。
無事にアカウントが発行された場合は、先ほど登録したメールアドレス宛てにメールが届きます。
再度PAUSEのページにアクセスし、Change Passwordからパスワードの変更を行いましょう。
つづいてEdit Account Infoで名前やメールの送信先を登録します。
私の場合
- "Publicly visible email address" に username@cpan.org
- "Secret email address" に普段使っているメールアドレス
- username@cpan,org のメールを "my secret email address" へ転送する
な感じで設定しています。
CPANにモジュールを登録
PAUSEのUpload a file to CPANからmake distしたtarballをアップロードしてもよいのですが、ここでは Module::Setup + Carton + ShipIt な環境で開発・登録するまでの簡単な流れを解説します。
Carton使っているのでちょっと特殊かもしれません
Mosule::Setupでモジュールの雛形をつくる
$ module-setup My::Module::Name $ cd My-Module-Name/
.shipit とか作ってくれます。ありがや。
開発する
ぶりぶり開発しましょう。
依存モジュールはcartonでインストールしちゃいます。 MANIFEST.SKIPにcatron.lockや.carton/などを加えておきましょう。
テストも忘れずにね。(重要)
ShipIt環境の用意
My-Module-Name$ wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/cpan-upload-http-2.4.tar.gz My-Module-Name$ carton install ShipIt cpan-upload-http-2.4.tar.gz LWP::UserAgent
~/.pause がない場合は用意します。
My-Module-Name$ cat <<EOF > ~/.pause use <username> password <password> mailto <username@cpan.org> EOF/ My-Module-Name$ chmod 600 ~/.pause
ShipItのテスト
My-Module-Name$ carton exec -Iblib/lib -Iblib/arch -Iinc -I../local/lib/perl5 -- shipit --dry-run
ビルド時にカレントディレクトリが変わる(My-Module-Name-X.XX)ので、ライブラリパスには注意が必要です。
加えて、テストのなかでcartonでインストールされたコマンドを利用する場合は、local/binがPATHに含まれないためにエラーとなります。必要な場合は実行時に追加しましょう。
ShipIt!!
--dry-run で問題がなければ shipit します。
My-Module-Name$ carton exec -Iblib/lib -Iblib/arch -Iinc -I../local/lib/perl5 -- shipit
Register Namespace ?
Register Namespaceでモジュールのネームスペース申請を行うことができます。申請が通ると CPAN のカテゴリ別ページに登録されます。
...ですが、モジュール名が誤解を与えたりするようなものでもない限り、とくに申請しなくても良いかもしれません。
CPAN Author のメリット
@typesterさんとまったく同じですが...
- cpanやcpanmでのインストールが簡単
- capn.testers が様々なバージョン、プラットフォームでテストしてくれる(だたしキチンとテストを書いている場合)
- 人に見られると思うとキチンと書くようになる(かも)
- さまざまな人の意見やパッチがもらえる(かも)
ホント、そのとおりだと思います。
DISには感謝
DISられるということは、それだけドキュメントやコードをを読んでいただいている証拠...だと思うので、DISには感謝しましょう。
何事からも学び、そして感謝するのです。謙虚な姿勢が大事なのです。アザマス!!
まずは
PAUSEに登録だ!話はそれからだ!!
ところで
特定のプラットフォームのみ対応/非対応のモジュールってどうすればいいんですかね?
Makefile.PLでコケるようにして自己主張すればいいんですかね?
# Windows unsupported
if ( $^O eq 'MSWin32' || $^O eq 'cygwin' ) {
die "$^O unsupported";
}