Hi!
It would be great if the KDE CI could validate AppStream upstream metadata (also called metainfo or appdata).
In order to have more powerful analysis for generic errors, I recently extended the validator module of appstreamcli to also be able to validate while file-trees.
So if you have a recent version of AppStream installed (at least 0.8.4 or a Git snapshot), you can just do:
appstreamcli validate-tree --pedantic /path/to/the/installed/application/destdir
and check the output, which will be > 0 in case errors or warnings were found.
The validator will return output like this:
I: [org.kde.kaddressbook.desktop] First 'description/p' paragraph might be too short. E: [stage.desktop] Component metadata refers to a non-existing .desktop file. E: [simple-scan.appdata.xml] Your file is in a legacy AppStream format, which can not be validated. Please migrate it to spec version 0.6 or above. E: [org.gnome.Screenshot.appdata.xml] Your file is in a legacy AppStream format, which can not be validated. Please migrate it to spec version 0.6 or above. W: [org.kde.okteta.desktop] Found invalid tag: 'updatecontact'. Non-standard tags have to be prefixed with "x-". E: [flow.desktop] Component metadata refers to a non-existing .desktop file. E: [org.kde.okteta.desktop] The tag 'project_license' appears multiple times, while it should only be defined once per component. Validation failed.
Thanks for considering!
P.S: There are also other validators around, which might be worth adding later as well - appstreamcli will perform the basic validations for compliance with the specification (and go beyond that when the --pedantic flag is passed).