Flathub 2019 roundup

31 Dec 2019

One could say that the Flathub team is working silently behind the scenes most of the time and it wouldn’t be far from the truth. Unless changes are substantial, they are rarely announced elsewhere than under a pull request or issue on GitHub. Let’s change it a bit and try to summarize what was going on with Flathub over the last year.

Beta branch and test builds

2019 started off strong. In February, several improvements to general workflow but also how things under the hood work landed. Maintainers gained the ability to sign-in to buildbot to manage the builds and start new ones without having to push new commits. A delay has been introduced between finishing the build and publishing it to the stable repository to the possibility to test new build locally and also publish it faster or scrap it altogether. The initial delay was 24 hours but as it was too confusing, it was shortened to 3 hours.

Perhaps most importantly, the changes made it possible to publish test builds of pull requests and completely new applications. Additionally, Flathub gained support for publishing applications to separate beta remote.

Alex wrote more about the changes on his blog.

New reviewer

The review team so far consisted of me, Patrick Griffis and Nick Richards. As each of us has different time commitments, every now and then we were falling behind with handling new application submissions.

We have invited Bilal Elmoussaoui to join us. As he already was reviewing new pull requests and improving GNOME applications manifests, letting him merge changes was only a formality. Late congratulations!


In November, we have officially integrated external-data-checker, a tool that detects missing sources (not limited to extra-data!) and submits pull requests with fixes. It was described in detail by one of its authors, Will Thompson, here. You can also read my announcement.


Buildbot started validating appdata files with appstream-glib.

As Flatpak and flat-manager gained support for end-of-life-rebase, the setting was also exposed to maintainers via flathub.json. It’s especially useful for applications that changed their ID, as Flatpak can “seamlessly” switch users to the new app. Currently, it’s not supported by GNOME Software or KDE Discover and only visible in the terminal. This is how it looks like:


We also automated merging new applications as it was completely manual so far. Similarly to external-data-checker, it uses Github Actions under the hood and can be inspected in Flathub’s actions repository.

From boring infrastructure news, flat-manager-client was switched to use aiohttp which improved upload reliability for bigger applications. I also deployed basic infrastructure monitoring to be less surprised when particular builder runs out of disk space or goes offline.


Excluding SDK extensions and themes, 273 applications were submitted and added to Flathub. This brings the total number to 744!

While we don’t expose download statistics in a fancy way (yet!), anyone who likes to play with JSON files can find them here. 10 most downloaded apps are:

  1. Telegram Desktop (751557 downloads)
  2. GIMP (667460 downloads)
  3. LibreOffice (643486 downloads)
  4. VLC (459069 downloads)
  5. Spotify (414344 downloads)
  6. Skype (393855 downloads)
  7. Steam (341706 downloads)
  8. Visual Studio Code (309148 downloads)
  9. M.A.R.S. (257233 downloads)
  10. Klickety (240809 downloads)

Note that the numbers above include updates from existing installations so they may look overly enthusiastic. These are not statistics of new installs.

Honorable mentions: other KDE apps (KGeography, KNavalBattle, KDiamond), Audacity, Inkscape, Ri-li and The Battle for Wesnoth.

Some plans for 2020

As GitHub turned out to be a poor place for non-technical discussions, we want to adopt Discourse for community forums. It will be also used for official announcements.

We are in progress of migrating the main repository server to new hardware, generously donated by Mythic Beasts. Apart from improved performance thanks to SSD for buffering writes and caching reads, we will also have enough space to keep us going for many years.

Happy New Year!