読者です 読者をやめる 読者になる 読者になる

「CPAN Author になったよ」のつづき

先日のエントリ「CPAN Author になったよ」のつづきです。

これが公開されたということは、Niigata.pm 居酒屋LT 2012 秋の陣 : ATNDが開始されているのでしょう。きっと。

CPAN Author になるまでの手順

さて、ずっと敷居が高いと思っていたCAPN Authorになるまでの手順ですが、実際はこんな感じです。

  1. PAUSEにユーザー登録
  2. CPANにモジュール登録

とっても簡単ですね。

PAUSE にユーザー登録

  1. PAUSERequest PAUSE accountからアカウント発行申請を行います。

    このとき"A short description of why you would like a PAUSE ID"の項目が重要です。Perlに対する熱い思いのたけをぶつけてみましょう。

    あまり変なことを書くと申請を蹴られる場合があるそうなので、ちょっと真面目に書きましょう。

  2. 無事にアカウントが発行された場合は、先ほど登録したメールアドレス宛てにメールが届きます。

    再度PAUSEのページにアクセスし、Change Passwordからパスワードの変更を行いましょう。

  3. つづいて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
    

    しばらくするとCPANに登録されます。CPAN Authorデビューですぞ。

  • 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";
}