← Back to issue list

It is not possible to install a build-snap with a closed risk

View original Launchpad issue

Metadata

Project
snapcraft
Number
#1716055
Type
issue
State
open
Author
~elopio
Labels
Created
2017-09-08 21:10:13.963231+00:00
Updated
2018-04-26 14:45:13.412396+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

Issue body

When trying to install a snap from a risk that is closed, the snap from the lower risk level that follows it will be installed. For example, in: $ snapcraft status u1test-snap-with-tracks Track Arch Channel Version Revision latest all stable latest-stable 2 candidate ^ ^ beta ^ ^ edge latest-edge 3 test-track-1 all stable - - candidate - - beta test-track-1-beta 5 edge ^ ^ If I run sudo snap install u1test-snap-with-tracks --candidate, because candidate is closed, stable will be installed instead. However, when using build-snaps in snapcraft, if I specify: build-snaps: [u1test-snap-with-tracks/latest/candidate] I get: 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: 'latest/candidate' To reproduce, run the latest unreleased snapcraft with the snapcraft.yaml from http://paste.ubuntu.com/25492456/ It works when an open channel is specified, like: build-snaps: [u1test-snap-with-tracks/latest/stable]

Evaluation history

No evaluation history available.