Provide AppStream AppData
Related to (and required by) #265. It would be great to get AppData upstream so it can be used for Flatpak and other formats/stores that use it.
I would be happy to contribute it, I mostly just don't know where in the repo it should live. :sweat_smile:
Official docs: https://www.freedesktop.org/software/appstream/docs/
Flathub guidelines: https://github.com/flathub/flathub/wiki/AppData-Guidelines
Some initial thoughts and questions, mostly based on skimming the first link:
- this feels like a specific file with metadata included in the install at
/usr/share/metainfo/%{id}.metainfo.xml- is that all the magic that is needed here to get this to work? - looking at this example file it feels like a lot of the file is static (inserting release notes will be a fun challenge) or could be pulled from other metadata - am I understanding that right?
- if the file is fairly static, then we can have a template file in the repository that gets used to generate the actual file, and is then consumed into each installer
- figuring out how to do this for each installation type is going to be the hard part - we have install/cleanup hooks to do this for the debian package in #263, but we'd need to figure out how to do this for the other packaging formats
I think putting the file in the right place will be handled by Flatpak, but I'm not 100% sure. Someone more familiar with AppStream would need to chime in. I have no idea about the other formats… but at least shipping the information in this repo would be a start and help for others packaging it up.
Yes, much of this is static and would typically be sourced from the marketing copy and whatever other metadata already exists. Release notes would indeed be fun… but hopefully we could use the GitHub API in an Action or something? We've been looking into some of that at elementary, but actually are currently going in the other direction (AppData serves as the source of truth, and we auto-generate GitHub Release descriptions from the AppData). cc @kgrubb though in case he has thoughts.