blob: cc8d4ff9bb444446fa3b956af6d22e0d12656960 [file] [log] [blame]
Qt 5.13 introduces many new features and improvements as well as bugfixes
over the 5.12.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:
https://doc.qt.io/qt-5/index.html
The Qt version 5.13 series is binary compatible with the 5.12.x series.
Applications compiled for 5.12 will continue to run with 5.13 under most
conditions. There may be exceptions if you are using Qt Remote Objects
between proesses or devices running different versions Qt. The different
versions of Qt must be running compatible versions of QtRO's protocol.
Changes to the Qt Remote Objects protocol are documented online:
https://doc.qt.io/qt-5/qtremoteobjects-compatibility.html
The QtRO protocol has been updated in Qt 5.12.4 and Qt 5.13.0 to 1.3.
Background: Qt's QueuedConnections work by copying signal parameters so
the copy can be held and then later processed in another threads
eventloop, allowing the original data to be changed in the originating
thread.
Qt Remote Objects leverages this capability and sends that data from a
QObject in one process to a QObject in another. There is a specific
protocol for this, as both sides need to interpret what is sent the
same way. For example, there are Invoke and PropertyChanged packets
exchanged. In addition to this, both sides need to know how to encode and
decode all types shared. This type awareness is easy to ensure if the
repc compiler is used to generate the headers for all sides.
However, there are use cases where this isn't possible. In these cases
QtRO will send the type (metaobject) information as well, allowing the
receiving side to generate the required type information at runtime for
certain types (PODs and enumerations).
There were issues found in this type serialization code that required a
change to the protocol. There are a number of commits going into both
Qt 5.13.0 and Qt 5.12.4 with fixes. This means that you will not be able
to use Qt Remote Objects on a device using Qt 5.12.3 or earlier and
communicate to another device using Qt 5.12.4/5.13.0.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
https://bugreports.qt.io/
The following fixes were part of the above protocol change and are in
5.12.4 and 5.13.0.
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
- QTBUG-75017: QtRO processes can crash if type registration is incorrect
- QTBUG-75056: Correctly handle QVariant properties on the replica side
- QTBUG-74084: QT remote objects false conversion warning in case of
QVariant property