extractors: support appstream metadata in parts
Metadata
Current evaluation
Merged. Implemented an Appstream metadata extractor for snapcraft parts, initially supporting summary and description fields. Resolves issue #1694. Code authored by @elopio.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
This PR resolves #1694 by adding an Appstream data extractor. Only supporting the summary and description right now, more to come later.
All credit for this PR goes to @elopio. It's his research, code, and tests.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Implemented an Appstream metadata extractor for snapcraft parts, initially supporting summary and description fields. Resolves issue #1694. Code authored by @elopio. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Adds an Appstream metadata extractor to snapcraft parts, initially supporting summary and description fields. Resolves #1694. Implementation credited to @elopio. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged an Appstream metadata extractor for snapcraft parts, resolving issue #1694. Initially implements summary and description parsing. Core implementation and tests authored by @elopio. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3695 meta: add appstream metadata extractor | snapcraft | merged | Merged after reviewer approval and passing CI. Adds an appstream metadata extractor to parse application metadata from appstream files, modifying 9 files with a net addition of 1192 lines. | |
| #1825 metadata: add infrastructure for extracting metadata from parts | snapcraft | merged | Merged. Added foundational infrastructure for extracting metadata from parts, resolving #1693. Establishes the base framework in snapcraft.extractors, deferring actual extraction logic to future PRs. Approved and passed CI. | |
| #2430 extractors: better appstream support for descriptions | snapcraft | merged | Merged enhancement to AppStream description extraction using XSLT normalization and xml:lang handling. Addressed reviewer feedback to include ordered list support prior to merge. |