← Back to issue list

It is not possible to install a build-snap with the default track

View original Launchpad issue

Metadata

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

Current evaluation

Build-snaps shorthand name/edge raised KeyError because the default latest track was not normalized. The old implementation is gone, so behavior in the current craft-parts backend needs verification.

Suggested action: needs triage

Reason: The report provides an exact reproducer, a KeyError at the channel lookup, and a working full-channel form, clearly identifying a default-track normalization defect. However, the current checkout delegates build-snap installation to craft_parts.packages.snaps.install_snaps, and there are no comments or resolving references, so the issue needs reproduction against the current implementation before it can be closed.

Evaluated by: mr-cal-bot

Impact: 32 Quick Win: 14 Complexity: 40 Confidence: 86 Actionability: 74

Issue body

When the track is not specified, latest is used. For example, it is possible to install with: sudo snap install u1test-snap-with-tracks --channel edge which would be the same as: sudo snap install u1test-snap-with-tracks --channel edge However, when using build-snaps in snapcraft, if I write: build-snaps: [u1test-snap-with-tracks/edge] it will fail with: Traceback (most recent call last): File "/home/ubuntu/venv/snapcraft/bin/snapcraft", line 6, in <module> exec(compile(open(__file__).read(), __file__, 'exec')) File "/home/ubuntu/workspace/canonical/snapcraft/bin/snapcraft", line 36, in <module> obj=dict(project=snapcraft.ProjectOptions())) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 722, in __call__ return self.main(*args, **kwargs) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 697, in main rv = self.invoke(ctx) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 1043, in invoke return Command.invoke(self, ctx) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 895, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 535, in invoke return callback(*args, **kwargs) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/decorators.py", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/cli/__init__.py", line 110, in run ctx.forward(lifecyclecli.commands['snap']) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 553, in forward return self.invoke(cmd, **kwargs) File "/home/ubuntu/venv/snapcraft/lib/python3.5/site-packages/click/core.py", line 535, in invoke return callback(*args, **kwargs) File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/cli/lifecycle.py", line 132, in snap project_options, directory=directory, output=output) File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/internal/lifecycle.py", line 349, in snap execute('prime', project_options) File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/internal/lifecycle.py", line 120, in execute repo.snaps.install_snaps(config.build_snaps) File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/internal/repo/snaps.py", line 167, in install_snaps snap_pkg.install() File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/internal/repo/snaps.py", line 136, in install if self.is_classic(): File "/home/ubuntu/workspace/canonical/snapcraft/snapcraft/internal/repo/snaps.py", line 119, in is_classic return store_channels[self.channel]['confinement'] == 'classic' KeyError: 'edge' To reproduce, build using the snapcraft.yaml from http://paste.ubuntu.com/25492423/ with the latest unreleased snapcraft. It works when the track is specified: build-snaps: [u1test-snap-with-tracks/latest/edge]

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 32
Quick Win: 14
Complexity: 40
Confidence: 86
Actionability: 74
needs triage Build-snaps shorthand name/edge raised KeyError because the default latest track was not normalized. The old implementation is gone, so behavior in the current craft-parts backend needs verification.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 27
Complexity: 10
Confidence: 90
Actionability: 100
close resolved Build-snap installation with default track fails with KeyError in old snapcraft code; codebase refactored to craft-parts, old path removed.
qwen/qwen3.8-27b
Impact: 40
Quick Win: 26
Staleness: 95
Complexity: 35
Confidence: 55
Support Request: 10
needs triage Snapcraft build-snaps fails with KeyError when a channel is given without a track (e.g. snap/edge), because the code looks up store channels by the bare channel name instead of track/risk. Old bug, no maintainer response, no labels.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 30
Confidence: 90
Support Request: 5
close stale Bug in snapcraft where build-snaps fail with a KeyError when the track is omitted from the channel string. Issue is 8.9 years old with no maintainer interaction or updates.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 35
Confidence: 90
Support Request: 5
close stale Snapcraft fails to install build-snaps using the default track, causing a KeyError. The report is over 8 years old with no maintainer response or comments.
qwen3.6-35b-a3b-mtp-q6
Staleness: 98
Complexity: 30
Confidence: 90
Support Request: 5
close stale snapcraft throws a KeyError when installing a build-snap without an explicit track. The report is over 8 years old with zero maintainer interaction or labels.

Update history

Date Change
created

Related issues

No related issues found above the similarity threshold.