PEAR package の作成と公開までの手順について,
(たまにしかやらないことは忘れてもいいように)ここにメモしておきます.
例として Services_Delicious のパッケージ作成・公開手順:
0. テスト
まずはテストが正常に通る状態であることを確認.
Services_Delicious では .phpt 形式のテストを用意してあるので,これを実行します.
$ cd /path/to/tests # テストのあるディレクトリに移動 $ pear run-tests Running 3 tests PASS Services_Delicious:bug#8528[bug8528.phpt] PASS Services_Delicious:Req#7293[req7293.phpt] PASS Services_Delicious:Req#8044[req8044.phpt] TOTAL TIME: 00:07 3 PASSED TESTS 0 SKIPPED TESTS
テストを個別に実行したいときは,実行するテストを指定します:
$ pear run-tests bug8528.phpt
1. パッケージ定義ファイル(package.xml)の検証
$ cd /path/to/package # パッケージのあるディレクトリに移動 $ pear pv Analyzing Delicious.php Validation: 0 error(s), 0 warning(s)
pear pv は pear package-validate の省略形です.このコマンドによって package.xml 中のタグの閉じ忘れなどの構文エラーをチェックできます.
2. Tarball を作成
$ pear package
Services_Delicious-0.5.0.tgz が出来上がります.
3. パッケージに問題がないか検証
パッケージ情報の確認:
$ pear info Services_Delicious-0.5.0.tgz About Services_Delicious-0.5.0 ============================== Provides Classes: Services_Delicious Package Services_Delicious Summary Client for the del.icio.us web service. (中略) Version 0.5.0 Release Date 2006-09-05 Release License PHP License Release State beta Release Notes - Fixed bug #8528: Invalid response code Release Deps Package PEAR == Package HTTP_Request == Package XML_Serializer >= 0.12.0 ext openssl == Package.xml Version 1.0 Packaged With PEAR 1.4.9
Release Date, Release Notes をよく確認.
インストールパスの確認:
$ pear list Services_Delicious-0.5.0.tgz Contents of Services_Delicious-0.5.0.tgz ======================================== Package File Install Path docs/api.txt /usr/local/lib/php/doc/Services_Delicious/docs/api.txt examples/addPost.php /usr/local/lib/php/doc/Services_Delicious/examples/addPost.php (中略) examples/renameTag.php /usr/local/lib/php/doc/Services_Delicious/examples/renameTag.php Delicious.php /usr/local/lib/php/Services/Delicious.php
pear install したときにどこにファイルが配置されるか分かります.
おかしいところがあれば package.xml を見直します.
4. ローカルにインストール
パッケージを公開する前にまずはローカル環境にインストールします.
# pear install -f Services_Delicious-0.5.0.tgz
古いパッケージを上書きしてインストールするため -f オプションをつけてあります.
インストール後に以下の項目を確認します:
- 正しいファイル名か
- 正しいディレクトリ構成か
- 正しい場所にインストールされているか
5. 公開
公式なパッケージの場合:
PEAR website からアップロード→パッケージのページ確認(http://pear.php.net/package/Services_Delicious)→ PEAR-general メーリングリスト確認 → pear install で確認
非公式なパッケージの場合:
公開ディレクトリにパッケージファイルを置く→ pear install で確認