資料
- XUL Tips&Technics
- Javascript関係
- mozilla developer center
- XULPlanet - 古いけどまだまだ必要
- Mozilla Wiki
- SQLite が認識できる SQL
- Mozilla Dehydra Cross Reference
- Mozilla Cross-Reference|
- GCアルゴリズム詳細解説
- 効率的 CSS の書き方
センスを身につける
- Mozilla Coding Style Guide
- Javaの命名規則(英語)
- SomethingManager(リンク先が英語)
- Model View Controller
- JavaのAPI仕様(英語)
- FFmpegの開発ポリシー(英語)
- パッチの拒否率をさげる10の方法
- バージョン管理 - ブランチの活用
- バージョン管理モデル - ロック・修正・ロック解除の解法とコピー・修正・マージの解法について(bzrは後者)
- Changelogのための英文テンプレート集
開発に必要なツール
- Windows
- Gecko SDK - idlをxptにコンパイルするために必要なxpidlが含まれている。
- Ubuntu 8.04
- xulrunner-1.9-dev - idlをxptにコンパイルするために必要なxpidlが含まれている。
開発に役立つ拡張
- XULD (ツールボタンに再起動・ブラウザの再読み込み・開発モードのon/offを追加する)
- Venkman (デバッガ及びプロファイラ。ブレークポイント・コールスタック・ローカル変数など。JS XPCOMには使用できない?)
- Leak Monitor
開発に参加する
>門番の手作業による分散モデル
Launchpadのアカウント登録
https://launchpad.net/+login の下の欄から登録できます。
Bazaar のインストール
Windows
http://launchpad.net/bzr/1.6/1.6/+download/bzr-setup-1.6.exe
- 含まれるプラグイン
Ubuntu hardy
sudo aptitude install bzr bzrtools
Debian etch
バックポートからbzrとbzrtools(なるべく)をインストール
Debian lenny
sudo aptitude install bzr bzrtools
設定
- bzr whoami "ニックネーム <メールアドレス>"
コミッタ設定 (コミッタのみ)
- SSH鍵を作って https://launchpad.net/people/+me/+editsshkeys に登録
- bzr lp-login アカウント名
コードを取得
- bzr branch lp:bbs2ch
- cd bbs2ch
開発
- バグの修正前に bzr merge (衝突したら修正してbzr resolve)
- 衝突が取れたら bzr ci -m 'merge trunk'
- バグを修正
- bzr ci でチェックイン。これはローカルのレポジトリにチェックインされます。コミットログには"LP: #バグの番号"も書いてください。
- これを繰り返します。
- きりの良い所で bzr merge をしてください。 (衝突したら修正してbzr resolve)。
- 衝突が取れたら bzr ci -m 'merge trunk'
- bzr send lp:bbs2ch -o foo.patch をして、そのfoo.patchをバグに添付してください。レビューされるでしょう。launchpadにssh鍵を登録している場合は、 bzr push lp:~アカウント名/bbs2ch/ブランチ名 で自分のブランチに上げて https://code.launchpad.net/people/+me/bbs2ch/ブランチ名 を開き、Propose for mergingを選択するという方法もできます。
Bazaarのコマンド
- bzr branch (レポジトリからブランチを作成)
- bzr branch --stacked (レポジトリからスタックブランチを作成。bzr 1.6以降)
- bzr merge (別のレポジトリとマージ)
- bzr ci (チェックイン)
- bzr uncommit (チェックイン取り消し)
- bzr send (マージ要求)
- bzr add (レポジトリに追加)
- bzr rm (レポジトリから削除)
- bzr mv (履歴付き移動)
- bzr log (ログの表示)
- bzr diff > foo.diff (差分)
- bzr cdiff (色付き差分)
- bzr patch < foo.diff (パッチを当てる)
- bzr revert . (リバート)
- bzr-undo (diff/log取ってrevertしてuncommitするスクリプト)
- bzr-redo (logと共にcommitして取っておいたdiffを当てるスクリプト)