Thunderbird ディレクトリ構造案
Thunderbird の作業の場が trunk に移行してからは、私たちは Thunderbird UI を新しい最上位のディレクトリ、 mozilla/mail に移します。はじめに、私たちが変更を加える必要のある UI ファイルのみを Mozilla メールニュース クライアントから分岐します。その状態に達して、なおかつ trunk バージョンの minotaur ができていたら、次のステップでは、UI を完全に Mozilla メールニュースから分岐し、新しい toolkit に移行します。以下は mozilla/mail のディレクトリ構造の提案です。注:これは Phoenix および 新しい toolkit (resources や en-US などの余分な階層の除去を含む) で使われている構造を基にしたものです。
- app: minotaur.exe を生成するのに必要なファイル群 (nsMailApp.cpp)
- profile: minotaur のプロファイルのデフォルトとなるプロファイル (all.js や mailnews.js など)
- base: 全てのメールコンポーネントによって使われる中核メールニュースファイル群
- content: XUL、JS ファイル (messenger.xul)
- locale: DTD、プロパティ ファイル (messenger.dtd)
- components: メールクライアントを構成する多様なコンポーネント群 (アドレス帳、IMAP、News など)
- news
- content
- locale
- addrbook
- content
- locale
- compose
- content
- locale
- imap (必要ならば)
- content
- locale
- local (必要ならば)
- content
- locale
- prefwindow: minotaur pref ファイル (pref-viewingmessages.xul, pref-mailpreftree.xul)
- content
- locale
- accountmgr: account manager ファイル
- content
- locale
- news
- skin: スキン独自のファイル群
- messenger
- addressbook
- msgcompose
- extensions: 単体のメールクライアントをビルドするのには必要とされないコンポーネント群 (S/MIME、 ベイズ式スパムフィルタ、MDN)
- smime
- content
- locale
- skin: この拡張独自のスキン ファイル
- bayesian spam filter
- content
- locale
- skin
- mdn
- content
- locale
- skin
- mailviews
- content
- locale
- skin
- smime
もう一つの案として、グローバルな最上位のスキン ディレクトリを用意する代わりに、スキン ディレクトリをそれぞれのモジュールごとに持たせることもできると思います。例えば、base ディレクトリが skin ディレクトリを持ち、components/prefwindow が skin ディレクトリを持ち、components/addrbook が…というようにです。(注:実際のところ、これは私たちが、結局そうすることに落ち着いた方法です)