Future of Launchpad and the Snap Store

Colin Watson cjwatson at ubuntu.com
Tue Jul 5 12:06:43 UTC 2016


On Tue, Jul 05, 2016 at 01:05:09AM -0700, Andrew Keech wrote:
> I've been whittling away at a snap for `gimp-edge` for a while, but feel
> it's been overdue to bring in the maintainer of the ppa where I currently
> get my builds from. Having been in touch with Thorsten now, he's got some
> unanswered questions about the possible future relationships or integrations
> between Launchpad and the Snap Store. Right now he wants to start a new ppa
> just for delivering the snap as a separate project from the traditional
> gimp-edge deb.
> 
> Are there any best practice ideas that exist? Is there some kind of plan for
> how the Store and Launchpad might work together, or if they'd exist
> separately?

The plan is definitely for them to be able to work together, and indeed
quite a bit of this is already in place.  The elevator pitch here is
that Launchpad handles code hosting and building, taking advantage of
the multi-architecture build farm we already have in place, while the
store handles publishing and distribution.

What you can do today:

 * Push a Bazaar or Git branch to Launchpad containing a snapcraft.yaml
   file at its top level, or import such a branch hosted elsewhere into
   Launchpad's Bazaar code hosting
 * Create a snap package in Launchpad, starting from a Bazaar or Git
   branch as above
 * Manually request builds of that snap package in Launchpad
 * Configure the snap package in Launchpad to automatically push
   completed builds to the store
 * Manually publish the package in the store to whatever channels you
   want

What you'll be able to do soon (pending code review and deployment):

 * More obvious configuration for building snap packages for
   architectures other than the defaults of amd64 and i386
 * Configure Launchpad to automatically build a snap package any time
   the branch containing its snapcraft.yaml changes
 * Configure Launchpad to automatically tell the store to publish a snap
   package to a given set of channels after pushing completed builds

What you'll be able to do later:

 * Git-to-Git code imports, which will be more robust than Git-to-Bazaar
   and will cope with some cases that Git-to-Bazaar can't handle; this
   will make things easier for people who e.g. want to host their code
   primarily on GitHub
 * Create a code import right from the "new snap package" form on
   Launchpad
 * Discover all of this from the store, rather than being
   unconditionally guided through uploading packages manually

Regarding integration with PPAs, snap packages aren't contained in PPAs
as such.  However, you can either have Launchpad build the code that
goes into the snap package from scratch, or you can have it assemble a
snap package based on existing .debs in the Ubuntu archive and/or a PPA,
depending on what you put in your snapcraft.yaml; so the two approaches
can work together if you want, and this may make sense if you already
have good automation for doing edge builds in a PPA.

Does that help with those unanswered questions?

-- 
Colin Watson                                       [cjwatson at ubuntu.com]




More information about the Snapcraft mailing list