Checklist for Qt 6.0 inclusion
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.
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. 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.
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
- Target definition:
- Continuous Integration for Qt 6
- git repo is part of regular submodule update bot runs in dev (qt5.git/.gitmodules status != ignore)
- Other open comments serving as extenuating circumstances
- Backlog trajectory
- Link to Jira stating the not completed and completed Qt 6.0 development tasks
- Review of already done API changes
- Demonstrate an active review of existing API changes
- Porting information available
- Simple list of completed API changes which may later be used to write Qt6 migration docs
Status per Module
Essential Modules
Note that the list of essential modulesmay 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
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.