Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide upstream Appstream file. #1069

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ThomasFrans
Copy link
Contributor

Add an Appstream file for the ncspot program for representation in Linux app stores. An Appstream file provides packagers that package ncspot for Linux app stores with the necessary metadata about the program. The file is supposed to be provided upstream instead of by packagers.

Add an Appstream file for the ncspot program for representation in Linux
app stores. An Appstream file provides packagers that package ncspot for
Linux app stores with the necessary metadata about the program. The file
is supposed to be provided upstream instead of by packagers.
@ThomasFrans
Copy link
Contributor Author

ThomasFrans commented Mar 2, 2023

Since ncspot is being packaged for Flatpak, I thought it made sense to properly support it upstream. Flathub makes use of the Appstream metadata format which is used by many Linux app stores and pretty much the standard for providing application metadata for that purpose. Appstream dictates that the metainfo file should be provided upstream. This is currently not the case as the Flathub manifest provides it downstream. Providing it upstream would guarantee consistent details across app stores and would help package maintainers who wouldn't have to individually maintain the file.

This is still a draft for two reasons. First of all, this is more of a feature request with added context (the initial commit towards adding Appstream support upstream). The file is currently only the information that can be generated by the Freedesktop Appstream generator, which does a decent job, but doesn't include more detailed information. If this PR is a welcome addition, I would fill out the more detailed information.

The second reason is because I think in the spirit of automation (because we're developers, and we're lazy), I think it makes sense to automate updates to the file (version, changelog maybe...). Many projects do this by using a separate build system (Meson in many cases), but I like the vanilla cargo experience in Rust, so I thought maybe it would be handy to update the file with (yet) another xtask that uses information from other places (the Cargo.toml for the version, a separate json/ron file for structured changelogs) and puts that in the metainfo file, which could be a (Mustache/Tera/Liquid/...) template and can be generated upon release. None of this would increase the size of ncspot of course, it would just be a separate build step for packagers that want/need the Appstream info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant