Call for testing: snapcraft 3.7

Hello Snapcrafters! The Snapcraft team is delighted to announce that version 3.7 is now available.

The Release Note are currently being drafted.

The snapcraft snap for 3.7 is currently available in the candidate channel, to try it out run:

$ sudo snap install --candidate --classic snapcraft

Of, if you already have it installed, to try it out run:

$ sudo snap refresh --candidate snapcraft

Feedback is encouraged and more than welcome!


I built this lot with 3.7. Looks good to me!

βœ“ - gnome-system-monitor (multipass)
βœ“ - evince (multipass)
βœ“ - gedit (multipass)
βœ“ - eog (multipass)
βœ“ - quadrapassel (multipass)
βœ“ - dosbox-jz-snap (multipass)
βœ“ - android-studio (lxd)
βœ“ - atom (lxd)
βœ“ - axel (multipass)
βœ“ - brackets (lxd)
βœ“ - brave (lxd)
βœ“ - corsixth (multipass)
βœ“ - cumulonimbus (lxd)
βœ“ - ddgr (lxd)
βœ“ - discord (lxd)
βœ“ - discord-ptb (lxd)
βœ“ - dosbox-x (multipass)
βœ“ - duckmarines (lxd)
βœ“ - eclipse (multipass)
βœ“ - fkill (lxd)
βœ“ - get-iplayer (lxd)
βœ“ - ghost-desktop (lxd)
βœ“ - gitter-desktop (lxd)
βœ“ - googler (lxd)
βœ“ - helm (multipass)
βœ“ - inadyn (lxd)
βœ“ - irccloud-desktop (multipass)
βœ“ - irssi (lxd)
βœ“ - jenkins (multipass)
βœ“ - links (lxd)
βœ“ - magic-wormhole (lxd)
βœ“ - mattermost-desktop (lxd)
βœ“ - mdl (lxd)
βœ“ - minetest (lxd)
βœ“ - mosaic (lxd)
βœ“ - mrrescue (lxd)
βœ“ - mumble (lxd)
βœ“ - mumble-stable (lxd)
βœ“ - mutt (lxd)
βœ“ - nano (lxd)
βœ“ - newsboat (lxd)
βœ“ - obs-studio (multipass)
βœ“ - offlineimap (lxd)
βœ“ - opentoonz (multipass)
βœ“ - opentoonz-morevna (multipass)
βœ“ - opentyrian (lxd)
βœ“ - pyradio (lxd)
βœ“ - scummvm (lxd)
βœ“ - sdlpop (lxd)
βœ“ - sentry (lxd)
βœ“ - simplenote (lxd)
βœ“ - slack-term (lxd)
βœ“ - spelunky (lxd)
βœ“ - storjshare-gui (lxd)
βœ“ - sublime-text (lxd)
βœ“ - tcpie (multipass)
βœ“ - teleconsole (lxd)
βœ“ - term2048 (lxd)
βœ“ - tmnationsforever (lxd)
βœ“ - vagrant (multipass)
βœ“ - vscode (lxd)
βœ“ - warzone2100 (lxd)
βœ“ - wethr (lxd)
βœ“ - wire (lxd)
βœ“ - wordpress-desktop (lxd)
βœ“ - xonotic (lxd)
βœ“ - yakyak (lxd)

@popey by eck, you’ve been busy… Or did you do all that via an automated/scripted loop? :-p

1 Like

Yes indeed! It’s this hastily cobbled together script.
It looks for the base: keyword and builds in multipass if it exists, and lxd if it doesn’t. This pre-dates --use-lxd so needs updating. I don’t use cleanbuild.


I’d like to nitpick some display problems in the release note:


That annoys me too @Lin-Buo-Ren, I saw that on the first post and think GH changed how it rendered markdown, so transformed all sentences to be a single line, I guess I missed that one and failed to notice as this is what I saw

Changing the zoom level though, gave me the render you showed, which is now fixed.

Aside from the notes, have you tried any of this out?

1 Like

So I just did a quick test build locally of core18 with the snapcraft from candidate and it succeeded. I have then created a test image (using ubuntu-image) with the newly built snap and the image booted successfully. I think we look good from the POV of core18 (at least after this quick sanity-test).


I do notice the snap injection feature, it works well enough to prevent me from patching the software source mirrors lxc exec snapcraft-foo -- sed --in-place s/archive/tw.archive/ /etc/apt/sources.list during the small gap of time between the cloud-init process and the first apt source cache sync :wink:

I had a play with the new build-base feature mentioned in the release notes, and ran into some problems.

This is in relation to a snap I’m testing with a custom base snap. Previously I could get this to work by hiding the base declaration like so:

  base: my-custom-base

… which would trick Snapcraft into running in legacy mode and let me build my snap. That let me build my snap, but also meant I miss out on any new Snapcraft features. Since I was already building on an 18.04 system, I thought I’d be able to move to modern Snapcraft by updating the snapcraft.yaml to:

base: my-custom-base
build-base: core18

Unfortunately, Snapcraft fails with an error:

$ snapcraft
Sorry, an error occurred in Snapcraft:
Issues while validating snapcraft.yaml: must be one of 'base: <base> and type: <app|gadget|kernel|snapd> (without a build-base)' or 'type: base (without a base)'

I guess this is saying that build-base can only be used for type: base snaps? I realise it is probably too late for 3.7, but is there any chance of relaxing the restriction for a future release?

I am working on that, but two steps are needed here:

  • base will be picked up from the stable channel to do ELF inspection.
  • if not on stable channel, set grade to devel and install the base from the other channels

You can workaround this issue in destructive mode an preinstalling the base, once we allow this generic building. I still need to think about this some more, as in do we want to assume as soon as you use build-base that you are building an isolated snap?

From the description, it sounded like the purpose of build-base was to override the build environment used to build the snap. How does ELF inspection fit into that?

If this is to check that the snap includes all needed libraries / doesn’t duplicate libraries provided by the base, I’d expect that check to be done with the real base (assuming it is a snap type that relies on a base).

You are correct, I will correct my bullet points

This version of snapcraft is now on stable