Contents

XOOPS Cube Project

パッチの提出


パッチとは?

 パッチはプレーンテキストファイル以上のものではありません。それは、同じファイルもしくは同じファイル群の2バージョンの行単位の差異に関するデータを格納しています。もし、あるラインが比較されるファイルにおいて変更されているならば、それは、ファイルのオリジナルのバージョンにおける一致する行と、更に新しいバージョンに沿った古い行がパッチファイルに格納されます。結果できあがるものは、比較されたバージョンのコードにマッチできるように作られたオリジナルファイルをアップデートするための命令のリストです。下記は、あなたがシンプルなパッチファイルにおいて発見するであろうものの例です :

パッチで作業する理由

 パッチを書いて、適用することは、価値があると同時にまた非常に苛立たしいものになりえます。ほとんどの場合において、パッチを作成することは、あなたが作成した XOOPS Cube プロジェクトのソースコードに対する変更を、レビューとフィードバックのために他の方々と共有する唯一効果的な方法のうちの 1 つです。
同様に、他の方々が提供するフィーチャーやコードは、しばしばパッチの形でのみ唯一利用可能です。パッチを作成し、適用する方法を知ることは、XOOPS Cube プロジェクトのソースコードに関する開発者間で、迅速かつ正確なコミュニケーションを容易にするために、たいへん重要です。

いつ私はパッチを送るべきですか?

 パッチを書くことは、通例2つの理由のために行われます。

バグフィックスのために

 しばしば、あなたは、開発者が同じ仕事をする機会を持つ前に、XOOPS Cube プロジェクトのソースコードにおいてバグを発見するかもしれません。パッチを作成するのは、それを他の誰かの ( 多分非常に長い ) todo リストに登録せずに仕事を済ませる完璧なチャンスです。

 また、バグトラッカーには、あなたが提供するであろうパッチを待つ多くのバグがあります。

新機能を提供するために

 多くのコーダーは、彼ら自身の自由時間を使って、機能性を XOOPS Cube プロジェクトのアプリケーションに加えることを引き受けます。これらの「自家醸造」プロジェクトなしでは、 XOOPS Cube は今日のようにはなっていないでしょう。ホビイストと専門家からの提供(コントリビューション)は、開発プロセスにとって欠くことのできないものです。はい、それは、あなたを意味します!

 また、フィーチャーリクエストには、議論とあなたが提供するであろうパッチを待つ多くのタスクがあります。

私のコードは、どのようにあるべきですか ?

 一般的経験則として、パッチを作成しているとき、あなたは、あなたが編集しているファイルのスタイルに固執するべきです。しかしながら、遺憾に思うより無難であるために! プロジェクトに関する仕事を XOOPS Cube プロジェクトのソースコードで始める前に、コーディングスタイルガイドを読むのがベストです。これは、あなたが現存するコードベースと一致し、読み易さと構成を最大限にするパッチを作成してもらう必要があるガイドラインをあなたが獲得することによって、関係する全ての仲間が持つ価値のある時間を損失から救うでしょう。
(注:最後の1センテンスかなり意訳)

パッチを提出する

 あなたが CVS 書き込みアクセス(権限)を持っていないならば、パッチを XOOPS Cube に提出する最も良い方法は、あなたのパッチをまず他の誰かに渡して、彼らにそれをテストさせるというものです。一旦それが行われたら、あなたは二つのことをすることができます;

パッチをパッチトラッカーに追加する

 念のため、パッケージの Developers フォーラムに、あなたがトラッカーにパッチを追加した旨を投稿する

 パッチを得るために、ルートディレクトリの内側からただ cvs diff -u > ../patch.txt とタイプしてください。それから patch.txt を送ってください。Package_Legacy であれば mainfile.php templates_c などの設定ファイルやキャッシュファイルがパッチに含まれないように注意してください。

 パッチの全てが1つのトピックに関係する状態を保つことに努めてください。もしあなたが修正したものが二つ(たとえば、新機能の追加とバグパッチ)のものがあるなら、2つの個別パッチをそれぞれのトピックのためにひとつずつ送ってください。

どうやってパッチを適用すればよいですか?

 XOOPS Cube プロジェクトのソースコードのチェックアウトに、パッチファイルに格納される変更を適用するために、あなたは、あなたのパッケージルートディレクトリにおいて次のコマンドを使う必要があります。

ノート: これには patch がインストールされていることが必要です。

patch -p0 < mypatch.txt

 それから、あなたは、このオペレーションが成功であったかどうかの指摘を受けるでしょう。それが失敗であったならば、なぜあなたのソースコードが、そのパッチが作成されたソースコードと互換性がなかったかに関して、多くの可能性が考えられます。

 あなたが確かにソースのアップデートバージョンを持っておくために、著者にコンタクトを取るのは最良の手段です(意訳)。もしくは、すべてのものが確実にあるべきものになるように、手作業で生成されたファイルを編集するか(意訳)。ご用心を! これは、エネルギーを消耗して、プロセスを挫折させるきっかけになりえます。あなたは、再び、ルートディレクトリから、下記の通り -R スイッチを使うことにってパッチによって作られた変更を取り消すことができます:

patch -p0 -R < mypatch.txt

 これは、あなたのソースコードをそれらの前の状態へ戻すのに、一般的に十分でしょう。