開発組織とソフトウェアの構成

説明用の覚書です。

開発推進組織についておさらい

もともとはOLPC foundation という団体がOLPCのプロジェクトを始め、XOというプラットフォーム(ハード・ソフト)と、その上のActivityやコンテンツ、ひいては教育の方法論なども含めた非常に広いスコープを持っていました。
しかし、途中でOLPC foundationがプラットフォームに専念することになったため、WalterさんがOLPCを離れてSugarLabsという団体を始め、Sugarの開発の推進はOLPC foundationからSugarLabsに移りました。
SugarについてはSugarLabsが開発元(upstream)で、OLPC foundationはディストリビューションという立場になります。
あと、ご承知のようにOSはFedoraを使っています。現在のバージョンはFedora9がベースになっています。

ソフトウェアスタック

Sugarというと、広義にはXOのシステムソフトウェアやアプリケーションの総称みたいなものですが、SugarLabsによってスタックの構造が定義されています(http://sugarlabs.org/go/Taxonomy)。SugarLabsが現在開発・配布しているのは、この中の Glucose(OSの上にかぶせるミドルウェア部分)とFructose(Sugarの一部として配布されるデモ的なActivity)をまとめた Sucroseです。
(ちなみに、狭義のSugarとはこのスタックの中のGulcose部分だと思います)

OLPCが現在配布している8.2ソフトウェアは、SugarLabsが出しているオリジナルのSugarにコンポーネントを追加しています。具体的には、Sugar Control Panelの中の Updater機能は、C.Scottさんが開発しています。

開発ライフサイクル

前のUpdate.1の開発がずるずると時間を費やしたことを踏まえ、SugarLabsは年に2回の一定サイクルでリリースをしていくという方針を決めました。(参考 http://sugarlabs.org/go/ReleaseTeam/Roadmap
最新版Sucrose0.82は8月にリリースされ、次の0.84のプランニングが始まっています。(http://sugarlabs.org/go/ReleaseTeam/Roadmap/0.84)

一方、OLPCも展開先から強烈なプレッシャーを受けており、年に2回のメジャーリリースを守ろうと努力しているのですが、8.2のリリースはずるずると遅れてきており、まだ正式リリースに至っていません。

Activityの開発推進体制とライフサイクル

Activityは、開発を推進している組織によって以下の2種類に分類できます。

  • Fructoseに含まれるもの。SugarLabsが開発を推進しており、前述のSugarのライフサイクルに同期して開発・メンテナンスが行われることがコミットされているものです。Sucrose0.82にはこれらのアクティビティが含まれます。
  • Fructoseに含まれず、SugarLabsがメンテナンスに関与していないもの。現在のOLPC foundationは公式にはactivityの開発・メンテナンスの責任を負っていないので、開発者個人がボランティア(あるいは OLPCのfunding)で開発・メンテナンスに協力しています。

Pootle上の翻訳プロジェクト

従来、Pootle上は、Activityがプリインストールされていた時代の分類(xo-coreなど)でプロジェクトが構成されていました。しかしつい先ごろSugarLabs管轄かどうかの切り口で、以下のように再編成されました。

  • Gulcose(システムソフトウェア部分)
  • Fructose(SugarLabs管轄のactivity、Etoysを除く)
  • Honey : Fructoseには含まれないが、よく使われているactivity

Pootleとソースリポジトリのブランチ

gitリポジトリは、次バージョンに向けた開発を進めるためのtrunkと、特定のリリースのためのブランチに枝分かれしています。特にSugarLabsはOLPCの8.2の開発完了を待たずに次のSugar0.84の開発を進めるため、0.82のブランチを作りました。
これに伴い、Pootle上も Gulcose/Fructoseについて 0.82ブランチと trunkのプロジェクトが分離されています。
ブランチが作られた直後なので、現在は両方とも同じ翻訳データが登録されていますが、ソースファイルとしては完全に独立しています。したがって、0.82ブランチで翻訳をメンテナンスした場合、trunk側にも同じ内容を反映する必要があります。

language pack

  • Sugar0.82は既に開発マイルストーンを終了していますので、0.82について Gulcose/Fructoseの翻訳をPootle上で修正してgitにコミットしても、それがビルドに取り込まれてリリースされる可能性は低いです。これはlanguage pack

を使って、Pootle上の翻訳を配布する必要があります。(もちろん、trunk側への修正反映も必要)

  • Honeyに含まれるactivity(Record, TamTamなど)は、SugarLabsのような一定のライフサイクルに準拠していないため、ブランチも作られていません。Pootle上で翻訳を修正してgitへコミットした場合、次のビルドで取り込まれると思われます。ただ、拠って立つべき開発ライフサイクルがないため、いつビルドが行われるかわかりません。まだ取り込まれていない最新の翻訳を使うには、やはりlanguage packを使うことが必要です。
  • OLPCがビルドしているOSイメージでは、OLPCとして出荷する先の言語しか翻訳が入っていないコンポーネントがあります。これもlanguage packを使って翻訳をインストールする必要があります。