この記事は、昨年の十月に公開した「Qt のモジュール化プロジェクト」の続報になります。作業は順調に進み、大部分を大きなモジュールに分割することが出来ました。
下図に現在の分割の状況を示します。なお、元々の Qt には含まれていないモジュールは図示していません。
Qt のほとんどはモジュールに分割され、Linux 上でビルドの確認を行っています。現在行っている作業は大きく三つあります。それ以外のプラットフォームでのビルド、オートテストの実行、モジュール化プロセスの Qt master ブランチへの適用です(現在は Qt 4.7 リポジトリを分割しています)。
モジュール化は非常に重要なプロジェクトであるため、可能な限り早くそれを終わらせて、移行を終了したいと考えています。なぜなら、移行作業が開発に影響しなくなるまで、いくつかの開発が延期される可能性があるからです。正確な日程は決まっておりませんが、あと 1 〜 2ヶ月程度はかかるのではないかと思います。具体的な日程が見え始めたら、より具体的なことをお知らせします。
移行が終了したときには、Qt の既存のリポジトリに対する開発は全て終了します。コミットは一切禁止されます。その後、新しい Qt リポジトリを使った開発がスタートします。古い Qt リポジトリはアーカイブされ、"Git graft" を使ってログの確認用にのみ残されます。新しいリポジトリはログを全く持たない状態でスタートすると思います。ただし、QtWebKit は既にオリジナルの WebKit のリポジトリで開発されているため、例外としてログを持ちます。
その際、マージリクエスト(Merge Request)はそれぞれのモジュール毎に受け付けることとなります。残念ながら既存のマージリクエストは、新しいモジュールの配置に従って再提出していただくことになります。
この第一段階にいくつかの困難があるのは確かです。しかし、それを乗り越えたとき、Qt のリポジトリ構成はよりわかりやすく、ハックしがいのあるものになるに違いありません。