パッチの投稿

機能の拡張やバグ修正のためにパッケージを変更した場合は、 その変更をコミュニティに寄贈するべきです (ライセンスによってはそれが強制されることもあります。また、一般的に、 そうしないことはモラルに悖るものとみなされています)。

パッチを作成する前に、パッチを当てるべき最新のソースを次のようにして CVS から取得してください(この例では、パッケージ名は Foo_Bar とします)。

cvs -d:pserver:cvsread@cvs.php.net:/repository login

パスワードは phpfi です。

cvs -d:pserver:cvsread@cvs.php.net:/repository co pear/Foo_Bar
最新のソースが取得できたので、対応するファイルを編集します。
PEAR 標準コーディング規約 に合致するようにしてください。

コードに追加・変更を行ったら、テストしてください。注意深くテストが行われていない コードは受け入れられません。新しいコードにバグが無いことを確信したら、 次のコマンドで unified 形式の diff を作成します。
cd pear/Foo_Bar
cvs diff -u >Foo_Bar.diff
作成された .diff ファイルが、あなたのパッチです。 この diff を見ると変更点を簡単に確認することができるのです。

次のステップは、パッチの投稿です。 これには、基本的に二通りの方法があります。 最初の方法は、当該パッケージについてのバグレポートを作成してパッチを投稿することです。 これを行うには、pear.php.net 上のパッケージのホームページに行き、 ページの上のほうにあるタブ "Bugs" をクリックします。 もうひとつの方法は、パッケージのメンテナに Cc をつけて、 pear-dev@lists.php.net にメールを書くことです。 メールの件名は、 '[Patch]' からはじめて、パッチの投稿であることを判りやすくすると良いでしょう。 また、パッチの内容の詳しい説明も書いてください。 .diff ファイルをメールに添付するのを忘れないように。 パッケージのメンテナ名は、通常、ソースファイルのヘッダに記載されています。 メールアドレス以外の情報は、http://pear.php.net/ のパッケージ情報のページで見られます。

注意 Outlook や Outlook Express を使っている場合は、diff ファイルの拡張子を .txt へ変更してください。Outlook の MIME 形式の検出は、ファイルの拡張子を 見ており、MIME 形式が text/plain でない添付ファイルは メーリングリストのソフトにより拒否されるためです。

注意 変更がすばらしいものであっても、パッチに後方互換性が無ければ、 メンテナは困ってしまうでしょう。 バグ修正は、パブリックな API を大幅に変更することの無いように行うべきです。 後方互換性を保つことがまったく不可能な場合や、 著しい機能向上をもたらす場合だけは、API を変更しても認められるでしょう。