Qt 6 に向けた本格的な開発がまもなくスタートします

Qt の開発者向けのメーリングリストDev branch moving towards Qt 6 というメールが投下され、議論が進んでいます。

Qt 6 への流れのおさらい

今日時点の最新版は、Qt 5.13 で、Qt 5.14 が今年の11月末に予定されています。

2020年春の Qt 5.15 を Qt 5 の最後のマイナーバージョンとし(LTS とし)、2020年末に Qt 6 をリリースしようというのが現在のロードマップになっています。

Qt の開発ブランチの運用のおさらい

開発は git を利用して行われていて、基本的には以下のようにブランチが運用されています。

  • 次回のマイナーアップデートに含まれるものは dev ブランチで行う
  • マイナーアップデートが近づいたら、dev からマイナーバージョン専用のブランチを分離する(5.x)
    • これ以降、dev に対するコミットは、次のマイナーアップデート(5.x+1)での対応となります
  • マイナーアップデートのリリースやパッチリリースが近づいたら、5.x から各リリース専用のブランチ(5.x.y)を分離し、ベータ版、RC版、正式版のリリースを行う
  • 各リリース毎にタグをうつ(v5.x.y, v5.x.y-beta1 など)

本日時点での最新版は Qt 5.12.4 および Qt 13.0 となっており、Qt 5.12.5 は今月末に、Qt 5.13.1 は来週中にリリースを予定していて、Qt 5.14 は今年の11月末を予定しています。

  • 5.12 ブランチ (LTS版の保守)
  • 5.13 ブランチ (最新版の保守)
  • dev ブランチ (5.14 の開発)
  • wip/qt6 ブランチ(Qt 6 の先行開発)

まもなく、dev ブランチから 5.14 が分離する予定で、これまでの運用ルールに従うと以下のようになることになります。

  • 5.12 ブランチ (LTS版の保守)
  • 5.13 ブランチ (最新版の保守)
  • 5.14 ブランチ (5.14 の開発)
  • dev ブランチ (5.15 の開発)
  • wip/qt6 ブランチ(Qt 6 の先行開発)

今回の提案の内容

Qt 5.15 LTS は新機能は最小限に留めるため、もう dev で Qt 6 の開発を行ってしまおうというのが今回の提案です。合意に至ると以下のようになることになります。

  • 5.12 ブランチ (LTS版の保守)
  • 5.13 ブランチ (最新版の保守, 5.14 のリリース時にほぼ役目を終える)
  • 5.14 ブランチ (5.14 の開発)
    • 5.15 ブランチ (5.14 から後ほど分離)
  • dev ブランチ (Qt 6 の開発)
    • wip/qt6 ブランチをマージする

5.14 ブランチはすぐにでも行われる予定のため、順調に行けば、今月にでも Qt 6 の開発が dev ブランチで行われるようになるでしょう。

Qt 6 を素晴らしいものにしましょう

これから約1年間をかけて開発する Qt 6 ですが、技術的な大枠は Qt 6 の技術的なビジョン にて示されています。

ミクロなレベルで見ると、Qt 5 では直せなかった API の不具合は こんなもの 以外にもたくさんあります。Qt 6 のリリース時に人事を尽くしたと言えるように、バグの修正や大小を問わず様々な提案、コードレベルでの修正や改善などを頑張って行けたらいいなと思います。

Qt の開発はオープンソースで行われているため、どなたでも開発に参加することが可能です。

ぜひ、みんなの力で Qt 6 を素晴らしいものにしましょう!

個人的に、Qt 5.0 に対しても少なからず貢献することができた ので、Qt 6 に向けても何かできたらいいなと思っています。

2019-08-20 追記

5.14 ブランチが分岐しました

今回の提案に対して大きな反対はなかったこともあり、開発者メーリングリストで、dev から 5.14 ブランチが分岐したことがアナウンスされました。

HEADS-UP: Branching from ‘dev’ to ‘5.14’ started

Qt 5 向けの開発は今後は 5.14 ブランチ → 5.15 ブランチで行い、Qt 6 向けの開発は dev で行うことになります。

(既存の dev 向けの作業中のコミットを 5.14 向けにするのめんどくさいなぁ)

あわせて読みたい