Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Hacking Mozilla

このページは、Mozilla の CVS リポジトリにプログラムコードをチェックインする方法を知りたい方のために設けられました。もしあなたが、今まで一度も Mozilla をビルドしたことがなければ、ソースコード のページを参照して、ビルドすることから始めた方がよいでしょう。そして Mozilla のハックを始めるためのガイド を調べてみてください。

パッチのライフサイクル

もし、パッチ作成に関心があれば、以下のガイドラインが役に立つでしょう

  • 私達の基本的な設計思想の一つは、私達のプログラムコードが様々なプラットフォーム上で動作するようにするということです。必ずしも最新の標準の全てをサポートしていないようなコンパイラを使って、小さなプラットフォームに Mozilla を移植している人々もいます。もしあなたがコンパイルされたコード (C, C++) を書いているのであれば、私達の C++ 移植ガイド に従い、できる限りの警告出力を有効にしてコンパイルを行うことで、それらのプラットフォームを助けてください。いつの日かあなたは、あなたが書いたプログラムコードが、ケーブルテレビの受信機や携帯電話のような本当に小さなプラットフォーム上で動作しているのを見つけることでしょう。
  • あなたのコードは ローカリゼイション にも気を付けてください。62の 登録されたプロジェクト があり、そのうち 7 〜 10 個は現在もアクティブです。
  • Mozilla コーディングスタイルガイド にも注意してください。
  • カスタマイズ性を考慮してください。Mozilla テクノロジの最大の利点の一つは、カスタマイズ性です。Mozilla のベンダやディストリビュータは彼らのニーズに向かって Mozilla を仕立てる特別な要件があるでしょう。Mozilla のディストリビュートを円滑にするために、機能を追加、削除、修正を容易に出来るように、是非カスタマイズ性を考慮してください。
  • 私達の 開発ロードマップ を読んでください。それは、Mozilla が目標としているアーキテクチャの概説であり、Mozilla をハックする全ての人にとって良い読みものです。
  • 新しいソースファイルを作るときには、適切な boilerplate (テンプレート) のライセンスヘッダを加え、空欄を埋めてください。また、修正したファイルのライセンスヘッダの contributors (貢献者) 欄にあなた自身を加えるべきならばそうしてください。
  • パッチは現在の CVS に対して書くべきです。また、ソースファイルを開くことなくパッチを理解してもらうために、なるべく前後に十分な行を加えるべきです。標準のガイドラインとしては、最低限 cvs diff -u8pN を使用することが推奨されます。理解しやすいパッチを作るためにもっと前後の行を増やしたいなら、数字の 8 をもっと大きい数字に変えてください。

もし、あなたがパッチを持っていたら、それを Bugzilla へのバグ報告に添付してください。私たちはコードレビューに大きな信頼を置いています。なので、CVS リポジトリにコードをチェックインする前に、適切な モジュールオーナー か、その同僚によるレビューを受ける必要があります。モジュールは完全には直接 Bugzilla コンポーネントに対応しません。しかし、強い相関があります。レビューを受けるには:

  • 該当モジュールのモジュールオーナーか peer (代行者) に、パッチに ? というレビューフラグを立て (このフラグはレビューが求められていることを示します)、レビューをお願いしたい人のメールアドレスを記入して、レビューを明示的に依頼してください (あなたが指名されたのでなければ)。
  • バグナンバと、パッチを添付している事実と、レビューしてほしいことに言及して、モジュールオーナーか代行者に直接メールを送ることも出来ます。しかし、Bugzilla の依頼機能を使った方が見落とされる可能性は低いです。

いくつかのケースで、次の数日以内に返答を受け取ることが出来るでしょう。不幸にして、忙しすぎるので彼らのバグ情報すべてに追いつけていない人々もいます。なので、あなたが 1 週間以内に返事を受け取れなくて、あなたがそのパッチに (言うならば、1 年やそこらでなく) すぐに対応する価値があると考えるなら、このようなことが出来ます。

  • そのコンポーネントのバグに対するパッチをレビューしたことのある誰か他の人を Bugzilla で探し、かわりにその人にレビューを依頼してください。
  • IRC の #developers で適切なレビューワが誰かを聞いてください。注意:レビュー依頼は IRC ではなく、E-Mail で

レビューワはあなたが取り組んでほしいあなたのパッチに対してコメントするでしょう。彼らが満足したとき、かれらはパッチをレビュー済みと印付けし、バグ (訳注:Bugzilla) で "r=<user>"と言うでしょう。

たいていの場合、"スーパーレビュー"として知られる追加のレベルのレビューが必要です。スーパーレビュー ドキュメントはスーパーレビューを受けるために何をすべきかについて詳しく述べています。また、スーパーレビューはパッチに変更を求めるかもしれません。彼らが満足すると、バグ (Bugzilla) の中でそう言うでしょう。

レビューとスーパーレビューを受けて、パッチが十分な水準に達していたら、ツリーにチェックインできます。あなたが CVS アカウントを持っていない場合、代わりにチェックインしてくれる人を探さなければなりません。これは実に簡単です。checkin-needed キーワードをバグに追加するだけです。数少ないコミッターがこのキーワードの検索を設定しており、ちょくちょく調べてはコミットされていないパッチをコミットします。通常はキーワードが追加されてから 1 ~ 2 週間のうちにはコミットされるでしょう。2 週間以上たってもコミットされない場合、IRC に行って誰かにあなたのパッチをコミットするように (そして checkin-needed が付いたバグを調べるように、それらのバグにパッチを提供した人たちも同じように待たされているでしょうから) 言ってみる価値はあるでしょう。

時折、ツリーはリリースを試みるために少しより厳重にロックされ、"approval" (承認) と呼ばれる第三段階がチェックインのために必要になります。それらの時期には、Tinderbox は approval が必要であると先頭でうたって注意を促します。approval を依頼するには、パッチ添付ファイルを変更して approval フラグに ? をセットしてください。もし、approval が断られた場合、リリースが行われるか、リリースへ向けての開発がブランチとなるまで、1 週間程度パッチのチェックインを待たなければなりません。

これらのプロセスの中で、他に問題を抱えているか、ガイドが必要なら、Gerv にメールすることです。

CVS Commit Access ルール

あなたがパッチでの貢献を頻繁に行って、品質の良いコードについて定評のある業績を残したとき、CVS コミット権限を得る のプロセスを始めることが出来ます。CVS コミット権限は、以下のルールが伴います。

もっとも重要なルールは、ビルドのプロセスに関してです。それを無視することは、多くの人々の時間を浪費することになります。図々しい違反者は、ルールに従う事に悩まされるでしょう。抵抗は無駄です。

  • follow the tree rules を学びましょう。私達のビルドの手順は、柔軟で、人の手の介入を最小限しか必要とせず、数百人の技術者に対しても調整可能です。人々がこの単純なルールに従う限り、この手順は動作し続けるでしょう。
  • リポジトリにチェックインする人は全て、ツリーの担当する部分がきれいに保たれているようにしなくてはいけません。あなたのプログラムコードをチェックインする前に、他のプラットフォームでビルドできることを確かめてください。チェックイン後は、Tinderbox があなたのプログラムコードを正常にビルドできるようにすることと、ビルド時や実行時の予期しない問題に対応できるようにすることは、あなたの責任です。多くの人にとって、ツリーの破損は時間の損失 となります。決してしないでください。
  • Tinderbox の活用について学んでください。Tinderbox を使って、ツリーについての全ての情報を入手することができます。誰かがプログラムコードをツリーにチェックインしている場合、あなたは Bonsai を使って、ツリーがオープンされているかどうかや、計画されているクローズがあるかどうかなど、そのツリーについての情報を調べなくてはいけません。
  • 新しいディレクトリを作成する際には、そのディレクトリの親ディレクトリの所有者の許可を得てください。"mozilla" のトップディレクトリに新しいディレクトリを追加する際には、mozilla.org の スタッフ に連絡してください。私達は、相当な理由がない限りは、新しいトップレベルディレクトリの追加を望みません。ほとんどの新しいプロジェクトは、ツリーにすでにあるどこかのフォルダ、例えば components におさまるでしょう。

Happy hacking!

原文書の情報

  • 最終更新日: October 1, 2007
  • 著作権: Portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a Creative Commons license | 詳細

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: Shoot, Kohei, Mgjbot
 最終更新者: Shoot,