SoK/2023/StatusReport/Neelaksh Singh

From KDE Community Wiki

Systematization 1: Automate Flatpak checks in GitLab Invent CI

Adding Flatpak CI/CD to Application Repository

Project type: CI/CD pipeline | Script | Documentation

Introduction and Abstract: Flatpak is a new method of packaging and distributing applications that let KDE developers offer them easily for a lot of users via Flathub. Automating build and packaging checks in CI is one of KDE's goals for the next two years (Automate and systematize internal processes).

Building on the work from previous SoK project, my task was to setup Flatpak builds in KDE's GitLab CI (as shown in invent.kde.org) for KDE Applications. As the next step, I turned these applications to Nightly builds in the Flatpak Repository.

There already exists manifests for KDE applications hosted on Flathub. My work aimed to move manifest files for as many of these KDE applications to their respective repository on GitLab, to give benefits from checks during Merge Requests via KDE Invent's GitLab CI.

Mentor: Timothée Ravier (@siosm:matrix.org) & Aleix Pol (@apol:kde.org)

Blog Posts:

CI/CD with Flatpak

Files and Links:

HackMD

Apps with successful flatpak pipeline and Nightly Builds

Weekly Progress

WEEKS 1 - 3: I started by getting acquainted with the KDE community and learning about Flatpak Packaging. I also familiarized myself with the Flathub ecosystem and understanding the key aspects missing in the manifests present in the flatpak repository. We discussed PoA for getting the correct manifest files, standardized approach for adding them to respective applications and adding the necessary license file. We decided upon the distribution of work in phases and created the hackmd file for tracking changes and updates.

WEEKS 4 - 9: I stated to raise PR's for application with their respective flatpak manifest, along with license file. Also added the flatpak build pipeline to .gitlab.ci . I opened PR's for almost 50+ applications that are currently being hosted on Flathub. The general process I followed was forking the application, using the Web IDE provided by GitLab I would add all the necessary files and lines. For adding manifests, I took the manifest on Flathub to be the source of truth and added the same to the respective applications after making the required changes. At starting we were using the KDE platform runtime version as 5.15-21.08 which was later changed to the new an updated 5.15-22.08 version.

WEEKS 10 - 12: Most of the days were spent in resolving application mentor's queries on the PR's and getting regular updates on the merge status. I focused on writing blog as well as including the nightly builds for the application that were successfully building the flatpak build artifacts.

Overall Experience

The entire program was quite intuitive as I got to learn about a completely new tooling test suit. A large part of the program success goes to my mentors who provided their advice and guidance whenever/wherever needed. This was made possible through our regular weekly sync-ups.

CONTACT ME: Matrix: @neelaksh:matrix.org