機能の拡張やバグ修正のためにパッケージを変更した場合は、 その変更をコミュニティに寄贈するべきです (ライセンスによってはそれが強制されることもあります。また、一般的に、 そうしないことはモラルに悖るものとみなされています)。
パッチを作成する前に、パッチを当てるべき最新のソースを次のようにして 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 |
コードに追加・変更を行ったら、テストしてください。注意深くテストが行われていない コードは受け入れられません。新しいコードにバグが無いことを確信したら、 次のコマンドで unified 形式の diff を作成します。
cd pear/Foo_Bar cvs diff -u >Foo_Bar.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 を変更しても認められるでしょう。