"erroneous" failed: Improve appdata for AppStream 1.0
Description
I noticed that some points are skipped in the Appdata/Metadata files, and some points are incorrectly used. Unfortunately, the appstream-glib used to validate appdata cannot effectively catch these errors.
In this context, as suggested by Michael Catanzaro, it is necessary to shift the appdata validation process onto the more up-to-date appstreamcli. This way, we can achieve more accurate appdata validation.
Goals
Ensure the accuracy of Appdata data and make sure it includes categories, keywords, and the required URL types.
- meson.build: Use the more up-to-date appstreamcli instead of appstream-util.
- Appdata: Instead of developer_name, use developer id:
<developer id="gnome.org"><name>The GNOME Project</name></developer>
-
Appdata: If possible, mark(it was mistake!)<developer id="gnome.org"><name>
as<name translatable="no">
. - Appdata: Ensure it contains the
<translation type="gettext">BINARY</translation>
tag and validate the accuracy of the provided data. - Appdata: Ensure it contains the
<launchable type="desktop-id">ID.desktop</launchable>
tag and validate the accuracy of the provided .desktop file. - Appdata: Ensure it contains
<url type="homepage"></url>
and validate their accuracy. - Appdata: Ensure it contains
<url type="bugtracker"></url>
and validate their accuracy. - Appdata: Ensure it contains
<url type="translate"></url>
and validate their accuracy. - Appdata: Ensure it contains
<url type="vcs-browser"></url>
and validate their accuracy. - Appdata: If it contains
<url type="contribute"></url>
, ensure their accuracy. - Appdata: If it contains
<url type="donation"></url>
, ensure their accuracy. - Appdata: Remove redundant Purism tags that are not mobile. If accepted by the developer, they can be completely removed.
- Validate appdata data with bash aliases such as
pas
orpasn
.
Scope
- GNOME apps, Related apps, Circle apps.
Sources
- https://freedesktop.org/software/appstream/docs/chap-Quickstart.html
- gnome-software#2375 (comment 1909776)
- World/eartag!95 (comment 1874726)
- World/eartag!95 (comment 1908519)
- https://discuss.kde.org/t/does-kde-discover-parse-the-desktop-file-for-categories-and-keywords/7041
- https://gitlab.gnome.org/GNOME/gnome-build-meta/-/tree/master/elements/core?ref_type=heads
- https://discourse.flathub.org/t/deprecated-developer-name-element/5746
- gnome-software#2412 (closed)
- https://github.com/ximion/appstream/issues/575
Codes
Sample validation code in the Meson file.
# Validate Appdata
appstreamcli = find_program('appstreamcli', required: false)
if (appstreamcli.found())
test('validate-appdata',
appstreamcli,
args: ['validate', '--no-net', '--explain', appdata_file.full_path()],
workdir: meson.current_build_dir()
)
endif
alias for the .bashrc file
alias pas='LC_ALL=C flatpak run org.freedesktop.appstream.cli validate --verbose --explain'
alias pasn='LC_ALL=C flatpak run org.freedesktop.appstream.cli validate --verbose --explain --no-net'
People on charge & contact
Sabri Unal (@sabriunal)
Contact me via:
- Email: libreajans@gmail.com
Remaining Tasks
Development Apps
-
Boxes gnome-boxes!618 (closed) -
Dconf Editor dconf-editor!37 (closed) -
Devhelp devhelp!57 (closed)
Core Apps
-
Console console!159 (closed) -
Disk Usage Analyzer / Baobab baobab!59 (closed) -
Fonts gnome-font-viewer!56 (closed) -
Help / Yelp yelp!48 (closed) -
Logs gnome-logs!61 (closed) -
Videos / Totem totem!384 (closed) -
Weather gnome-weather!148 (closed)
Related apps
-
gnome-color-manager gnome-color-manager!12 (closed)
Circle Apps
-
Amberol World/amberol!149 (closed) -
Audio Sharing World/AudioSharing!11 (closed) -
Chess Clock World/chess-clock!20 (closed) -
Elastic World/elastic!20 (closed) -
Health World/Health!201 (closed) -
Solanum World/Solanum!78 (closed)
Remain Tasks on Other Platforms
-
Commit https://github.com/sonnyp/Commit/pull/103 -
Font-Downloader https://github.com/GustavoPeredo/Font-Downloader/pull/120 -
Junction https://github.com/sonnyp/Junction/pull/140 -
Plots https://github.com/alexhuntley/Plots/pull/145 -
Tangram https://github.com/sonnyp/Tangram/pull/286
Completed Tasks on Other Platforms
-
Blanket https://github.com/rafaelmardojai/blanket/pull/324 -
Cartridges https://github.com/kra-mo/cartridges/pull/222 -
Clairvoyant https://github.com/cassidyjames/clairvoyant/pull/73 -
Collision https://github.com/GeopJr/Collision/pull/179 -
Cozy https://github.com/geigi/cozy/pull/838 -
Curtail https://github.com/Huluti/Curtail/pull/199 -
Decibels https://github.com/vixalien/decibels/pull/49 -
Dialect https://github.com/dialect-app/dialect/pull/367 -
Drawing https://github.com/maoschanz/drawing/pull/628 -
Errands https://github.com/mrvladus/Errands/pull/117 -
Eyedropper https://github.com/FineFindus/eyedropper/pull/116 -
File Shredder / raider: https://github.com/ADBeveridge/raider/pull/121 -
Fretboard https://github.com/bragefuglseth/fretboard/pull/42 -
Forge Sparks https://github.com/rafaelmardojai/forge-sparks/pull/24 -
Graphs https://github.com/Sjoerd1993/Graphs/pull/732 -
Impression https://gitlab.com/adhami3310/Impression/-/merge_requests/58 -
Khronos https://github.com/lainsce/khronos/pull/139 -
Komikku https://gitlab.com/valos/Komikku/-/merge_requests/273 -
Metadata Cleaner https://gitlab.com/rmnvgr/metadata-cleaner/-/merge_requests/266 -
Mousai https://github.com/SeaDve/Mousai/pull/114 -
NewsFlash https://gitlab.com/news-flash/news_flash_gtk/-/merge_requests/193 -
Paper Clip https://github.com/Diego-Ivan/Paper-Clip/pull/63 -
Share Preview https://github.com/rafaelmardojai/share-preview/pull/68 -
Switcheroo https://gitlab.com/adhami3310/Switcheroo/-/merge_requests/73 -
Telegraph https://github.com/fkinoshita/Telegraph/pull/48 -
Webfont Kit Generator https://github.com/rafaelmardojai/webfont-kit-generator/pull/44 -
Wike https://github.com/hugolabe/Wike/pull/174 -
Workbench https://github.com/workbenchdev/Workbench/pull/861
Edited by Ghost User