The future of shipping software is coming together
I have some very exciting news, but wanted to share some thoughts I had earlier today.
Since I joined the Ubuntu community I’ve always had to do with people who want to ship their software in Ubuntu and as I’m a generally excitable guy I always thought “finally, it became so much easier - we’re there”! Over the past years we got better documentation, PPAs in Launchpad, the dh command, bzr-builddeb, daily builds in Launchpad, pkgme, the ARB process, translated documentation and lots of other initiatives which always felt like we made the world a better place for ISVs, third party app developers, upstream developers and whoever else wanted their software to be in Ubuntu.
Fast-forward to Ubuntu on the phone and click. Suddenly it became SUPER easy, even easier to ship software. Write a manifest, run “click build”, upload it to the store where it gets auto-reviewed and you’re golden. This was possible because apparmor and friends were so tightly integrated into the phone experience and confinement fully worked, so we could trust apps to be safe and trust our automatic reviews. Finally!
snappy, the evolution of click, has a much broader scope and is finally moving into the center of attention of many and will at some stage also get on the phone and elsewhere. It shares the concept of a central software store with confined apps but brings atomic upgrades, rollbacks and lots of other goodness.
From the point of view of somebody who’s shipping software some things were still missing though. How do you easily do repeatable builds, especially if they involve bundling other software?
Enter snapcraft. A thing of beauty. Finally you can specify all relevant meta-data in one file, define which parts make up your app and snapcraft’s plugins (Go, Java, autotools, etc.) will take care of pulling and building sources and binaries, which files to ship exactly and everything else. It’s magic.
We just shipped 0.2 of snapcraft and the amount of new tests, bug fixes and goodness which landed is staggering. Even more importantly: the syntax of snapcraft.yaml is now very likely going to be stable.
I have more good news:
we are going to have our first of many Ubuntu Snappy Clinics brought to you by Sergio Schvezov, Michael Vogt and myself. The topics of these clinics are going to change, but will always be centered around snappy and the technologies around it and will give enough opportunities to ask your questions and work on things together.