Support snapcraft base snaps
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
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
- William Grant (community): Approve (db)
- Stuart Bishop: Pending (db) requested
-
Diff: 54 lines (+50/-0)1 file modifieddatabase/schema/patch-2209-83-6.sql (+50/-0)
- William Grant (community): Approve (code)
-
Diff: 942 lines (+730/-7)12 files modifieddatabase/schema/security.cfg (+7/-1)
lib/lp/app/browser/launchpad.py (+3/-1)
lib/lp/security.py (+18/-1)
lib/lp/services/webservice/wadl-to-refhtml.xsl (+8/-0)
lib/lp/snappy/browser/configure.zcml (+12/-1)
lib/lp/snappy/browser/snapbase.py (+19/-0)
lib/lp/snappy/configure.zcml (+21/-1)
lib/lp/snappy/interfaces/snapbase.py (+209/-0)
lib/lp/snappy/interfaces/webservice.py (+7/-1)
lib/lp/snappy/model/snapbase.py (+132/-0)
lib/lp/snappy/tests/test_snapbase.py (+273/-0)
lib/lp/testing/factory.py (+21/-1)
- William Grant (community): Approve (code)
-
Diff: 854 lines (+395/-60)10 files modifiedlib/lp/snappy/browser/snap.py (+17/-4)
lib/lp/snappy/browser/tests/test_snap.py (+38/-3)
lib/lp/snappy/browser/widgets/snaparchive.py (+3/-2)
lib/lp/snappy/browser/widgets/tests/test_snaparchivewidget.py (+13/-7)
lib/lp/snappy/interfaces/snap.py (+16/-6)
lib/lp/snappy/model/snap.py (+99/-20)
lib/lp/snappy/templates/snap-index.pt (+4/-2)
lib/lp/snappy/templates/snap-request-builds.pt (+11/-3)
lib/lp/snappy/tests/test_snap.py (+191/-10)
lib/lp/testing/factory.py (+3/-3)
- William Grant (community): Approve (code)
-
Diff: 414 lines (+185/-32)7 files modifiedlib/lp/snappy/browser/snap.py (+3/-1)
lib/lp/snappy/browser/tests/test_snap.py (+64/-0)
lib/lp/snappy/interfaces/snappyseries.py (+9/-3)
lib/lp/snappy/model/snappyseries.py (+34/-5)
lib/lp/snappy/tests/test_snappyseries.py (+27/-2)
lib/lp/snappy/vocabularies.py (+44/-20)
lib/lp/testing/factory.py (+4/-1)
Changed in launchpad: | |
status: | Triaged → In Progress |
assignee: | nobody → Colin Watson (cjwatson) |
tags: |
added: qa-ok removed: qa-needstesting |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Changed in launchpad: | |
status: | Fix Released → Fix Committed |
SnapBuildBehavior: We can always have it retrieve snapcraft from a channel branch (e.g.; stable/ launchpad- buildd) for quick turn arounds.