Problems in KWayland causes by API and ABI compatibility promises

David Edmundson david at davidedmundson.co.uk
Thu Apr 23 22:07:02 BST 2020


We had a meeting. It resulted in some final action decisions.
These will affect the kwayland folder in frameworks.

The meeting was attended by: Kevin Ottens, Vlad Zahorodnii, Aleix Pol,
Myself, Benjamin Port who all approved the plan.

*Protocols:*

We make a new repo. It will contain just protocol XML files.

plasma-wayland-protocols - target is kdesupport.

Existing protocols remain exactly the same, just moved
New protocols follow upstream wayland-protocols naming scheme using the
"zkde_" prefix

*Client - short term:*

We leave things unchanged.

Kwin tests will continue to use KWayland::Client as is, the upcoming fork
KWayalndServer (mentioned in a bit) will stil use it.

If something comes up that requires an ABI break or new classes from client
(XdgShell for example) we deal with it locally in the relevant repo as per
the longer term plan.

We slowly migrate to the long term plan.


*Client - long term direction:*

If something is used in N places - we should abstract things in a high
level API like KWindowSystem.

If it's used in 1 place, we go native with QtWayalndClientExtension and the
generated classes.

Autotests for the server should use generated low-level classes, see for
example the currently merged tabletmanager autotest. If we need something
in kwin and KWaylandServer, we just do it in both.

Client will still have a KF6 library for doing super core stuff such as
ConnectionThread, wl_surface, buffers etc. It won't contain all the extra
protocols.

At KF6 we rename namespace and repo to KWaylandClient.


*Server - short term:*

We make a new repo. It forks existing KWayland::server classes from
framework's kwayland + the autotests. This goes into kwaylandserver

   -

   put in workspace
   -

   no ABI/API guarantees, but released in sync with kwin
   -

   .so bumps each time
   -

   new namespace (i.e KWaylandServer)
   -

   Institute a complete freeze of the server folder in KF5

*Server - long term direction:*

   - Unit tests migrate to testing against just generated code for the
   extra protocols


   - Drop Interface suffix in class names.


   - Drop from KF6


I'm very hopefully this will really help spur our kwin and wayland efforts
as well as prepare us for KF6.


Regards

David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20200423/9db0c28c/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list