Kawa.netxp
[Perl] 作成したモジュールをCPANで公開する手順
久しぶりに
Perl モジュールを作成してみた
ので、せっかくなので CPAN にアップロードしてみました、の手順をメモ。
もともと、2002年に CPAN へのアップロードサイト PAUSE 用のアカウントは
作ってあったけど、実際に自作モジュールを CPAN で公開してもらったことはなかったので、
実は今回が初挑戦でした。
もし↓に間違っている点がありましたら、ご指摘いただけると幸いです。>識者の方
配布用のモジュールを作成する
まず第一歩は、
perlnewmod - 新しいモジュールを配布するには
を熟読すること。
モジュール .pm ファイルと、
そのアーカイブ .tar.gz ファイル
を作成するのが最初です。
中身は以下のようなファイル構成になりました。
lib/XML/TreePP.pm # Perlモジュール本体
Makefile.PL # ほぼh2xsで生成したそのまま
MANIFEST # 配布ファイル一覧
META.yml # いつの間にか自動生成されたもの
README # README(今回はPODから生成)
t/force_array.t # Test::Moreを使用したテストスクリプト
t/parse.t #
t/parsefile.t #
t/parsehttp.t #
t/write.t #
t/family.xml # テストスクリプト用のXMLファイル
t/index.rdf #
テストスクリプトの書き方は
Test::More - テストを書くためのもう一つのフレームワーク
が参考になります。
とりあえず、make testが通るようにしておけばOKだろう。
Request PAUSE account
PAUSE とは、「The Perl Authors Upload Server」のこと。
CPAN に掲載されるモジュールは、ここからアップロードして登録します。
まずは
Request PAUSE accountにアクセスして、アカウント発行申請をする。
- Full name
「Unicode Characters OK」と書いてあるけど、ローマ字で書いたほうが無難。
『ä』とか『é』とかを書いても恐らく認識可能だが、
漢字を書いたら海外の人には全く読めないので。
- Email
メールアドレス。メールでパスワードが送付される。
- Web site
ホームページのURL。
- Desired ID
CPAN/PAUSE のユーザ ID(3〜9文字)。
ftp://ftp.perl.org/pub/CPAN/authors/id/D/DA/DANKOGAI/ の
『DANKOGAI』に相当する部分。慎重に検討を!
- A short description of what you're planning to contribute
どんなPerlモジュールを公開していこうと考えているか英語で簡単に説明する。
Account≫Change Password
アカウント+パスワードが発行されたら、
早速 PAUSE の
Change Password にアクセスして、パスワードを変更する。
ログイン認証は、ブラウザの BASIC 認証を使っているようです。
Account≫Edit Account Info
PAUSE に個人情報を登録する。
- Full Name
UTF-8対応なので日本語で書いてもOKだが、CPANの中の人に漢字入りメールを
送っても仕方がないので、ローマ字で書いたほうが無難そう。
- ASCII transliteration of Full Name
Full Name↑をローマ字で書いた場合は空欄でOK。
- Publicly visible email address (published in many listings)
公開されるメールアドレス。SPAMが来る可能性があるの?
- Secret email address only used by the PAUSE, never published.
公開しない連絡先メールアドレス。
- Homepage or any contact URL except mailto:
自分のホームページのURLを記載する
- The email address〜forward mail to ...
デフォルト「my public email address」のままでOK。
User menu≫Files≫Upload a file to CPAN
make distで作成した .tar.gz ファイルを
PAUSE
にアップロードする。
- Target Directory
通常は空でOK。
- If your browser can handle file upload,〜
.tar.gz ファイルをブラウザからアップロードする場合はこちら。
- If you want me to fetch a file from an URL,〜
.tar.gz ファイルを自分のホームページからCPANにダウンロードさせる場合はこちら。
- If you have already uploaded the file to PAUSE,〜
選択しないでOK。
ファイルを送信すると、2通のメールが届きます。
『Notification from PAUSE』は PAUSE サーバへの .tar.gz ファイルの到着通知で、
『CPAN Upload: 〜』がデータベースに登録された通知のようです、多分。
User menu≫Files≫Delete Files
アップロードしたファイルの一覧が表示される。
CHECKSUMS ファイルは自動的に生成される。
削除するためじゃなくて、アップロード確認用にも使えそう。
Modules≫Register Namespace
アップロードしたファイルを CPAN で採用してもらう申請手続き。
- Name of the module
モジュール名。Hoge-Pomu-0.01.tar.gz なら『Hoge::Pomu』になる。
基本的にルート直下ではなくて、『::』が1階層は入るモジュール名にして置いた方が無難。
- Module List Chapter
既存モジュールのカテゴリを参考にして
モジュールのカテゴリを選択する。
- 2) Perl Core Modules, Perl Language Extensions and Documentation Tools
- 3) Development Support
- 4) Operating System Interfaces, Hardware Drivers
- 5) Networking, Device Control (modems) and InterProcess Communication
- 6) Data Types and Data Type Utilities
- 7) Database Interfaces
- 8) User Interfaces
- 9) Interfaces to or Emulations of Other Programming Languages
- 10) File Names, File Systems and File Locking (see also File Handles)
- 11) String Processing, Language Text Processing, Parsing and Searching
- 12) Option, Argument, Parameter and Configuration File Processing
- 13) Internationalization and Locale
- 14) Authentication, Security and Encryption
- 15) World Wide Web, HTML, HTTP, CGI, MIME
- 16) Server and Daemon Utilities
- 17) Archiving, Compression and Conversion
- 18) Images, Pixmap and Bitmap Manipulation, Drawing and Graphing
- 19) Mail and Usenet News
- 20) Control Flow Utilities (callbacks and exceptions etc)
- 21) File Handle, Directory Handle and Input/Output Stream Utilities
- 22) Microsoft Windows Modules
- 23) Miscellaneous Modules
- 24) Interface Modules to Commercial Software
- Development Stage
とりあえず『b -- beta』にしておきましたが、よく分かりません。
- Support Level
とりあえず『d -- developer』にしておきましたが、よく分かりません。
- Language Used
XS なども使わずに Perl のみ使用したモジュールなので、
『p -- perl』を選択する。
- Public license
ふつうは『p -- Standard-Perl』でしょうか。
- Description in Module List
44字以下の英語で簡単なモジュールの説明文を書く。
- Places where this module has been or will be discussed publicly
メーリングリストを開設済ならそのメールアドレスとかを書くのかな。
- Modules with similar functionality
似た機能を持つモジュールが既にあれば、名前を並べておくる。
- Rationale
モジュール名の選択理由、実装方法のユニークさ、
そのモジュールをCPANに採用されたい理由(意気込み)などを英語で書く。
(日本人にはここが一番厳しいところでしょうか)
まず『Module submission 〜』という申請完了通知メールが届きます。
続けて『PAUSE indexer report 〜』というメールが届きます。
詳しい意味は分かりません。
既存のモジュールと似たモジュールをアップロードすると、
What's different with "use Pomu::Hoge"?
とか聞かれてしまうことになるので、よく考えること。
CPAN 経由でインストール。
アップロードしてから数時間経つと、中の人がテストをしてくれたのか、
本番サーバに反映されます。
モジュール名で検索をかければ、
POD を閲覧できるようになります。
めでたく
perl -MCPAN -e shell
経由でインストール可能になりました!!
ただし、CPAN/Config.pm ファイルで CPAN のダウンロード元にミラーサーバを指定しているときは、
CPAN 本番サーバにはファイルが存在していても、
ミラーサーバにはまだ到達していない場合があります。
ミラーリングされるまでもうちょっと待つか、CPAN/Config.pm ファイルを修正する必要があります。
その用他用ページへ用リンク
トラックバックURL:http://www.kawa.net/service/tb/ajaxtb.cgi/works/perl/tips/cpan.html
Kawa.netxp
© Copyright 2006 Yusuke Kawasaki