Difference between revisions of "TeamJapan/ja:development/dev dev.html dev dev.html"
Caminofreak (talk | contribs) |
Caminofreak (talk | contribs) (→約束事) |
||
Line 48: | Line 48: | ||
* The Mozilla プロジェクトの組織構成 | * The Mozilla プロジェクトの組織構成 | ||
* Mozilla コーディングの慣例 | * Mozilla コーディングの慣例 | ||
+ | |||
+ | |||
+ | |||
+ | == 使用するツール:Bugzilla == | ||
+ | Bugzillaはバグ(と機能要望)のデータベースです。 バグをレポートし、適任と思われる開発者にバグを割り当てます。 開発者はBugzillaを優先作業リスト、スケジュール、依存関係の追跡などの用途に使うことができます。 | ||
+ | |||
+ | 注記:すべての"バグ"がバグであるとは限りません! 機能要望(または強化要望 — 略してRFE)もBugzillaで扱われます("severity" 欄を"enhancement" に設定)。"バグ" という単語が "Bugzillaの項目" の意味で使われるので、機能要望もバグと呼ばれることがあります。 | ||
+ | |||
+ | あなたの作業予定をバグや強化要望として登録してください:Bugzillaはそれらを追跡したり、他の人にあなたの作業内容を知らせることができます。 皆があなたの作業計画を見ることができれば、あなたの作業との重複を避け、手伝いやフィードバックを行うことができます。 | ||
+ | |||
+ | 関連項目: | ||
+ | |||
+ | * Bugzillaに登録する方法 | ||
+ | * Camino Bugzilla FAQ | ||
+ | * Bugzillaとは? | ||
+ | |||
+ | |||
+ | == CVS == | ||
+ | CVSは、ファイル変更前と変更後の差分を常時追跡することでソースツリーの変更履歴を管理します。 変更を行った人のユーザ名とその時刻が常に記録されます。 たいていの場合、変更者は変更理由を記した簡潔なコメントを添えます。 | ||
+ | |||
+ | CVSから次のような情報が得られます: | ||
+ | |||
+ | * 誰が変更を行ったか | ||
+ | * いつ変更が行われたのか | ||
+ | * なぜその変更が行われたのか | ||
+ | * その人は他にどんな変更を行ったのか | ||
+ | |||
+ | あなたがCVSにあまり慣れていないなら、CVSの導入部を見ましょう。 | ||
+ | |||
+ | == CVS アクセス — チェックインとチェックアウト == | ||
+ | チェックイン — CVSリポジトリのソースを変更すること | ||
+ | |||
+ | チェックアウト — 最新のCVSリポジトリを自分のコンピュータにダウンロードすること | ||
+ | |||
+ | 個人のコンピュータでソースを見たりビルドしたりするために、すべての人がMozilla FoundationのCVSリポジトリ(貯蔵庫)からCaminoのソースをダウンロードできます。 Bonsai CVSを使えば、ダウンロードせずにソースを閲覧することもできます。 しかし、CVSリポジトリを変更できるアカウントを取ることができるのはMozillaやCaminoのコードをよく理解している人だけです。 この制限が、チェックインによって新たなバグが生じてしまうのを防いでいます。 もしあなたがアカウントを持っていないなら、他の誰かにコードの検証とチェックインをやってもらうことになります。 このチェックイン手順は開発サイクルの項で説明されています。 | ||
+ | |||
+ | |||
+ | == CVSクライアント == | ||
+ | CVSリポジトリからCaminoのソースコードを入手するには、CVSクライアントが必要です。 多くのグラフィカルなCVSクライアントがMac OS Xで使用できますが、Caminoのソースをメインリポジトリから入手する場合はコマンドラインクライアント(AppleのDeveloperTools/Xcodeのインストール時に自動的に組み込まれます)を推奨します。 | ||
+ | |||
+ | == Fink == | ||
+ | Finkとは、UnixソフトウェアをMac OS Xでコンパイルおよび実行ができるようにするプロジェクトです。 Debianのdpkgとapt-getを使うことでソフトウェアの簡単なダウンロードとインストールを実現しています。 | ||
+ | |||
+ | Caminoの開発者は、CaminoやMac版Mozillaをビルドするのに必要なソフトウェアパッケージのOrbitをインストールするのにFinkを使います。 | ||
+ | |||
+ | == Tinderbox == | ||
+ | 常にテスト用バージョンを作り、ビルドを妨げる問題を見失わないように、Mozilla関連プロジェクト(Caminoを含む)は個々が定期的に最新のソースをビルドしています。 | ||
+ | |||
+ | Tinderboxは、ソースコードの最新の変更が様々なビルド(プロジェクト毎、プラットフォーム毎)の状態にどう影響するかを追跡することができる検知ツールです。 ビルド途中の場合は黄色;ビルド成功なら緑;ビルド失敗(broken)なら赤色になります。 | ||
+ | |||
+ | Caminoのビルドは現在G3 Mac (pawn) とG4 Mac (boxset)で行われています。 CVSでチェックアウト(ソース入手)をする前に、CaminoのTinderboxを訪れてあなたのプラットフォームでビルドが成功するかどうかを確認しましょう。 もし最新のビルドが緑色なら、そのまま自分のビルドを進めます;黄色なら、Tinderboxのビルド終了(終了しないと、ビルドができるのかどうか正確には分かりません)まで待ちましょう;もし赤色なら、最新のビルドが緑色になるまで待ちましょう。 | ||
+ | |||
+ | また、Tinderboxは誰がパッチをソースに反映したか;ビルドが成功しているプラットフォーム;ビルドが失敗しているプラットフォームと失敗部分(ビルドログ);ビルドに関わるファイルの状態(cvsblame)などを表示します。 この情報から、どのチェックインがビルドを妨げたのか、そしてそれが直されたかを確かめられます。 | ||
+ | |||
+ | == Gecko == | ||
+ | CaminoやMozilla、Firefoxが使っているレンダリングエンジンはGeckoという名で知られています。Geckoは(おそらく)最も完成されかつWeb標準に準拠したレンダリングエンジンです — そして常に改良が続けられています。 Mac OS XネイティブアプリケーションからGeckoを呼べるようにするCHBrowserViewと呼ばれる要素を使ってCaminoにGeckoを埋め込んでいます。 ページの描画に関する作業を行いたい場合は、以下にあるGeckoを知るための資料が助けになるでしょう。 | ||
+ | |||
+ | * Mozilla レイアウトエンジン | ||
+ | * 技術文書 | ||
+ | |||
+ | |||
+ | == Cocoa、Objective-C、そしてXcode == | ||
+ | CaminoはクロスプラットフォームであるGeckoレンダリングエンジンをMacOS Xネイティブアプリケーションに埋め込んでいます。 CaminoのMac OS X部分は、MacOSXのネイティブアプリケーションを開発するための高機能オブジェクト指向フレームワークであるCocoa環境を使って開発されています。 | ||
+ | |||
+ | CocoaにはJavaを使ってアクセスすることもできますが、私達はCocoaとGeckoをうまく統合できるObjective-C言語(Cの拡張言語)を使います。 CocoaフレームワークとObjective-C言語が紹介されているWebサイトや書籍を見てください。 | ||
+ | |||
+ | CHBrowserView — Geckoエンジン(C++で開発)と連係し、CaminoのようなObjective-CのCocoaアプリケーションへのスムーズなGecko埋め込みを実現するこのクラスは、Objective-C++(C++と互換性を持つObjective-Cの亜種)で開発されています。 もしあなたがC++とObjective-Cを使っているなら、Objective-C++にも馴染みやすいでしょう。 | ||
+ | |||
+ | Caminoのすべての開発はAppleのXcode開発環境で行われています。XcodeはMac OS Xの最新のバージョンに付属するほか、Appleのサイトから無償でダウンロードできます。 (XcodeはMac OS X10.3以降が必要です) | ||
+ | |||
+ | Mozillaのコードスタイルは、タブ区切りを使わず、半角スペース2つをタブの代用とすることを忘れないようにしてください。 | ||
+ | 関連サイト: | ||
+ | |||
+ | * Cocodev | ||
+ | * Cocoadevcentral | ||
+ | * MacDevCenter | ||
+ | * Apple Developer | ||
+ | |||
+ | おすすめの書籍: | ||
+ | |||
+ | * 入門 Unix for Mac OS X | ||
+ | * Mac OS X Cocoaプログラミング | ||
+ | |||
+ | |||
+ | == 開発者コミュニティとサポート == | ||
+ | Caminoの開発について質問があったり、手伝いたいがどこから始めたらいいのか分からなかったり、Camino開発の難しい問題で行き詰まったりしたら、#camino IRCチャネルやメーリングリストなどのコミュニティに連絡を取ることをお薦めします。 | ||
+ | |||
+ | |||
+ | == ライセンスと(呪文のような)法律 == | ||
+ | 今の所、MozillaとCaminoのソース部分はNetscape Public License (NPL) と Mozilla Public License (MPL) のどちらかで、多くがGNU General Public License (GPL) と GNU Lesser General Public License (LGPL) のどちらか、もしくはその両方となっています。 | ||
+ | |||
+ | 原則として、あなたがソースをダウンロードして、改変したバージョン/改変していないバージョンを個人用にビルドするのは自由です。 もしプロジェクトのためにコードを書いていただけるならありがたいことですが、そのコードのライセンスがMozillaのライセンスポリシーに従うことを同意していただく必要があります。 | ||
+ | |||
+ | 単一のライセンスではコードが完全に使用可能にならないという理由により、他のプロジェクトにコードの一部を使ったり再配布したりするためのライセンスは少し複雑です。Mozilla Foundationが作成したのと異なるCaminoバイナリを配布する、ソースを組み込んだ別アプリケーションを配布するなど、Caminoのソースを再配布したい場合はまずライセンスポリシーが重要で、ライセンスの内容に精通する必要があります。 Caminoコミュニティはライセンス関連の質問も受け付けています。 | ||
+ | |||
+ | Mozilla.orgはソースツリーのすべてのコードがMPL/LGPL/GPLのトリプルライセンスとなるよう作業しています;より詳しい情報は、再ライセンスFAQを見てください。 |
Revision as of 09:26, 30 October 2005
Caminoの開発を手伝っていただけますか? ようこそ! あなたが初心者でも達人でも、手伝っていただけるのを歓迎します。 以下の簡単な概要を読んだり、開発を始めるためにCamino開発者コミュニティに連絡を取る事ができます。 (コードの書き方が分からない? 他の方法でも貢献できます!)
Contents
ゴール
Caminoはシンプルなブラウザであり、以下の項目に従って開発されています:
- Mac OS X ネイティブのUI
- Gecko HTMLレンダリングエンジン(MozillaやFirefoxに使われているエンジンです)
- OSやフレームワークの機能を活用し、Appleのヒューマンインターフェイスガイドラインに沿っている “ 行儀の良い” MacOS X アプリケーション
- メールなし、アドレスブックなし、javascriptを使ったWeb検索もなし;ブラウザのみ。無駄なくシンプル。
Caminoが開発容易で、便利で、“行儀の良い”MacOS Xアプリケーションであることを維持していくために、私達は:
- ユーザーインターフェイスの開発に、CocoaフレームワークとInterfaceBuilderを使用します
- レンダリングエンジン用に、CHBrowserViewによる埋め込みGecko-Cocoa viewの開発を進めます
- Xcodeによるビルドとデバッグが可能なようにします
Camino開発サイクルと約束事
Caminoの開発サイクルは、いくつかある開発の段階を順に達成していく形を取ります。 また、開発コミュニティ内のコミュニケーション、コードの検証、コードの不用意な変更の防止などを助けるようなものになっています。
1. 作業対象とするバグまたは機能を選びます。 (対象とするバグを決めていないなら、Bugzillaでassignedになっていないバグを探してみてください。)
2. 選んだバグをBugzillaに確実に登録してください。
3. Bugzillaでそのバグをassignedに設定したり、IRCチャネルやメーリングリストに連絡を取るなどの方法で、あなたがそのバグに関する作業を行っている事をコミュニティに知らせます。
4. パッチを作ってください。 パッチが完全だと思ったら、Bugzillaの該当バグレポートでそれを提出してください。
5. reviewフラグを設定してレビュワー(検証者)を2人募集し、CC: にレビュワーのメールアドレスを追加します。 最初にパッチをアップロードする時や、アップロード後にバグレポートの“Attachments”欄の“Actions”でEditリンクをクリックすることで、レビュワーを募集できます。 レビュー(検証)を誰かにお願いする時は、irc.mozilla.orgの#camino IRC チャネルで、その人がレビューに時間を割いてくれるかどうか先に尋ねておくのが礼儀です。
6. あなたのパッチがレビューされたら、レビュワーの指摘項目を確実にパッチに反映してください。
7. 両方のレビュワーがパッチにOKを出したら(reviewフラグを"+"にセット)、スーパーレビュー(やることは通常のレビューと同じですが、こちらは限られた人間しかできません)を募集します。
8. スーパーレビューに合格したら、パッチはCVSにすぐにチェックイン(反映)されます。
注意:あなたがMozillaコーディングスタイルに慣れていれば、レビューに合格するまでの作業がより楽になります。
約束事
あなたが1日で終わらないような作業を始める時は、それを皆に知ってもらうようにすることを強くお薦めします。 Caminoメーリングリストや#caminoIRCチャネル(irc.mozilla.org)にあなたの計画を投稿してください。
バグ修正の作業中は、進行状況を知らせるため、また他の開発者に注意してもらうためにBugzillaの該当バグレポートにコメントを書いてください。 そのバグがまだBugzillaに登録されていない場合は、バグを登録してassignをあなた自身に設定してください。 機能を追加する時は、機能強化要望としてBugzillaに登録し、それを実装する前に他の人と話し合いをするようにしてください。
あなたの作業を公開することで、他の人は自らの作業をあなたの作業と調和させたり、あなたに助力を申し出たり、作業の重複を避けるといったことができます。 レビューをじっくり行ったり、次回質問が来た時に同じことを繰り返さないために、あなたの作業を公開してください。 また、同じ作業を誰かが行っている最中なら、あなたにそれを知らせて仕事を減らすことができます。
関連項目:
- The Mozilla プロジェクトの組織構成
- Mozilla コーディングの慣例
使用するツール:Bugzilla
Bugzillaはバグ(と機能要望)のデータベースです。 バグをレポートし、適任と思われる開発者にバグを割り当てます。 開発者はBugzillaを優先作業リスト、スケジュール、依存関係の追跡などの用途に使うことができます。
注記:すべての"バグ"がバグであるとは限りません! 機能要望(または強化要望 — 略してRFE)もBugzillaで扱われます("severity" 欄を"enhancement" に設定)。"バグ" という単語が "Bugzillaの項目" の意味で使われるので、機能要望もバグと呼ばれることがあります。
あなたの作業予定をバグや強化要望として登録してください:Bugzillaはそれらを追跡したり、他の人にあなたの作業内容を知らせることができます。 皆があなたの作業計画を見ることができれば、あなたの作業との重複を避け、手伝いやフィードバックを行うことができます。
関連項目:
* Bugzillaに登録する方法 * Camino Bugzilla FAQ * Bugzillaとは?
CVS
CVSは、ファイル変更前と変更後の差分を常時追跡することでソースツリーの変更履歴を管理します。 変更を行った人のユーザ名とその時刻が常に記録されます。 たいていの場合、変更者は変更理由を記した簡潔なコメントを添えます。
CVSから次のような情報が得られます:
* 誰が変更を行ったか * いつ変更が行われたのか * なぜその変更が行われたのか * その人は他にどんな変更を行ったのか
あなたがCVSにあまり慣れていないなら、CVSの導入部を見ましょう。
CVS アクセス — チェックインとチェックアウト
チェックイン — CVSリポジトリのソースを変更すること
チェックアウト — 最新のCVSリポジトリを自分のコンピュータにダウンロードすること
個人のコンピュータでソースを見たりビルドしたりするために、すべての人がMozilla FoundationのCVSリポジトリ(貯蔵庫)からCaminoのソースをダウンロードできます。 Bonsai CVSを使えば、ダウンロードせずにソースを閲覧することもできます。 しかし、CVSリポジトリを変更できるアカウントを取ることができるのはMozillaやCaminoのコードをよく理解している人だけです。 この制限が、チェックインによって新たなバグが生じてしまうのを防いでいます。 もしあなたがアカウントを持っていないなら、他の誰かにコードの検証とチェックインをやってもらうことになります。 このチェックイン手順は開発サイクルの項で説明されています。
CVSクライアント
CVSリポジトリからCaminoのソースコードを入手するには、CVSクライアントが必要です。 多くのグラフィカルなCVSクライアントがMac OS Xで使用できますが、Caminoのソースをメインリポジトリから入手する場合はコマンドラインクライアント(AppleのDeveloperTools/Xcodeのインストール時に自動的に組み込まれます)を推奨します。
Fink
Finkとは、UnixソフトウェアをMac OS Xでコンパイルおよび実行ができるようにするプロジェクトです。 Debianのdpkgとapt-getを使うことでソフトウェアの簡単なダウンロードとインストールを実現しています。
Caminoの開発者は、CaminoやMac版Mozillaをビルドするのに必要なソフトウェアパッケージのOrbitをインストールするのにFinkを使います。
Tinderbox
常にテスト用バージョンを作り、ビルドを妨げる問題を見失わないように、Mozilla関連プロジェクト(Caminoを含む)は個々が定期的に最新のソースをビルドしています。
Tinderboxは、ソースコードの最新の変更が様々なビルド(プロジェクト毎、プラットフォーム毎)の状態にどう影響するかを追跡することができる検知ツールです。 ビルド途中の場合は黄色;ビルド成功なら緑;ビルド失敗(broken)なら赤色になります。
Caminoのビルドは現在G3 Mac (pawn) とG4 Mac (boxset)で行われています。 CVSでチェックアウト(ソース入手)をする前に、CaminoのTinderboxを訪れてあなたのプラットフォームでビルドが成功するかどうかを確認しましょう。 もし最新のビルドが緑色なら、そのまま自分のビルドを進めます;黄色なら、Tinderboxのビルド終了(終了しないと、ビルドができるのかどうか正確には分かりません)まで待ちましょう;もし赤色なら、最新のビルドが緑色になるまで待ちましょう。
また、Tinderboxは誰がパッチをソースに反映したか;ビルドが成功しているプラットフォーム;ビルドが失敗しているプラットフォームと失敗部分(ビルドログ);ビルドに関わるファイルの状態(cvsblame)などを表示します。 この情報から、どのチェックインがビルドを妨げたのか、そしてそれが直されたかを確かめられます。
Gecko
CaminoやMozilla、Firefoxが使っているレンダリングエンジンはGeckoという名で知られています。Geckoは(おそらく)最も完成されかつWeb標準に準拠したレンダリングエンジンです — そして常に改良が続けられています。 Mac OS XネイティブアプリケーションからGeckoを呼べるようにするCHBrowserViewと呼ばれる要素を使ってCaminoにGeckoを埋め込んでいます。 ページの描画に関する作業を行いたい場合は、以下にあるGeckoを知るための資料が助けになるでしょう。
* Mozilla レイアウトエンジン * 技術文書
Cocoa、Objective-C、そしてXcode
CaminoはクロスプラットフォームであるGeckoレンダリングエンジンをMacOS Xネイティブアプリケーションに埋め込んでいます。 CaminoのMac OS X部分は、MacOSXのネイティブアプリケーションを開発するための高機能オブジェクト指向フレームワークであるCocoa環境を使って開発されています。
CocoaにはJavaを使ってアクセスすることもできますが、私達はCocoaとGeckoをうまく統合できるObjective-C言語(Cの拡張言語)を使います。 CocoaフレームワークとObjective-C言語が紹介されているWebサイトや書籍を見てください。
CHBrowserView — Geckoエンジン(C++で開発)と連係し、CaminoのようなObjective-CのCocoaアプリケーションへのスムーズなGecko埋め込みを実現するこのクラスは、Objective-C++(C++と互換性を持つObjective-Cの亜種)で開発されています。 もしあなたがC++とObjective-Cを使っているなら、Objective-C++にも馴染みやすいでしょう。
Caminoのすべての開発はAppleのXcode開発環境で行われています。XcodeはMac OS Xの最新のバージョンに付属するほか、Appleのサイトから無償でダウンロードできます。 (XcodeはMac OS X10.3以降が必要です)
Mozillaのコードスタイルは、タブ区切りを使わず、半角スペース2つをタブの代用とすることを忘れないようにしてください。 関連サイト:
* Cocodev * Cocoadevcentral * MacDevCenter * Apple Developer
おすすめの書籍:
* 入門 Unix for Mac OS X * Mac OS X Cocoaプログラミング
開発者コミュニティとサポート
Caminoの開発について質問があったり、手伝いたいがどこから始めたらいいのか分からなかったり、Camino開発の難しい問題で行き詰まったりしたら、#camino IRCチャネルやメーリングリストなどのコミュニティに連絡を取ることをお薦めします。
ライセンスと(呪文のような)法律
今の所、MozillaとCaminoのソース部分はNetscape Public License (NPL) と Mozilla Public License (MPL) のどちらかで、多くがGNU General Public License (GPL) と GNU Lesser General Public License (LGPL) のどちらか、もしくはその両方となっています。
原則として、あなたがソースをダウンロードして、改変したバージョン/改変していないバージョンを個人用にビルドするのは自由です。 もしプロジェクトのためにコードを書いていただけるならありがたいことですが、そのコードのライセンスがMozillaのライセンスポリシーに従うことを同意していただく必要があります。
単一のライセンスではコードが完全に使用可能にならないという理由により、他のプロジェクトにコードの一部を使ったり再配布したりするためのライセンスは少し複雑です。Mozilla Foundationが作成したのと異なるCaminoバイナリを配布する、ソースを組み込んだ別アプリケーションを配布するなど、Caminoのソースを再配布したい場合はまずライセンスポリシーが重要で、ライセンスの内容に精通する必要があります。 Caminoコミュニティはライセンス関連の質問も受け付けています。
Mozilla.orgはソースツリーのすべてのコードがMPL/LGPL/GPLのトリプルライセンスとなるよう作業しています;より詳しい情報は、再ライセンスFAQを見てください。