Stage-snaps with snaps on local harddrive

I can stage a snap from the snap store like this:

parts:
audacity:
plugin: nil
stage-snaps:
- to amd64:
- audacity

How can i stage a snap that is not in the snap store, but “locally” on my harddrive?

Background:
To increase the build performance of my snap, i want to shift some long running task (which are stable and do not always have to be built again) to another snap.

3 Likes

This is currently not possible and probably won’t be in the foreseeable future.

Is there any workaround proposed for what OP mentions?

On the other hand, can “stage-snaps” checkout from private/brand stores?

Well, I think we’re past the “foreseeable future”. Is this on the roadmap? What’s the reasoning for not supporting it. Would a patch be accepted that did this?

Also, the question about staging snaps from private/brand stores was never answered, is that possible?

Thanks.

I mean, basically it’s a couple of lines of code right? Could you even manually force it to do this?

snap_files = iglob(os.path.join(self.part_snaps_dir, "*.snap"))
  • I realize that it’s probably not a couple of lines of code but it’s probably a pretty low-order effort compared to other things

You can stage a local snap file in core20 snaps if you declare it as source in a different part:

parts:
  my-part:
    plugin: dump
    source: example_0.1_amd64.snap

Support for snap sources is currently broken for core22 snaps. This will be fixed in the next Snapcraft release.