Flatpak – verification and nightly

Wasn’t sure if a new thread was better or to bump the old thread, so feel free to merge this if you like!

Flatpak is seeing wider and wider adoption in the Linux world and is in my opinion very much the future direction of most 3rd-party software distribution. Several distros (e.g. Fedora and openSUSE) are experimenting with immutable versions where Flatpak is the primary way to install apps. So even though the Avo Flatpak currently sees around 20 installs a day, eventually the way most people will be discovering and getting Avogadro will be through Flathub, so @kevinsmia1939’s work here is very valuable. :slight_smile:

Its increasing popularity plus my Flatpak evangelism mean I have a couple of ideas, if that’s ok, two simple and one more complex…

  1. Get the Avogadro Flatpak verified status

Flathub has recently introduced verification so that users can tell whether apps have been uploaded by the original developers or by the community. And it really doesn’t sound like a huge amount of work!

As with other app stores, a verified tick has a significant impression on users, giving a feeling of professionalism and security due to trust in the source.

  1. Add a “Get on Flathub” link to the main page of two.avogadro.cc

Mostly to raise awareness that the Flatpak exists. It can link to the Flathub page, from which users can do a click-to-install in Discover, GNOME Software etc.

  1. A nightly build as a Flatpak? :smiley:

The nightly AppImage works pretty well at providing bug fixes and latest features in a distro-agnostic way. Flatpaks have two extra key advantages over AppImages. Firstly, their handling of dependencies is better and more consistent across distros, as they use Flatpak runtimes, whereas AppImages still use lots of system packages. Secondly, they have an update mechanism, and can even be set to auto-update.

Could we think about providing a nightly build as a Flatpak in a hosted repo? For me at least, this would be the ideal way to get up-to-date Avogadro.

Just like with any other package manager, Flatpak can be set up with external repos. The Flathub docs indicate you can host in a GitHub repo. And they provide an example of how to do automatic builds with GitHub Actions.

I saw in the old thread that @ghutchis did a fair bit of work looking at automating Flatpak builds, but I don’t know if it got anywhere. The way @kevinsmia1939 does everything seems absolutely perfect for the main releases, so I’m not suggesting that that needs to change at all!

I remember talking with @kevinsmia1939 - but can’t find the conversation. (Probably on GitHub comments.)

It shouldn’t be too hard - I’ve just been pushing more on the code side than the deployment side recently. (e.g., with OpenSSL in the AppImage and Windows)

1 Like

I’ll look into this.

Of course, this is fairly low priority and is more for after 1.99 is out the door. I just thought I’d post about it while I remembered, after stumbling over the manifest example.

Do you have some info on how to create new Flatpak branch?

Hi @kevinsmia1939, thanks for all your work! :smiley:

What do you mean by a new branch?

My suggestion is to package the nightly build as a flatpak, but not to publish it to Flathub as you do with the main releases. So nothing needs to change in your Flathub repo.

Instead it can simply be hosted on the GitHub repo, like the other nightly binaries, and then people who are keen to have the nightly version rather than the latest release can add our repo manually.

The example in the docs indicates that all users then have to do at the end is enter along the lines of flatpak install --user https://gitlab.com/your_user_name/repo_name/-/raw/branch/app_name.flatpakref via the command line.

The main thing there would be to itemize the list of actions / commands needed to build a flatpak so we can add it as a GitHub action.