詳細な解説と簡単に適用できるパッチは、ほかの開発者の作業を著しく向上させ、モジュールやコンポーネントをより安定した強力なものにすることができます。
このサイトのオープン・ソース・プロジェクトのメンバーではないが、メーリング・リストのアクセスを持っている場合は、プロジェクト開発者のメーリング・リストに自分の提案パッチに関するメッセージを掲示することができます。 (詳細は、 プロジェクトメーリングリストの購読を参照してください。)
プロジェクトのメンバーである場合は、寄稿するパッチが報告されているバグにすでに関連付けられているかどうかを判断するために、まずプロジェクトの課題データベースのクエリーを実行します。
既存の課題に自分のパッチが関連している場合は、課題の編集画面にある [ファイルを添付] フィールドを使ってパッチをサブミットし、[追加コメント] セクションにパッチに関する説明を掲示します。 (課題に変更を加えると、課題のオーナと CC リストにあるアドレスを持つユーザに E-Mail・メッセージが自動的に送信されることに注意してください。これらのユーザは、掲示したメッセージとパッチへのリンクを受信します。)
課題が存在しない場合は、パッチを新しい課題としてサブミットします。これには、課題追跡ページにある [課題の入力] にある [パッチ] リンクを使用します。 パッチファイルを新しい課題に添付します。 添付するステップは次のとおりです。
まず、最新バージョンのソースファイルに変更を加えているかどうかを確認します。これには、CVS を使って次のコマンドを実行します。
cvs diff -c > mypatch
これは、ソースのコンテキスト形式のパッチを取得します。これにより、パッチを適用しようとしているバージョン、ファイル名、変更の内容についての情報を含めるパッチ・ファイルが作成されます。パッチをこの方法で追跡すると、ほかのメンバーが簡単にパッチを探してテストすることができるようになります。
パッチを適用するには、適切なディレクトリに移動して次のコマンドを実行します。
patch < issuepatch.diff
パッチには、つねに次の情報を含めるようにしてください。
影響を受けるコードのセクションに責任を持つ開発者は、パッチを適用してバグを修正済みとしてマークするか (バグが登録されている場合)、パッチが安全ではない、問題を解決しない、初めから問題はない場合には、異議を返信します。 CVS のチェックインと同様に、課題データベースへのすべての変更通知は、自動的に正しい課題の担当者と CC リストにあるユーザおよび CVS のメーリング・リストに送信されます。これで、パッチが適用されたかどうかを監視することができます。 少くとも作業しているモジュールの CVS とメーリング・リストは、購読するようにしてください。
問題を解決する方法がはっきりしないが、問題の原因に思い当たることがある場合は、その考えを開発者のディスカッション・リストに掲示してほかのプロジェクト・メンバーの意見を募集したり、修正方法を知っているユーザを探すことができます。