Checklist for Qt 6.0 inclusion: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Added Template for review)
(Minor edits (mostly spelling))
Line 5: Line 5:
'''''This document is still in draft mode.'''''
'''''This document is still in draft mode.'''''


Qt 6 will introduce a lot of changes when compared to Qt 5. To begin with, Qt 6 requires C++17 which by itself excludes some compiles which were supported as part of Qt 5. Other changes are related to APIs, the build system (move from qmake to cmake as Qt's internal build system) or general infrastructure changes in the CI and test infrastructure. Given the deadline for the Qt 6.0 release at the end of 2020, it is likely that not all Qt modules will be ready for the deadline set by the 6.0 release schedule.
Qt 6 will introduce a lot of changes when compared to Qt 5. To begin with, Qt 6 requires C++17 which by itself excludes some compilers which were supported by Qt 5. Other changes are related to APIs, the build system (move from qmake to cmake as Qt's internal build system) or general infrastructure changes in the CI and test setup. Given the deadline for the Qt 6.0 release at the end of 2020, it is likely that not all Qt modules will be ready for the deadline set by the 6.0 release schedule.


== Ready-For-Qt6-Inclusion ==
== Ready-For-Qt6-Inclusion ==


The general list of Qt release criteria (e.g. string freeze, API reviews done, branching) as outlined in the general releases notes of every other Qt 5. release (e.g. [[Qt_5.14_Release|release wiki for Qt 5.14]]) shall continue to apply. However those deadlines and gate criteria are considered to be as "too late" to make the final decision for inclusion. Therefore the notion of an earlier "Ready-for-Qt6-inclusion" checkpoint is being introduced. The current time suggestion for this checkpoint is end of June 2020. A more precise timeline will be suggested later on. Stay tuned.
The general list of Qt release criteria (e.g. string freeze, API reviews done, branching) as outlined by the general releases notes of every Qt 5 release (e.g. [[Qt_5.14_Release|release wiki for Qt 5.14]]) shall continue to apply. However those deadlines and gate criteria are considered to be as "too late" to make the final decision for inclusion. Therefore the notion of an earlier "Ready-for-Qt6-inclusion" checkpoint is being introduced. The current time suggestion for this checkpoint is end of June 2020. A more precise timeline will be suggested later on. Stay tuned.




During this earlier checkpoint each module is assessed against the criteria set out below. It is the maintainers responsibility to ensure that the data is provided for their module on this wiki page. The received feedback is used to evaluate the readiness of each individual module and in turn the readiness of Qt 6. It may also be used to define the list of Qt modules which are on track and may constitute a sufficiently large but nevertheless reduced set of Qt modules ready for Qt 6.0. If the set is deemed to small other considerations such as a delayed release schedule may be considered.
During this earlier checkpoint each module is assessed against the criteria set out below. It is the maintainers responsibility to ensure that the data is provided for their module on this wiki page. The received feedback is used to evaluate the readiness of each individual module and in turn the readiness of Qt 6. It may also be used to define the list of Qt modules which are on track and may constitute a sufficiently large but nevertheless reduced set of Qt modules ready for Qt 6.0. If the set is deemed to small other considerations such as a delayed release schedule or feature drop may be considered.


If the release criteria are not met/stated maintainers may choose to release their module via the next minor release after 6.0 in the series.
If the release criteria are not met/stated maintainers may choose to release their module via the next minor release after 6.0 in the series.
Line 46: Line 46:
gitmodules/submodule bot: ignored | active
gitmodules/submodule bot: ignored | active


Summary: <span style="color: red>Ready</span> | <span style="color: green>Not Ready</span>
Summary: <span style="color: red">Ready</span> | <span style="color: green">Not Ready</span>


Extenuation Circumstances/Other Comments:
Extenuation Circumstances/Other Comments:

Revision as of 11:43, 7 May 2020


This document is still in draft mode.

Qt 6 will introduce a lot of changes when compared to Qt 5. To begin with, Qt 6 requires C++17 which by itself excludes some compilers which were supported by Qt 5. Other changes are related to APIs, the build system (move from qmake to cmake as Qt's internal build system) or general infrastructure changes in the CI and test setup. Given the deadline for the Qt 6.0 release at the end of 2020, it is likely that not all Qt modules will be ready for the deadline set by the 6.0 release schedule.

Ready-For-Qt6-Inclusion

The general list of Qt release criteria (e.g. string freeze, API reviews done, branching) as outlined by the general releases notes of every Qt 5 release (e.g. release wiki for Qt 5.14) shall continue to apply. However those deadlines and gate criteria are considered to be as "too late" to make the final decision for inclusion. Therefore the notion of an earlier "Ready-for-Qt6-inclusion" checkpoint is being introduced. The current time suggestion for this checkpoint is end of June 2020. A more precise timeline will be suggested later on. Stay tuned.


During this earlier checkpoint each module is assessed against the criteria set out below. It is the maintainers responsibility to ensure that the data is provided for their module on this wiki page. The received feedback is used to evaluate the readiness of each individual module and in turn the readiness of Qt 6. It may also be used to define the list of Qt modules which are on track and may constitute a sufficiently large but nevertheless reduced set of Qt modules ready for Qt 6.0. If the set is deemed to small other considerations such as a delayed release schedule or feature drop may be considered.

If the release criteria are not met/stated maintainers may choose to release their module via the next minor release after 6.0 in the series.

Release Criteria

  • Port to cmake on target for completion
    • Target definition:
      • Library, examples & tests have been ported
      • The module is build & tested in the CI using cmake
  • Continuous Integration for Qt 6
    • CI runs against qtbase/qtdeclarative SHA no older than 2 weeks
    • git repo is part of regular submodule update bot runs in dev (qt5.git/.gitmodules status != ignore)
  • Backlog trajectory
    • Link to Jira stating the not completed and completed Qt 6.0 development tasks
  • Reviews
    • Initial API review done
  • Porting information available
    • Simple list of completed API changes which may later be used to write Qt6 migration docs
  • Other open comments serving as extenuating circumstances

Status per Module

Review Template

Module Name

CMake port: Complete | Not Complete (<Missing part>)

Pending Jira items: <link to Jira>

Recent CI SHA: Yes|No

gitmodules/submodule bot: ignored | active

Summary: Ready | Not Ready

Extenuation Circumstances/Other Comments:

State of Essential Modules

Note that the list of essential modules may be revised in light of Qt 6.0.

Qt Core

Qt GUI

Qt Multimedia

Qt Multimedia Widgets

Qt Network

Qt QML

Qt Quick

Qt Quick Controls 2

Qt Quick Dialogs

Qt Quick Layouts

Qt SQL

Qt Widgets

State of Add-on Modules

Active Qt

Qt 3D

Qt Android Extras

Qt Bluetooth

Qt Charts

Qt Concurrent

Qt D-Bus

Qt Data Visualization

Qt Gamepad

Qt Graphical Effects

Qt Help

Qt Image Formats

Qt Location

Qt Mac Extras

Qt Network Authorization

Qt OpenGL

Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.

Qt Platform Headers

Qt Positioning

Qt Printing Support

Qt Purchasing

Qt Quick Controls 1

Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.

Qt Quick Extras

Qt Quick Timeline

Qt Quick WebGL

Qt Quick Widgets

Qt Remote Objects

Qt Script

Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.

Qt SCXML

Qt Script Tools

Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.

Qt Sensors

Qt Serial Bus

Qt Speech

Qt SVG

Qt UI Tools

Qt Virtual Keyboard

Qt WebChannel

Qt WebEngine

Qt WebSockets

Qt WebView

Qt Windows Extras

Qt X11 Extras

Qt XML

Qt XML Patterns

Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.

Qt Wayland Compositor

Qt X11 Extras