Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Checklist for Qt 6.0 inclusion: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Qt Widgets)
 
(81 intermediate revisions by 25 users not shown)
Line 1: Line 1:
[[Category:Developing Qt::Qt6]]
[[Category:Developing Qt::Qt6]]


'''''This document is still in draft mode.'''''
__TOC__


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 too small other considerations such as a delayed release schedule or feature drop 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 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.
=== Deadline ===
 
We want to have clarity on the list of 6.0 modules by end of June. Adding two weeks of deliberations based in the feedback implies that the '''15. June 2020''' is the deadline for the module data. To avoid dragging the process out due to missing information, no response implies the module is automatically not included in Qt 6.0.


== Release Criteria ==
== Release Criteria ==
Line 18: Line 21:
** Target definition:
** Target definition:
*** Library, examples & tests have been ported
*** Library, examples & tests have been ported
*** The module is build & tested in the CI using cmake
*** The module is built & tested in the CI using cmake and tests pass
* Continuous Integration for Qt 6
* 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)
** git repo is part of regular submodule update bot runs in dev (qt5.git/.gitmodules status != ignore)
* Other open comments serving as extenuating circumstances
** Works with the supported platforms in CI for Qt 6.0
* Backlog trajectory
* Backlog trajectory
** Link to Jira stating the not completed and completed Qt 6.0 development tasks
** Link to Jira stating the not completed and completed Qt 6.0 development tasks
* Review of already done API changes
* Reviews
** Demonstrate an active review of existing API changes
** Initial review of public API done (is maintainer aware of/happy with the current state?)
* Porting information available
** Are the API changes on track measured against the expectations
* Porting/Documentation information available
** Simple list of completed API changes which may later be used to write Qt6 migration docs
** 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 ==
== Status per Module ==


=== Essential Modules ===
=== Review Template ===
 
==== Module Name ====
 
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete | Not Complete (<Missing part>)
|-
| Jira backlog || {{Issue|Jira-ticket}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>                      | <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}


Note that the list of essential modulesmay be revised in light of Qt 6.0.
=== State of Essential Modules ===
 
Note that the list of essential modules may be revised in light of Qt 6.0.


==== Qt Core ====
==== Qt Core ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-71036}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance || Definition of Ready is relative to QtCore!
|}
==== Qt GUI ====
==== Qt GUI ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-72560}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
==== Qt Multimedia ====
==== Qt Multimedia ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete | Not Complete
|-
| Jira backlog || {{Issue|Jira-ticket}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>                      | <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance || Not included in Qt 6.0. 
|}
==== Qt Multimedia Widgets ====
==== Qt Multimedia Widgets ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete |Not Complete
|-
| Jira backlog || {{Issue|Jira-ticket}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>                      | <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance || Not included in Qt 6.0. 
|}
==== Qt Network ====
==== Qt Network ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-75638}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
==== Qt QML ====
==== Qt QML ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || https://bugreports.qt.io/secure/RapidBoard.jspa?rapidView=292&view=planning.nodetail&selectedVersion=12127
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance || There won't be any big C++ API changes in 6.0. QML-to-C++ compiler for a reduced dialect of QML is being developed.
|}
==== Qt Quick ====
==== Qt Quick ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance || Purging the legacy direct OpenGL rendering bits is on-going
|}
==== Qt Quick Controls 2 ====
==== Qt Quick Controls 2 ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-82256}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt Quick Dialogs ====
==== Qt Quick Dialogs ====
==== Qt Quick Layouts ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not started
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtquickcontrols).
|-
| Comments/Circumstance || Qt Quick Dialogs still live in the Qt Quick Controls 1 repository, which will not be part of Qt 6. Code needs to be moved over to Qt Quick Controls 2 or into a separate repository, and ported to Qt Quick Controls 2. The Dialog in Qt Quick Controls 2 is currently very limited (a popup pane within the window, not independent top level windows, and without implementation of any content for choosing files, colors or fonts); whereas the dialogs in QtQuick.Dialogs are actual top-level windows (when possible, or popup panes otherwise) and work on any platform, with native dialogs or with QML substitute implementations.  So users will not be satisfied if they are missing; they need to be ported forward eventually.  Another fallback for now is Qt.labs.platform, which should not be taken out of Labs because it creates a dependency on widgets.
|}
 
==== Qt SQL ====
==== Qt SQL ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || [https://bugreports.qt.io/browse/QTBUG-84760 QTBUG-84760]
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase)
|-
| Comments/Circumstance ||
|}
==== Qt Widgets ====
==== Qt Widgets ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-69410}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}


=== Add-on Modules ===
=== State of Add-on Modules ===


==== Active Qt ====
==== Active Qt ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Nearly complete
|-
| Jira backlog || {{Issue|QTBUG-78167}}
|-
| Recent CI SHA || cbd857b53f0c525e398b33889325f256699977bc
|-
| gitmodules/submodule bot || Not sure
|-
| Comments/Circumstance || Not in initial set for Qt 6
|}
==== Qt 3D ====
==== Qt 3D ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-84552}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || Yes
|-
| Comments/Circumstance ||
|}
==== Qt Android Extras ====
==== Qt Android Extras ====
Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.
==== Qt Bluetooth ====
==== Qt Bluetooth ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete (not yet enabled in CI)
|-
| Jira backlog || {{Issue|QTBUG-62877}}
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Charts ====
==== Qt Charts ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || <span style="color: red">Not complete</span>
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Concurrent ====
==== Qt Concurrent ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-80908}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
==== Qt D-Bus ====
==== Qt D-Bus ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || No particular item planned
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
==== Qt Data Visualization ====
==== Qt Data Visualization ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || <span style="color: red">Not complete</span>
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Gamepad ====
==== Qt Gamepad ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || <span style="color: red">Not complete</span>
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Graphical Effects ====
==== Qt Graphical Effects ====
Note, this module does not ship with 6.0. It will rather become a BSD licensed repository.
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not included in 6.0</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-78572}} {{Issue|QTBUG-85256}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance || The RHI port supports 17 out of 25 effects. The 8 unsupported ones are removed.
|}
==== Qt Help ====
==== Qt Help ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || NA (API will be internal for 6.0)
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt Image Formats ====
==== Qt Image Formats ====
{|
|-
! Status Summary
! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Done
|-
| Jira backlog || N.A.
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Lottie ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || <span style="color: red">Not complete</span>
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Location ====
==== Qt Location ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete
|-
| Jira backlog || {{Issue|QTBUG-72239}}
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Mac Extras ====
==== Qt Mac Extras ====
Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.
==== Qt Network Authorization ====
==== Qt Network Authorization ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt OpenGL ====
==== Qt OpenGL ====


Note, this module is deprecated in Qt 5.15 and therefore may no longer be shipped in Qt 6.
Note, the contents of this module is different in Qt 6 compared to Qt 5. The old, deprecated, Qt 4 era QGL* classes are removed. Now it contains the QOpenGL* classes.
 
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
 
==== Qt OpenGL Widgets ====
Note, new in Qt 6. Contains QOpenGLWidget, which used to live in Qt Widgets in Qt 5.
 
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase).
|-
| Comments/Circumstance ||
|}
 
==== Qt Platform Headers ====
==== Qt Platform Headers ====
Will become private API in 6.0
==== Qt Positioning ====
==== Qt Positioning ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete (not yet enabled in CI)
|-
| Jira backlog || {{Issue|QTBUG-72240}}
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Printing Support ====
==== Qt Printing Support ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||Part of qtbase
|}
==== Qt Purchasing ====
==== Qt Purchasing ====
This module will not be part of Qt 6. Will be replaced by Android and iOS how-to examples ([https://bugreports.qt.io/browse/QTBUG-82847 QTBUG-82847]).
==== Qt Quick 3D ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt Quick Controls 1 ====
==== Qt Quick Controls 1 ====


Line 78: Line 579:


==== Qt Quick Extras ====
==== Qt Quick Extras ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || <span style="color: red">Not complete</span>
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Quick Timeline ====
==== Qt Quick Timeline ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt Quick WebGL ====
==== Qt Quick WebGL ====
{|
|-
! Status Summary
! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Done
|-
| Jira backlog || N.A.
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Quick Widgets ====
==== Qt Quick Widgets ====
Note, this module (and so QQuickWidget) is supported for OpenGL and the 'software' scenegraph backend in Qt 6.0, i.e. what Qt 5 supports. It is not compatible with other graphics APIs.
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || N/A (qtdeclarative).
|-
| Comments/Circumstance ||
|}
==== Qt Remote Objects ====
==== Qt Remote Objects ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete (Needs more testing)
|-
| Jira backlog || {{Issue|QTBUG-84590}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance || In progress, but at risk of making 6.0 if binary incompatible changes to the module cannot be contained in time
|}
==== Qt Script ====
==== Qt Script ====


Line 87: Line 670:


==== Qt SCXML ====
==== Qt SCXML ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Done
|-
| Jira backlog || {{Issue|QTBUG-80316}}
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Script Tools ====
==== Qt Script Tools ====


Line 92: Line 691:


==== Qt Sensors ====
==== Qt Sensors ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Serial Bus ====
==== Qt Serial Bus ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete
|-
| Jira backlog || {{Issue|QTBUG-84145}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt Shader Tools ====
Note, new in Qt 6.
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt Speech ====
==== Qt Speech ====
{|
|-
! Status Summary
! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Done
|-
| Jira backlog || N.A.
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt SVG ====
==== Qt SVG ====
{|
|-
! Status Summary
! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog ||
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
==== Qt UI Tools ====
==== Qt UI Tools ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: green">Ready</span>
|-
| Cmake port ||Complete
|-
| Jira backlog ||
|-
| Recent CI SHA ||Yes
|-
| gitmodules/submodule bot ||
|-
| Comments/Circumstance ||Unit tests passed but would require thorough testing
|}
==== Qt Virtual Keyboard ====
==== Qt Virtual Keyboard ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-84322}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance || Porting to Qt 6 QML needs to be done before we can consider this ready, and the cmake port needs some improvements (see {{Issue|QTBUG-84324}})
|}
==== Qt WebChannel ====
==== Qt WebChannel ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete
|-
| Jira backlog || N/A
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt WebEngine ====
==== Qt WebEngine ====
Not included in Qt 6.0.
==== Qt WebSockets ====
==== Qt WebSockets ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Not Complete
|-
| Jira backlog || N/A
|-
| Recent CI SHA || <span style="color: red">No</span>
|-
| gitmodules/submodule bot || ignored
|-
| Comments/Circumstance ||
|}
==== Qt WebView ====
==== Qt WebView ====
Not included in Qt 6.0.
==== Qt Windows Extras ====
==== Qt Windows Extras ====
Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.
==== Qt X11 Extras ====
==== Qt X11 Extras ====
Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.
==== Qt XML ====
==== Qt XML ====
{| class="wikitable"
|-
! Status Summary !! <span style="color: red">Not Ready</span>
|-
| Cmake port || Done
|-
| Jira backlog || N/A (assessment for Qt 6 not done yet)
|-
| Recent CI SHA || <span style="color: green">yes</span>
|-
| gitmodules/submodule bot || N/A (qtbase)
|-
| Comments/Circumstance ||
|}
==== Qt XML Patterns ====
==== Qt XML Patterns ====


Line 109: Line 877:


==== Qt Wayland Compositor ====
==== Qt Wayland Compositor ====
==== Qt X11 Extras ====
{|
|-
! Status Summary
! <span style="color: green">Ready</span>                      | <span style="color: green">Ready</span>
|-
| Cmake port || Complete
|-
| Jira backlog || {{Issue|QTBUG-78673}}
|-
| Recent CI SHA || <span style="color: green">Yes</span>
|-
| gitmodules/submodule bot || <span style="color: green">Yes</span>
|-
| Comments/Circumstance ||
|}
 
=== State of Value Add-on Modules (Qt for Automation) ===
==== Qt COAP ====
{| class="wikitable"
!Status Summary
!<span style="color: green">Ready</span>
|-
|Cmake port
|Complete
|-
|Jira backlog
|
|-
|Recent CI SHA
|<span style="color: green">Yes</span>
|-
|gitmodules/submodule bot
|<span style="color: green">Yes</span>
|-
|Comments/Circumstance
|}
 
==== Qt KNX ====
This module will not be included in Qt 6.0.
 
==== Qt MQTT ====
{| class="wikitable"
|-
!Status Summary
!<span style="color: green">Ready</span>
|-
|Cmake port
|Complete
|-
|Jira backlog
|
|-
|Recent CI SHA
|<span style="color: green">Yes</span>
|-
|gitmodules/submodule bot
|ignored
|-
|Comments/Circumstance
|}
 
==== Qt OPCUA ====
{| class="wikitable"
|-
!Status Summary
!<span style="color: green">Ready</span>
|-
|Cmake port
|Mostly Complete
|-
|Jira backlog
|
|-
|Recent CI SHA
|<span style="color: green">Yes</span>
|-
|gitmodules/submodule bot
|ignored
|-
|Comments/Circumstance
|}

Latest revision as of 08:57, 24 September 2020


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 too 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.

Deadline

We want to have clarity on the list of 6.0 modules by end of June. Adding two weeks of deliberations based in the feedback implies that the 15. June 2020 is the deadline for the module data. To avoid dragging the process out due to missing information, no response implies the module is automatically not included in Qt 6.0.

Release Criteria

  • Port to cmake on target for completion
    • Target definition:
      • Library, examples & tests have been ported
      • The module is built & tested in the CI using cmake and tests pass
  • 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)
    • Works with the supported platforms in CI for Qt 6.0
  • Backlog trajectory
    • Link to Jira stating the not completed and completed Qt 6.0 development tasks
  • Reviews
    • Initial review of public API done (is maintainer aware of/happy with the current state?)
    • Are the API changes on track measured against the expectations
  • Porting/Documentation 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

Status Summary Not Ready
Cmake port Not Complete (<Missing part>)
Jira backlog JIRA-TICKET
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

State of Essential Modules

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

Qt Core

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-71036
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance Definition of Ready is relative to QtCore!

Qt GUI

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-72560
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt Multimedia

Status Summary Not Ready
Cmake port Not Complete
Jira backlog JIRA-TICKET
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance Not included in Qt 6.0. 

Qt Multimedia Widgets

Status Summary Not Ready
Cmake port Not Complete
Jira backlog JIRA-TICKET
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance Not included in Qt 6.0. 

Qt Network

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-75638
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt QML

Status Summary Ready
Cmake port Complete
Jira backlog https://bugreports.qt.io/secure/RapidBoard.jspa?rapidView=292&view=planning.nodetail&selectedVersion=12127
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance There won't be any big C++ API changes in 6.0. QML-to-C++ compiler for a reduced dialect of QML is being developed.

Qt Quick

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance Purging the legacy direct OpenGL rendering bits is on-going

Qt Quick Controls 2

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-82256
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt Quick Dialogs

Status Summary Not Ready
Cmake port Not started
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtquickcontrols).
Comments/Circumstance Qt Quick Dialogs still live in the Qt Quick Controls 1 repository, which will not be part of Qt 6. Code needs to be moved over to Qt Quick Controls 2 or into a separate repository, and ported to Qt Quick Controls 2. The Dialog in Qt Quick Controls 2 is currently very limited (a popup pane within the window, not independent top level windows, and without implementation of any content for choosing files, colors or fonts); whereas the dialogs in QtQuick.Dialogs are actual top-level windows (when possible, or popup panes otherwise) and work on any platform, with native dialogs or with QML substitute implementations. So users will not be satisfied if they are missing; they need to be ported forward eventually. Another fallback for now is Qt.labs.platform, which should not be taken out of Labs because it creates a dependency on widgets.

Qt SQL

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-84760
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase)
Comments/Circumstance

Qt Widgets

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-69410
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

State of Add-on Modules

Active Qt

Status Summary Ready
Cmake port Nearly complete
Jira backlog QTBUG-78167
Recent CI SHA cbd857b53f0c525e398b33889325f256699977bc
gitmodules/submodule bot Not sure
Comments/Circumstance Not in initial set for Qt 6

Qt 3D

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-84552
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt Android Extras

Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.

Qt Bluetooth

Status Summary Not Ready
Cmake port Complete (not yet enabled in CI)
Jira backlog QTBUG-62877
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Charts

Status Summary Not Ready
Cmake port Not complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Concurrent

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-80908
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt D-Bus

Status Summary Ready
Cmake port Complete
Jira backlog No particular item planned
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt Data Visualization

Status Summary Not Ready
Cmake port Not complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Gamepad

Status Summary Not Ready
Cmake port Not complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Graphical Effects

Note, this module does not ship with 6.0. It will rather become a BSD licensed repository.

Status Summary Not included in 6.0
Cmake port Complete
Jira backlog QTBUG-78572 QTBUG-85256
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance The RHI port supports 17 out of 25 effects. The 8 unsupported ones are removed.

Qt Help

Status Summary Ready
Cmake port Complete
Jira backlog NA (API will be internal for 6.0)
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt Image Formats

Status Summary Not Ready
Cmake port Not Done
Jira backlog N.A.
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Lottie

Status Summary Not Ready
Cmake port Not complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Location

Status Summary Not Ready
Cmake port Not Complete
Jira backlog QTBUG-72239
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Mac Extras

Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.

Qt Network Authorization

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt OpenGL

Note, the contents of this module is different in Qt 6 compared to Qt 5. The old, deprecated, Qt 4 era QGL* classes are removed. Now it contains the QOpenGL* classes.

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt OpenGL Widgets

Note, new in Qt 6. Contains QOpenGLWidget, which used to live in Qt Widgets in Qt 5.

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtbase).
Comments/Circumstance

Qt Platform Headers

Will become private API in 6.0

Qt Positioning

Status Summary Not Ready
Cmake port Complete (not yet enabled in CI)
Jira backlog QTBUG-72240
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Printing Support

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance Part of qtbase

Qt Purchasing

This module will not be part of Qt 6. Will be replaced by Android and iOS how-to examples (QTBUG-82847).

Qt Quick 3D

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

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

Status Summary Not Ready
Cmake port Not complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Quick Timeline

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt Quick WebGL

Status Summary Not Ready
Cmake port Not Done
Jira backlog N.A.
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Quick Widgets

Note, this module (and so QQuickWidget) is supported for OpenGL and the 'software' scenegraph backend in Qt 6.0, i.e. what Qt 5 supports. It is not compatible with other graphics APIs.

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot N/A (qtdeclarative).
Comments/Circumstance

Qt Remote Objects

Status Summary Not Ready
Cmake port Not Complete (Needs more testing)
Jira backlog QTBUG-84590
Recent CI SHA Yes
gitmodules/submodule bot ignored
Comments/Circumstance In progress, but at risk of making 6.0 if binary incompatible changes to the module cannot be contained in time

Qt Script

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

Qt SCXML

Status Summary Not Ready
Cmake port Not Done
Jira backlog QTBUG-80316
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Script Tools

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

Qt Sensors

Status Summary Not Ready
Cmake port Not Complete
Jira backlog
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Serial Bus

Status Summary Not Ready
Cmake port Not Complete
Jira backlog QTBUG-84145
Recent CI SHA Yes
gitmodules/submodule bot ignored
Comments/Circumstance

Qt Shader Tools

Note, new in Qt 6.

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt Speech

Status Summary Not Ready
Cmake port Not Done
Jira backlog N.A.
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt SVG

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt UI Tools

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot
Comments/Circumstance Unit tests passed but would require thorough testing

Qt Virtual Keyboard

Status Summary Not Ready
Cmake port Complete
Jira backlog QTBUG-84322
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance Porting to Qt 6 QML needs to be done before we can consider this ready, and the cmake port needs some improvements (see QTBUG-84324)

Qt WebChannel

Status Summary Not Ready
Cmake port Not Complete
Jira backlog N/A
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt WebEngine

Not included in Qt 6.0.

Qt WebSockets

Status Summary Not Ready
Cmake port Not Complete
Jira backlog N/A
Recent CI SHA No
gitmodules/submodule bot ignored
Comments/Circumstance

Qt WebView

Not included in Qt 6.0.

Qt Windows Extras

Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.

Qt X11 Extras

Not included in Qt 6.0. Will find new home in the more relevant modules over time, and the remaining APIs considered included in later 6.x releases.

Qt XML

Status Summary Not Ready
Cmake port Done
Jira backlog N/A (assessment for Qt 6 not done yet)
Recent CI SHA yes
gitmodules/submodule bot N/A (qtbase)
Comments/Circumstance

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

Status Summary Ready
Cmake port Complete
Jira backlog QTBUG-78673
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

State of Value Add-on Modules (Qt for Automation)

Qt COAP

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot Yes
Comments/Circumstance

Qt KNX

This module will not be included in Qt 6.0.

Qt MQTT

Status Summary Ready
Cmake port Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot ignored
Comments/Circumstance

Qt OPCUA

Status Summary Ready
Cmake port Mostly Complete
Jira backlog
Recent CI SHA Yes
gitmodules/submodule bot ignored
Comments/Circumstance