Yesterday night KDE Akademy 2021 ended after eight fun and productive days filled with talks, BoFs, workshops, discussions and meetings with old and new friends.

Akademy 2021 group photo
CC-BY Photo by the Akademy team


I did two talks, the slides (including bonus ones with links to the various things mentioned in the presentation) are available on the conference website:

Video recordings should become available as well.

Meetings/BoFs/Hallway Discussions

I can’t possibly cover everything in just one post, so here are just some highlights from my notes on discussions I have been involved with. I’m sure some of that will show up in more detail in future posts, or posts by others.

All About The Apps

The various sessions related to the All About The Apps goal are probably where I spent most of my time. Covering this in all its facets helped to connect the people working around CI/CD, release automation, packaging, delivery, etc for their respective applications and platforms, as ultimately there is quite some overlap and opportunity for sharing work.

Topics included:

  • Improving the developer experience when using Craft for local Android builds.
  • Moving more of the package content selection from application specific solutions to general Craft solutions for Android.
  • Bringing together the various bits of AppStream related tooling to remove duplication, and expand our use of AppStream to release notes.
  • The upcoming migration from Jenkins to Gitlab for our CI and Binary Factory.
  • The upcoming AAB package requirement in the Google Play store.
  • Migrating our Android applications from the Material style provided by Qt to our own Breeze style.
  • Deployment of the Google Play update automation.
  • Our release QA process and ways to automate it.
  • A rework of the current translation extraction and merging pipeline (scripty).

The #kde-all-about-the-apps, #kde-craft and/or #kde-android Matrix channels are worth joining if any of that is of interest to you. Detailed meeting notes can be found there as well.

In case you always wanted to get involved in KDE but were put off by the use of C++/QML for application development because you feel more at home with say Python scripting, Gitlab API and/or DevOps-y tasks, there is plenty of work in that area here that would benefit from a few helping hands :)

KDE Frameworks 6

The upcoming transition to Qt 6 and the changes related to that in KDE Frameworks were another big topic, in meetings and a number of talks.

  • David finished an ECM patch I had started but failed to complete so far which will enable supporting both Qt 5 and Qt 6 in a central part of ECM. This in turns allows us to add Qt 6 support in Frameworks already before branching. That’s important as it allows for earlier testing of Qt 6 based code, and reduces the transition time.
  • Renewed attention for the dependency problem around KColorScheme, which is getting into the way of the planned transition to the Breeze style on Android. A first set of patches removing its widget dependency have meanwhile been integrated.
  • Lars explicitly stated in the Q&A to his talk on Friday that Qt Location will return after Qt 6.2, which is very good news for KDE Itinerary, which relies on that for its favorite location editor.
  • QTextCodec remains an area of concern, lacking a suitable Qt 6 replacement. A first step to prepare for that is phasing out QTextCodec from the public API in KF5::Codecs.
  • Kévin presented his findings on untangling cross-platform and platform abstractions Frameworks from those that are aimed at platform building or the Plasma platform specifically.

To get involved or to just follow the work you might want to join the #kf6 Matrix channel, and the weekly call, which is being rescheduled for more people to be able to attend.


KDE’s Yocto recipes for Frameworks 5 and Plasma and Applications also received some attention, with Andreas doing all the work there.

  • Frameworks packages now include translations. That includes switching from building from Git to using tarballs, and new upgrade automation scripts for that.
  • The last user of the legacy kdelibs4support package is gone, thanks to the Plasma 5.22 update.
  • The demo image has been extended to include many of the Plasma Mobile apps, and upgrade automation scripts for the Plasma Mobile Gear releases has been added.
  • License information in the Yocto recipes is improving as we are able to leverage more of the REUSE compliance work in KDE Frameworks.

Vaccination Certificates

One topic I hadn’t seen coming is digital vaccination certificates. Those are rolled out in for example India and across Europe and we somehow ended up dissecting them out of curiosity. This escalated a bit and by the end of the week we had:

  • Base45 decoding support in KF5::Codecs.
  • Multi-camera selection support in Qrca, so you can conveniently scan barcodes on the same system that is running your multi-camera video conference setup.
  • The KHealthCertificate library for decoding Indian and European vaccination certificates, as well as European test and recovery certificates. There is potential for use of that in MyGNUHealth, KDE Itinerary, Qrca and/or in a standalone health certificate wallet app.

Somewhat related, Nico also added extractors for a number of vaccination and test center reservation systems to the semantic data extractor used by KDE Itinerary, KMail and Nextcloud Mail.

Thank You!

A big thank you to everyone who helped to make Akademy possible again!

Akademy is immensely valuable, the above is just a tiny glimpse into the productivity we achieve when having everyone together for a week, even if just virtual, not to mention the big motivational boost we get out of this.

If this is something you’d like to support, check out the donation options of KDE e.V..

Looking forward to doing this again next year, hopefully finally in person then :)