← Back to issue list

snapcraft doesn't validate gadget.yaml

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1640897
Type
issue
State
open
Author
~elopio
Labels
—
Created
Updated
Closed
—

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

Impact: 32 Quick Win: 5 Complexity: 62 Confidence: 80 Actionability: 45

Issue body

The next release of snapcraft adds the gadget type. Currently, it just copies the file gadget.yaml into the snap. It should also verify that the file contains valid gadget metadata.

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.
76%
#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.
70%