So if you are interested in learning how to publish software easily and directly to users, this might be just for you.
Snaps are self-contained, confined apps, which run across a variety of Linux systems. The process of snapping software is very straight-forward and publishing them is very quick as well. The whole process offers many things upstreams and app publishers have been asking for years.
The workshop is interactive, all that’s required is that you either have VirtualBox or qemu installed or run any flavour of Ubuntu 16.04 or later. I’m going to bring USB sticks with images.
The workshop will consist of three very straight-forward parts:
Using the snap command to find, install, remove, update and revert software installations.
Taking a look at KDE/Qt software and see how it’s snapped.
A few words about your host of the session: I’m Daniel Holbach, I have been part of the Ubuntu community since its very early days and work for Canonical on the Community team. Right now I’m working closely with the Snappy team on making publishing software as much fun as it should be.
Over the last few weeks, Tuesday has become the Snappy Playpen day. Although you can find us on IRC and Gitter all the time basically, Tuesday is where many of us have their eyeballs locked on the discussion and are happy to help out.
We’re making no exception tomorrow, 19th July 2016 will be another Snappy Playpen event.
We very much want to continue down that road: get more software snapped, help newcomers, get snapcraft.yaml files submitted upstream, fix documentation, answer questions, and grow together as a community.
Tomorrow will have the great advantage, that most of the people working on snapd and snapcraft are sprinting in Heidelberg right now. So they are all in the same place physically, so we are going to try to talk them into helping out and joining us for some Playpen activity.
To get started, have a look at the snapcraft.io page and ask us all your questions tomorrow! We’re looking forward to seeing you there.
Distributing software has never been easier. snapcraft makes it easy to build any kind of app, snapd and snap-confine bring security and hassle-free updates. Maintaining the app in the store is simple and you get lots of flexibility with different release channels.
If you’re interested or curious, adding your software to the Snappy Playpen, might be a good first step. Tomorrow, Tuesday 12th July 2016, we are working together on getting more snaps landed, getting things improved, updating our docs, helping out the snapd/snapcraft people, and upstreaming snaps.
It’s easy to get in touch, we are both hanging out in
I took this as an opportunity to go through the snapcraft bugs as well and tag a few as bitesize myself. snapcraft is written in python, nicely commented documented and comes with a comprehensive test-suite. The people working on it are a lovely bunch and very helpful. So if you are interested in publishing software and have some knowledge in how a certain class of projects is built, you could do a lot of good here.
If you can’t write python or go (for snapd) code, that’s fine – there are lots of other ways to help out:
Next week on Tuesday, 5th July, we want to have our next Snappy Playpen event. As always we are going to work together on snapping software for our repository on github. Whatever app, service or piece of software you bring is welcome.
The focus of last week was ironing out issues and documenting what we currently have. Some outcomes of this were:
consolidation in terms of using common parts (launchers, etc.)
some general cleanup
We want to continue this work, but add a new side to this: upstreaming our work. It is great that we get snaps working, but it is much better if the upstream project in question can take over the ownership of snaps themselves. Having snapcraft.yaml in their source tree will make this a lot easier. To kick off this work, we started some documentation on how to best do that and track this effort.
You are all welcome to the event and we look forward to work together with you. Coordination is happening on #snappy on Freenode and Gitter. We will make sure all our experts are around to help you if you have questions.
It takes a special kind of people who enjoy being in the first in a new community. It’s a time when there’s a lot of empty canvas, wide landscapes to uncover, lots of dragons still on a map, I guess you already see what I mean. It takes some pioneer spirit to feel comfortable when the rules are not all figured out yet and stuff is still a bit harder than it should be.
The last occurrence where I saw this live was the Snappy Playpen. A project where all the early snap contributors hang out, figure out problems, document best-practices and have fun together.
We use Github and Gitter/IRC to coordinate things, we have been going for a bit more than two weeks now and I’m quite happy with where we’ve got. We had about 60 people in the Gitter channel, had more than 30 snaps contributed and about the same number or more being in the works.
But it’s not just the number of snaps. It’s also the level of helping each other out and figuring out bigger problems together. Here’s just a (very) few things as an example:
David Planella wrote a common launcher for GTK apps and we could move snaps like leafpad, galculator and ristretto off of their own custom launchers today. It’s available as a wiki part, so it’s quite easy to consume today.
Sometimes it takes perseverance to your snap landed. It took Andy Keech quite a while to get imagemagick (both stable and from git) to build and work properly, but thanks to Andy’s hard work and collaboration with the Snapcraft developers they’re included now.
The docs are good, but they don’t cover all use-cases yet and we’re finding new ways to use the tools every day.
As I said earlier: it takes some pioneer spirit to be happy in such circumstances and all the folks above (and many others) have been working together as a team together in the last days. For me, as somebody who’s supporting the project, this was very nice to see. Particularly seeing people from all over the open source spectrum (users of cloud tools, GTK and Qt apps, python scripts, upstream developers, Java tools and many more).
Tomorrow we are going to have our kickoff event for week 3 of Snappy Playpen. As I said in the mail, one area of focus is going to be server apps and electron based apps, but feel free to bring whatever you enjoy working on.
I’d like to thank each and everyone of you who is participating in this initiative (not just the people who committed something). The atmosphere is great, we’re solving problems together and we’re excited to bring a more complete, easier to digest and better to use snap experience to new users.
We are in the second week of the Snappy Playpen and it’s simply beautiful to see how new folks are coming in and collaborate on getting snaps done, improve existing ones, answer questions and work together. The team spirit is strong and we’re all learning loads.
Keep up the good work everyone! 🙂
It’s only Thursday, but let’s have a quick look at the highlights of this week.
Added Tyrant Unleashed Optimizer, by Christian Ehrhardt
Added mpv git build, by Alan Pope
Added imagemagick6-stable, by Andy Keech
Added keepassx, by Leo Arias
Added consul, by Leo Arias
dcos-cli snap, by Leo Arias
deis workflow snap, by Leo Arias
Work in progress snaps
Some of these snaps still need help, so take a look at the list of our open PRs and dive in.
Initial working version of Fritzing, by Will Cooke
Continued work on GIMP git, by Andy Keech
Proposed Imagemagick 7 from Git, by Andy Keech
Initial working version of Sylpheed, by Simon Quigley
Pidgin snap from git, by Simon Quigley
TeXworks snap, by Galileo Sartor
MATE Desktop snap, by Martin Wimpress
Moved Ristretto to use a common GTK part (David Planella)
Moved Leafpad to use a common GTK part (David Planella)
Moved Galculator to use a common GTK part (Simon Quigley)
If you want to join the event, just head to the registration page and check out the UOS 16.05 schedule afterwards. You can star (☆) sessions and mark them as important to you and thus plan your attendance for the event.
Now let’s take a look on the bits which are in one way or another related to Ubuntu Core at UOS:
Snappy Ubuntu 16 – what’s new
16.04 has landed and with it came big changes in the world of snapd and friends. Some of them are still in the process of landing, so you’re in for more goodness coming down the pipe for Ubuntu 16.04 LTS.
The Snapcraft roadmap
Publishing software through snaps is super easy and snapcraft is the tool to use for this. Let’s take a look at the roadmap together and see which exciting features are going to come up next.
Interfaces in Ubuntu Core allow snaps to communicate or share resources, so it’s important we figure out how interfaces work, which ones we’d like to implement next and which open questions there are.
Playpen – Snapping software together Some weeks ago the Community team set up a small branch in which we collaborated on snapping software. It was good fun, we worked on things together, learnt from each other and quickly worked out common issues. We’d like to extend the project and get more people involved. Let’s discuss the project and workflow together.
How to snap your software
If you wanted to start snapping software (yours or somebody else’s) and wanted to see a presentation of snapcraft and a few demos, this is exactly the session you’ve been looking for.
Snappy docs – next steps
Snappy and snapcraft docs are luckily being written by the developers as part of the development process, but we should take a look at the docs together again and see what we’re missing, no matter if it’s updates, more coherence, more examples or whatever else.
Demo: Snaps on the desktop
Here’s the demo on how to get yourself set up as a user or developer of snaps on your regular Ubuntu desktop.
I’m looking forward to see you in all these sessions!
Ubuntu 16.04 LTS, aka the Xenial Xerus, has just been released. It’s incredible that it’s already the 24th Ubuntu release and the 6th LTS release. If you have been around for a while and need a blast from the past, check out this video:
You would think that after such a long time releases get somewhat inflationary and less important and while I’d very likely always say on release day “yes, this one is the best of all so far”, Ubuntu 16.04 is indeed very special to me.
Snappy Ubuntu Core 2.0 landing just in time for the 16.04 LTS release only happened due to the great and very hard work of many teams and individuals. I also see it as the implementation of lots of feedback we have been getting from third party app developers, ISVs and upstream projects over the years. Basically what all of them wanted was in a nutshell: a solid Ubuntu base, flexibility in handling their app and the relevant stack, independence from distro freezes, dead-simple packaging, bullet-proof upgrades and rollbacks, and an app store model established with the rise of the smartphones. Snappy Ubuntu Core is exactly that and more. What it also brings to Ubuntu is a clear isolation between apps and a universal trust model.
As most of you know, I’ve been trying to teach people how to do packaging for Ubuntu for years and it continued to improve and get easier, but all in all, it still is hard to get right. snapcraft makes this so much easier. It’s just beautiful. If you have been doing some packaging in the past, just take a look at some of the examples.
Landing a well-working and stable snapd with clear-cut and stable set of APIs was the most important aspect, especially considering that almost everyone will be basing their work on 16.04 LTS, which is going to be supported for five years. This includes being able to use snapcraft on the LTS.
Today you can build a snap, upload it to the store using snapcraft upload, having it automatically reviewed and published by the store and Desktop users can install it on their system. This brings you in a position where you can easily share your software with millions of users, without having to wait for somebody to upload it to the distro for you, without having your users add yet another PPA, etc.
So, what’s still missing? Quite a few things actually. Because you have to bundle your dependencies, packages are still quite big. This will change as soon as the specifics of OS and library snaps are figured out. Apart from that many new interfaces will need to be added to make Ubuntu Core really useful and versatile. There are also still a few bugs which need figuring out.
If you generally like what you’re reading here, come and talk to us. Introduce yourselves, talk to us and we’ll figure out if anything you need it still missing.
If you’re curious you can also check out some blog posts written by people who worked on this relentlessly in the last weeks: