feat: add snapd-info project key
Metadata
Current evaluation
Adds snapd-info project key for type: snapd snaps with validation and schema updates. Approved by one reviewer, awaiting review from ernestl, CI passing.
Suggested action: needs review
Reason: PR has been approved by mr-cal and CI is passing, but ernestl is now reviewing as requested by mr-cal on 2026-10-16. The author has addressed all previous feedback and the PR is ready for ernestl's review before merge.
Evaluated by: mr-cal-bot
Impact:
45
Quick Win:
17
Complexity:
45
Confidence:
75
Actionability:
70
Issue body
Fixes #6424
## Summary
Add support for the `snapd-info` project key for `type: snapd` snaps.
### Changes
- Add `snapd-info` to the project model.
- Restrict `snapd-info` to `type: snapd` projects.
- Enforce the top-level value as an object while allowing arbitrary nested content.
- Reject invalid top-level values such as lists, strings, and `null`.
- Write `snapd-info` to the generated `snap.yaml`.
- Add validation and metadata generation tests, including YAML numeric keys.
- Cover `app`, `base`, `gadget`, and `kernel` project types to ensure `snapd-info` is rejected for non-snapd snaps.
### Testing
- `847 passed`
- `git diff --check`
### Checklist
- [ ] I've followed the [[contribution guidelines](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md)](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md).
- [ ] I've signed the [[CLA](http://www.ubuntu.com/legal/contributors/)](http://www.ubuntu.com/legal/contributors/).
- [ ] I've successfully run `make lint && make test`.
- [x] I've added or updated any relevant documentation. *(Not applicable; this change does not require documentation updates.)*
- [x] In documents I changed, I [[added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/)](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing. *(Not applicable; no documentation files were changed.)*
- [ ] I've updated the relevant release notes.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b |
Impact:
45
Quick Win:
17
Complexity:
45
Confidence:
75
Actionability:
70
|
needs review | Adds snapd-info project key for type: snapd snaps with validation and schema updates. Approved by one reviewer, awaiting review from ernestl, CI passing. | |
| ~deepseek/deepseek-pro-latest |
Impact:
50
Quick Win:
24
Complexity:
40
Confidence:
75
Actionability:
80
|
needs review | Adds snapd-info project key for type: snapd snaps, validates top-level object and writes it to snap.yaml; includes validation and metadata tests. Awaiting maintainer review. |
Update history
| Date | Change |
|---|---|
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related work
-
Related To:
snapcraft#6424
(confidence 95%)
This PR implements the feature requested in issue #6424 to add snapd-info key support for snapd snaps.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #6424 Add `snapd-info` key for snapd snaps | snapcraft | open | Feature request to add a `snapd-info` key for `type: snapd` snaps, validate its schema, and write it to snap.yaml. Open PR #6477 implements it and is awaiting maintainer review. |