SoK/2022/StatusReport/Snehit Sah

From KDE Community Wiki

Packaging KDE Applications for Flathub

KDE team maintains Flatpak manifests for nightly builds on master branches of various KDE projects at Flatpak master repo on Invent. These needed to be edited to build stable releases from tarballs. Also, different functionalities had to be tested before submitting to Flathub.

As a side effect of this project, I also added content rating tags to appdata files for many KDE projects, as this was required for inclusion to Flathub.

Blog posts

I capture my progress in detail on my blog. You can find status updates and complete submissions list here.

Brief progress timeline

Week 1 and 2

Jan 24 - Feb 6

Season of KDE officially started on 24th January. I had submitted a couple of easy manifests before the program too, which helped me learn the process. I used the first two weeks to submit relatively easy applications to Flathub. I also sent some pull requests to KDF. Since I did not have classes, I could make more submissions during this time.

Week 3, 4 and 5

Feb 7 - Feb 26

During this time, I tackled the application that required more time dedication. While progress was slow if you compare raw numbers from first two weeks, I did learn new things during these weeks. I tried to fix a bug in Qtbase, which I eventually put on hold because I could not confirm why my code didn't work and the bug fix was out of scope for SoK.

I also experimented with different ways to partially automate updation process of Flatpak manifests. I tried writing my own utility to achieve that, but I was very quickly pointed to an existing utility by a user. This utility is Flatpak External Data Checker, and I learnt to use it pretty soon.

Week 6 and 7

Feb 27 - Mar 10

I got on to adding checker data to our manifests. I started with the ones on Flathub, then moved on to manifests that we have on KDE Invent. I was initially planning to use the HTML checker to check for update, but Anitya Release Monitoring turned out to be a much more reliable option.

Week 8 and 9

Mar 11 - Mar 25

I worked on writing scripts for the CI Pipelines that I wanted to add on KDE Invent.

First script is to automate updates for our Flatpak manifests. The basic work is done and it will be finalized once we decide where our manifests will finally be placed.

Second script is for Flatpak CI builds for KDE applications. With more and more KDE applications being published to Flathub, having Flatpak CI buids on KDE Invent will let project maintainers spot issues quicker and fix them before the Flatpak packaging team updates applications on Flathub, thus reducing surprises when packaging.


Final Weeks

Mar 26 - Apr 13

During this time I got suggestions on my scripts from my mentor. My scripts underwent a lot of change.

We then decided to submit the Flatpak CI script to the sysadmin repository. The pull request is currently a draft under review. Ben Cooksley has given some good suggestions and I'll implement them.

Beyond SoK

I have learnt a lot about Flatpaks and will continue helping out with whatever help KDE needs with that. As for my SoK project, I will finalize the two CI scripts and have them included in due time.

Contact

I am on Matrix as @flyingcakes:kde.org. You can also reach out to me via one of the social links on my website.