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
  • 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

もう一つの案として、グローバルな最上位のスキン ディレクトリを用意する代わりに、スキン ディレクトリをそれぞれのモジュールごとに持たせることもできると思います。例えば、base ディレクトリが skin ディレクトリを持ち、components/prefwindow が skin ディレクトリを持ち、components/addrbook が…というようにです。(注:実際のところ、これは私たちが、結局そうすることに落ち着いた方法です)