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.
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?
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
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:
passthrough:
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).