snapcraft doesn't validate gadget.yaml
Metadata
Current evaluation
Enhancement (filed 2018 by a maintainer): gadget snaps only copy gadget.yaml into the snap without validating its contents. Still unimplemented — both setup_assets.py and services/package.py just copy/read the file. No labels or comments; needs triage.
Suggested action: needs triage
Reason: The request is still valid and unaddressed: setup_assets.py only checks the file exists then calls _copy_file(), and the newer mediated path in package.py (_get_gadget_yaml / _read_project_metadata_file) just does read_text() with no schema check — no jsonschema/voluptuous usage exists anywhere in the repo. However the tracker shows zero labels, zero comments and no maintainer response since 2018, and the issue gives no schema to validate against, no error format, and no examples, so it needs maintainer scoping before implementation. Impact stays moderate because gadget snaps are a narrow Ubuntu Core device feature, and complexity is elevated since the gadget schema lives in snapd (Go) and would have to be vendored or reimplemented, with a risk of rejecting valid future gadget files.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
32
Quick Win:
5
Complexity:
62
Confidence:
80
Actionability:
45
|
needs triage | Enhancement (filed 2018 by a maintainer): gadget snaps only copy gadget.yaml into the snap without validating its contents. Still unimplemented — both setup_assets.py and services/package.py just copy/read the file. No labels or comments; needs triage. | |
| stealth/space-bunny-alpha |
Impact:
35
Quick Win:
6
Complexity:
60
Confidence:
88
Actionability:
45
|
needs triage | Snapcraft copies gadget.yaml into gadget snaps without validating its content. A requested enhancement to check the file holds valid gadget metadata; still unimplemented a decade later. | |
| qwen/qwen3.6-35b-a3b |
Impact:
40
Quick Win:
12
Complexity:
40
Confidence:
60
Actionability:
50
|
needs triage | Feature request to add validation for gadget.yaml content beyond mere existence check. Open 10 years with no maintainer response or labels. | |
| qwen/qwen3.8-27b |
Impact:
35
Quick Win:
19
Staleness:
95
Complexity:
45
Confidence:
55
Support Request:
10
|
close stale | Feature request from 2015 asking snapcraft to validate gadget.yaml metadata for gadget snaps instead of just copying it. Open for nearly 10 years with no labels, comments, or maintainer activity. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
15
Confidence:
90
Support Request:
5
|
close stale | Feature request to validate gadget.yaml metadata in snapcraft. Open for nearly 10 years with no maintainer interaction, labels, or activity. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
15
Confidence:
90
Support Request:
0
|
close stale | Unvalidated gadget.yaml file in snapcraft. The issue requests adding metadata validation for gadget files, but remains completely inactive for nearly a decade with no maintainer response or labels. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
98
Complexity:
15
Confidence:
90
Support Request:
10
|
close stale | Feature request to add validation for gadget.yaml in snapcraft. Issue is completely inactive for nearly a decade with no maintainer engagement or labels. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Related To:
snapcraft#4344
(confidence 78%)
Open, triaged (CRAFT-3264) enhancement touching the same gadget.yaml handling paths; still reads gadget.yaml from the project root in both setup_assets.py and package.py, so any validation work would overlap.
-
Related To:
snapcraft (launchpad)#1638824
(confidence 70%)
The parent 'Support gadget snaps' bug that added gadget.yaml handling via commit 5610f0eaf / #886; this issue is the follow-up for validating that metadata, and that bug is already closed as resolved.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4344 Treat the gadget.yaml like other snap meta files | snapcraft | open | Enhancement to require gadget.yaml in snap/gadget.yaml instead of the project root. Triaged (CRAFT-3264); still unimplemented — both setup_assets.py (core22) and package.py (core24+) still read gadget.yaml from the project root. | |
| #303 Gadget snap extension | imagecraft | open | Maintainer feature request: an extension that reads a local gadget snap's gadget.yaml and applies its values to imagecraft.yaml, removing duplicated partition config. Blocked on an extensions mechanism that still does not exist in the codebase. |