Support snapcraft base snaps

Bug #1812985 reported by Colin Watson on 2019-01-23
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
High
Colin Watson

Bug Description

snapcraft now supports things like "base: core18" to build snaps based on 18.04 rather than the historical default of 16.04. This can be made to work in Launchpad today, but making it work without non-obvious configuration (especially for build.snapcraft.io) requires a few adjustments.

 * SnapBuildBehaviour should instruct launchpad-buildd to fetch snapcraft from the stable channel by default for builds of snaps that declare a base, rather than the default of using apt which should remain the default for snaps that don't declare a base. (This split is a simple way to minimise potential breakage from switching to the stable channel by default, since most snaps in Launchpad today don't declare a base.)

 * We need a way for a snap recipe to be set up without declaring a specific Ubuntu series, and to work out the series at build dispatch time by inspecting snapcraft.yaml. This should be feasible now that we have the Snap.requestBuilds mechanism, which already inspects snapcraft.yaml to work out the correct set of architectures to dispatch.

Related branches

Sergio Schvezov (sergiusens) wrote :

SnapBuildBehavior: We can always have it retrieve snapcraft from a channel branch (e.g.; stable/launchpad-buildd) for quick turn arounds.

Colin Watson (cjwatson) wrote :

Yes; though would we need to do something convoluted to make sure that the branch stays open?

Sergio Schvezov (sergiusens) wrote :

I was thinking about the ubuntu branch trick for the snaps that are part of the snaps seeded into distro, I thing wgrant is well aware of the mechanics of this.

If agreed upon, and considering my assumptions are correct, we just need to agree to a branch name once and the fallback should stick.

William Grant (wgrant) wrote :

Right, remember that an expired branch just falls back to stable, which is probably the behaviour we want here.

Colin Watson (cjwatson) on 2019-01-31
Changed in launchpad:
status: Triaged → In Progress
assignee: nobody → Colin Watson (cjwatson)
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Colin Watson (cjwatson) on 2019-02-12
tags: added: qa-ok
removed: qa-needstesting
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
removed: qa-ok
Launchpad QA Bot (lpqabot) wrote :
Changed in launchpad:
status: In Progress → Fix Committed
Colin Watson (cjwatson) on 2019-02-20
tags: added: qa-ok
removed: qa-needstesting
Changed in launchpad:
status: Fix Committed → Fix Released
Krishnaraj (krrishnarraj) wrote :

I changed the status(which I should not be allowed to) by mistake. Can someone revert it back?

Colin Watson (cjwatson) on 2019-02-21
Changed in launchpad:
status: Fix Released → Fix Committed
Colin Watson (cjwatson) wrote :

I deployed this to production a few days ago, populated the new SnapBase table, and adjusted the metadata of build.snapcraft.io's snap recipes; builds of "base: core18" snaps now work.

Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers