Skip to content

Add AppStream metadata support (roadmap Phase 1) - #7

Merged
imattau merged 1 commit into
masterfrom
phase1-appstream-metadata
Sep 21, 2026
Merged

imattau merged 1 commit into
masterfrom
phase1-appstream-metadata

Conversation

@imattau

@imattau imattau commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds an optional app object to the manifest for AppStream-compatible metadata: summary, description, homepage, license, categories, icon, screenshots, desktop_file, release_date.
  • npack pack validates icon/desktop_file are safe package-relative paths that exist in the source tree, and validates desktop_file as a syntactically correct freedesktop.org Desktop Entry file (Type, Name, and Exec when Type=Application).
  • Adds npack appstream <artifact> [--output <metainfo.xml>], rendering a console-application (with <provides><binary>) or desktop-application (with <launchable type="desktop-id">) AppStream <component> document from a built .npk's manifest.
  • CI installs appstreamcli and validates a generated sample document with appstreamcli validate --no-net, confirmed locally to pass (only informational hints remain, no errors/warnings).

This closes out roadmap Phase 1: "an npack package can describe itself in the language already understood by Linux application stores."

Test plan

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features (no warnings)
  • cargo test (45 passing, including new desktop-file/AppStream tests)
  • Manual smoke test: pack → appstream → appstreamcli validate --no-net against a real desktop-application and a console-application sample, both passing

🤖 Generated with Claude Code

Adds an optional `app` object to the manifest (summary, description,
homepage, license, categories, icon, screenshots, desktop_file,
release_date), validates icon/desktop_file paths and desktop-entry
syntax at pack time, and adds `npack appstream` to render a
console-application or desktop-application AppStream <component>
document from a built .npk. CI installs appstreamcli and validates a
generated sample document.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@imattau
imattau merged commit c8d7194 into master Sep 21, 2026
3 checks passed
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