Description
appimage.github.io is the crowd-sourced catalog of AppImages. AppImage-focused software centers and stores read its JSON feed, for example AppImagePool, NX Software Center and Manjaro's AppImage listing.
ElectronIM publishes an AppImage for every release but isn't listed there. The catalog doesn't host or redistribute files; it links to our own download location.
Status
The AppImage side is done in #725, but no release contains it yet (the latest is v0.0.123). What's left is a screenshot, a release, and the catalog PR itself, in that order.
What #725 changed, checked against the catalog's checklist in an Ubuntu 22.04 container (the image the catalog's own check runs on) and in CI:
| The AppImage must |
v0.0.123 |
Next release |
| Run on the oldest still-supported Ubuntu LTS (22.04) without extra packages |
✘ The app starts, but the spell checker doesn't load: Nodehun.node needed GLIBC_2.38 because the release was built on ubuntu-latest (24.04) |
✔ Built in an ubuntu:22.04 container. utils/check-glibc.sh fails CI and the release when a native binary needs more than 22.04 provides |
Work with X11, and pass appdir-lint.sh |
✔ Warned that there's no appdata file |
✔ Also validates the appdata file |
Have a desktop file that passes desktop-file-validate |
✔ |
✔ |
| Run without an Internet connection and show something sensible |
✔ The first launch opens the settings dialog |
✔ |
Optional: have AppStream metainfo in usr/share/metainfo that passes appstreamcli validate |
✘ None |
✔ com.marcnuri.electronim.appdata.xml, validated with AppStream 0.15 and 1.0, with its release stamped at tag time. No screenshot yet, see below |
The metainfo is named *.appdata.xml because the catalog only reads listing data from files with that name.
Before submitting: add a screenshot
This blocks the submission. Without <screenshots> in the shipped metainfo the catalog listing gets no image at all. It doesn't fall back to the screenshot it takes itself: in code/worker.sh the *appdata.xml branch wins and writes no screenshots: key, the screenshot.png branch below it is unreachable, and _includes/app_teaser.html only renders images under {% if post.screenshots %}.
The catalog captures the listing once, when the catalog PR merges, from the released AppImage. So the screenshot has to be in the release we submit. Adding it afterwards changes nothing until someone touches data/ElectronIM again.
The existing images in docs/screenshots aren't usable. They're from 2020, show a settings dialog that was redesigned in 2022, and main.png shows a personal Twitter profile.
What the screenshot needs:
- The current UI, ideally a real conversation in one of the services, with a few tabs and without personal data. Flathub's guidelines ask for a window of at most 1000×700, including the window's shadow.
- A file in
docs/screenshots, referenced by a raw URL pinned to the commit that adds it, not to main: https://raw.githubusercontent.com/manusa/electronim/<sha>/docs/screenshots/<file>.png. Released AppImages keep that metainfo forever, so a branch URL would change or break their listings later.
- Exactly one
<image> in the first <screenshot type="default">. The catalog reads screenshot[1]/image and concatenates every <image> in it into a single URL.
- A one-line
<caption>, then appstreamcli validate again (it must stay free of warnings on AppStream 0.15 and 1.0; .github/workflows/tests.yml runs validate-tree on the AppImage).
How to submit
Open a PR that adds a one-line file under data/, data/ElectronIM, containing the stable download URL:
https://github.com/manusa/electronim/releases/latest/download/electronim-linux-x86_64.AppImage
The catalog's test script uses a GitHub URL that contains download as is. A repository URL wouldn't work: autodetection only finds assets named like ElectronIM-1.1-x86_64.AppImage, and renaming ours would break existing download links. Their checklist prefers a constant URL without the version anyway.
A GitHub Actions check then downloads the AppImage, lints it and runs it offline under firejail, and shows the result on the PR.
Tasks
Related
Description
appimage.github.io is the crowd-sourced catalog of AppImages. AppImage-focused software centers and stores read its JSON feed, for example AppImagePool, NX Software Center and Manjaro's AppImage listing.
ElectronIM publishes an AppImage for every release but isn't listed there. The catalog doesn't host or redistribute files; it links to our own download location.
Status
The AppImage side is done in #725, but no release contains it yet (the latest is v0.0.123). What's left is a screenshot, a release, and the catalog PR itself, in that order.
What #725 changed, checked against the catalog's checklist in an Ubuntu 22.04 container (the image the catalog's own check runs on) and in CI:
Nodehun.nodeneededGLIBC_2.38because the release was built onubuntu-latest(24.04)ubuntu:22.04container.utils/check-glibc.shfails CI and the release when a native binary needs more than 22.04 providesappdir-lint.shdesktop-file-validateusr/share/metainfothat passesappstreamcli validatecom.marcnuri.electronim.appdata.xml, validated with AppStream 0.15 and 1.0, with its release stamped at tag time. No screenshot yet, see belowThe metainfo is named
*.appdata.xmlbecause the catalog only reads listing data from files with that name.Before submitting: add a screenshot
This blocks the submission. Without
<screenshots>in the shipped metainfo the catalog listing gets no image at all. It doesn't fall back to the screenshot it takes itself: incode/worker.shthe*appdata.xmlbranch wins and writes noscreenshots:key, thescreenshot.pngbranch below it is unreachable, and_includes/app_teaser.htmlonly renders images under{% if post.screenshots %}.The catalog captures the listing once, when the catalog PR merges, from the released AppImage. So the screenshot has to be in the release we submit. Adding it afterwards changes nothing until someone touches
data/ElectronIMagain.The existing images in
docs/screenshotsaren't usable. They're from 2020, show a settings dialog that was redesigned in 2022, andmain.pngshows a personal Twitter profile.What the screenshot needs:
docs/screenshots, referenced by a raw URL pinned to the commit that adds it, not tomain:https://raw.githubusercontent.com/manusa/electronim/<sha>/docs/screenshots/<file>.png. Released AppImages keep that metainfo forever, so a branch URL would change or break their listings later.<image>in the first<screenshot type="default">. The catalog readsscreenshot[1]/imageand concatenates every<image>in it into a single URL.<caption>, thenappstreamcli validateagain (it must stay free of warnings on AppStream 0.15 and 1.0;.github/workflows/tests.ymlrunsvalidate-treeon the AppImage).How to submit
Open a PR that adds a one-line file under
data/,data/ElectronIM, containing the stable download URL:The catalog's test script uses a GitHub URL that contains
downloadas is. A repository URL wouldn't work: autodetection only finds assets named likeElectronIM-1.1-x86_64.AppImage, and renaming ours would break existing download links. Their checklist prefers a constant URL without the version anyway.A GitHub Actions check then downloads the AppImage, lints it and runs it offline under firejail, and shows the result on the PR.
Tasks
data/ElectronIMwith the stable download URLRelated
nodehunglibc problem, worse because of itscore20base (to be done on a Linux machine)