KDE Frameworks 6 Android CI and Plasma 6 Sprint
Time for another KDE Frameworks 6 update! Since the last post we got Android CI coverage and had the Plasma 6 sprint, among other things.
Building against Qt6
While we continued to make progress in getting the last bits of Frameworks code to build against Qt6, there are still a few tricky spots remaining, such as:
- QDesktopWidget, e.g. used by KTextEditor for popup positioning. This did look relatively straightforward at first with QScreen being the replacement, but there are subtle differences and different behavior on X11 and/or Wayland that needs very careful testing.
- Low-level OpenGL/EGL code that conflicts with RHI, e.g. used by Plasma Framework for window thumbnails.
Continuous integration for Android
With Android we now have a second platform covered for continuous integration for KF6. This also gives us coverage for a second CPU architecture and, more importantly, cross-compilation.
Android specific API in Qt as well as build system support required a number of changes, but fortunately there are only a few affected areas in KDE Frameworks.
Anyone up for taking on Windows coverage next?
Plasma 6 Sprint
Two weeks ago, we had the Plasma 6 sprint, migration to Qt6/KF6 was obviously a big topic there as well.
In general the migration stategy is similar for Plasma as it is for Frameworks: do as much as possible in the 5 codebase in incremental steps. It’s much easier to test changes on a working foundation, we can deliver improvements to our users in the usual cycle for longer, and we save extra merging/backporting work.
Quite a few things were identified that can be done right away on the basis of Qt5/KF5, such as:
- Port away from Plasma::DataEngine, those are being phased out in favor of “normal” QML modules.
- Complete the port away from Plasma Components 2 (PC2), which are still using the deprecated Qt Quick Controls 1.
- Complete the migration to Plasma’s KWaylandServer module, which supersedes the corresponding Frameworks API.
- Port away from Qt or KF API that has been deprecated and replaced for the latest 5 release already.
You can find the full list on the Plasma 6 workboard.
Another important task is to clearly mark obsolete code and features as such, ie. things that are scheduled for removal in 6, so we don’t waste any time on porting those and instead focus on migrating remaining uses away from them.
Obviously all of the above is the result of a big team effort, and you can be part of that!
The KF6 workboard is the central place for coordinating the work related
to Frameworks 6. There’s also a weekly one hour call on Tuesday 17:00 CET. It’s also worth joining
the kde-frameworks-devel mailing list and the
#kde-devel channel on Matrix.