← Back to issue list

Allow staging snap components

View original Github issue

Metadata

Project
snapcraft
Number
#6095
Type
issue
State
open
Author
cnihelton
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed

Current evaluation

Enhancement to extend stage-snaps to stage snap components (snap+component syntax) for composing ROCKs/composite snaps. Triaged and acknowledged; upstream work in craft-parts#1604 is a draft on hold pending component access/management design.

Suggested action: keep open

Reason: The issue is labelled Status: Triaged and maintainer @mr-cal has engaged across three comments, most recently (2026-08-25, 6 days ago) confirming upstream work exists in craft-parts#1604 and explaining it is on hold pending how components should be accessed and managed. The reporter also supplied a concrete rockcraft.yaml reproducer (gemma3 components), so the request is well-scoped and valid; it should stay open while the blocked upstream design work is resolved.

Impact: 45 Quick Win: 18.0 Staleness: 10 Complexity: 60 Confidence: 85 Support Request: 5

Issue body

### Check existing issues - [x] I've verified that this request isn't described by any existing issues. ### Request It's already possible to use `stage-snaps` in a snapcraft.yaml to compose multiple snaps into a bigger one, or to dump the contents of a list of snaps into a ROCK (in the case of rockcraft.yaml). It would be great if there was a similar way to stage snap components, either extending the syntax of `stage-snaps` to support constructs like `snap+component` or a more specific key `stage-snap-components` in which the items in the list follow the syntax (`snap+component`) (or a better UX you might find that I can't think of right now). ### The problem it solves Allowing this composition aligns the reuse of snaps and snaps components in a finer grained way when composing larger units of deployments, such as composite snaps or ROCKs. I believe such feature should allow decoupling the component from the main snap. Although that could be somewhat surprising for folks used to `snap download snap+component` to acquire both, for `snapcraft.yaml` and other craft-related configurations, certain use cases might benefit from solely bringing the component, such as locale data that happens to be replicated in multiple snaps without having to source one of the main snaps in that case. An optional component in a snap might be a useful dependency of a composite snap.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 45
Quick Win: 18.0
Staleness: 10
Complexity: 60
Confidence: 85
Support Request: 5
keep open Enhancement to extend stage-snaps to stage snap components (snap+component syntax) for composing ROCKs/composite snaps. Triaged and acknowledged; upstream work in craft-parts#1604 is a draft on hold pending component access/management design.
qwen/qwen3.6-35b-a3b
Staleness: 15
Complexity: 65
Confidence: 90
Support Request: 10
keep open Enhancement to extend stage-snaps syntax for staging individual snap components. Triaged and acknowledged by maintainers. Upstream work exists in craft-parts but is currently on hold pending design decisions.
qwen/qwen3.6-35b-a3b
Staleness: 10
Complexity: 40
Confidence: 95
Support Request: 5
keep open Enhancement request to allow staging snap components via extended stage-snaps syntax. Triaged, under active discussion, with maintainer implementing in craft-parts and requesting real-world examples.
qwen3.6-35b-a3b-mtp-q6
Staleness: 15
Complexity: 60
Confidence: 95
Support Request: 10
keep open Feature request to extend stage-snaps syntax to support staging individual snap components. Triaged and acknowledged by maintainers, who are working on implementation in craft-parts and requested real-world examples from the author.
qwen3.6-35b-a3b-mtp-q6
Staleness: 45
Complexity: 55
Confidence: 90
Support Request: 5
keep open Extend stage-snaps to support staging individual snap components for finer-grained composition in composite snaps and ROCKs. Triaged enhancement. Feasible to implement in craft-parts using snapd syntax. Awaiting implementation.

Update history

Date Change
updated

Related work

  • Blocked By: craft-parts#1604 (confidence 90%)

    Maintainer @mr-cal explicitly stated 'We have some upstream work for this in https://github.com/canonical/craft-parts/pull/1604. This effort is currently on hold until we figure out how components should be accessed and managed.' The PR is open but a draft, so this feature cannot land until it does.

Related issues

Issue Project State Summary Similarity
#1604 feat: handle snap components in stage-snaps craft-parts open Handles snap components in stage-snaps. Marked as draft with 2 approvals but 3 unresolved comments. Blocked by pending snapd changes per maintainer feedback.
76%