Guarantee compatibility for Qt's extension protocols
Spell out and formalize the policy that we have been following since Qt 5.4: We don't break compatibility for our internal protocols. Otherwise, it would not be safe to use a Qt client with a Qt-based compositor. Change-Id: I632e9fbb56095ab07560413977c79777ae9fdcd2 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
This commit is contained in:
parent
ecf297ac72
commit
7f21a684f7
18
src/3rdparty/wayland/extensions/README.md
vendored
18
src/3rdparty/wayland/extensions/README.md
vendored
@ -3,12 +3,10 @@
|
||||
The protocol extensions in this folder are considered implementation details of
|
||||
Qt. I.e. they may removed, renamed or changed without warning.
|
||||
|
||||
## Suffixed protocols
|
||||
|
||||
For protocols that have a version suffix, however, we will strive to not break
|
||||
backwards compatibility without bumping the suffix (renaming the protocol).
|
||||
E.g.: If your client sees a `zqt_key_v1` global, it can safely bind to it:
|
||||
the key event will always take the same number of arguments, regardless of
|
||||
However, starting with Qt 5.4, we promise not to break backwards compatibility
|
||||
without renaming (or removing) the protocol. I.e., if your client sees a global
|
||||
from one of these extensions, it can safely bind to it: the existing events
|
||||
and requests will always take the same number of arguments, regardless of
|
||||
compositor version.
|
||||
|
||||
This is important also within a Qt-only scope if there are multiple versions of
|
||||
@ -16,3 +14,11 @@ Qt on the system. Consider for instance an application statically linked to Qt
|
||||
(such as Qt Creator) running against a Qt compositor installed by the distro).
|
||||
In such cases we don't want the compositor and client to disagree on the
|
||||
protocol definition.
|
||||
|
||||
## Protocol versioning.
|
||||
|
||||
Protocol extensions in this folder should be versioned (e.g. `zqt_key_v1`).
|
||||
If it is necessary to break protocol compatibility, they will be renamed by
|
||||
incrementing the version number. For legacy reasons, there are also unversioned
|
||||
protocols in this folder. Those protocols should be renamed to be versioned
|
||||
if compatibility is broken.
|
||||
|
Loading…
x
Reference in New Issue
Block a user