This article was written by Merlijn Sebrechts and Dani Llewellyn from the Snapcrafters community.
Last year, we officially re-launched the “Snapcrafters” initiative. We’re a community of volunteers who build and maintain unofficial snap packages. Although snaps make it easy for developers to publish their software directly to users, some of them don’t (yet) do this. Here is where Snapcrafters come in: we build snap packages, update them, and work with developers to eventually hand over these packages into their care.
Throughout the year, we’ve been busy improving the snaps and our tooling around the project. This post summarises some of the highlights.
Snapcrafters in numbers
If you’ve ever installed software from the Snap Store, there is a high chance you came across one of ours! Today, we have over 1.5 million active installations of our packages! Even more if you count the packages that are now in the hands of the upstream developers.
GIMP and Discord are our most popular snaps with over 650,000 active installations combined. In total, we maintain 73 snaps, with a team of 33, of which about half are core contributors.
One of the most common requests we get is to update snaps more quickly. When a software developer releases a fresh version of their application, we need to update the snap to ship the new goodies. This can take a while, because we’re a group of volunteers doing the work in our free time.
We really want to improve this, however. Therefore, we’ve been working hard on automating more of our work. Thanks to Dani’s effort on the snapcraft review action, most of the repositories now automatically build and test each pull request! This makes our job as maintainers much easier.
Building upon this, we’ve created a whole bunch of logic for the Signal Desktop snap to update it to the latest version.
It works a bit like this:
- Every time Signal releases a new version of their application, our GitHub Actions workflow builds a new version of the snap, tests it, and uploads it to the Snap Store in the “candidate” channel.
- The workflow also creates a “Call for Testing” issue asking users to manually test the update.
- Once a maintainer is happy with the update, they comment on the issue, to promote that version to the “stable” channel via a “slash command”.
- At this point, another workflow promotes the snap and closes the issue, at which point all users receive the update!
This should result in much quicker updates. While Signal Desktop is the only snap using this new process at the moment, we will slowly add this functionality to more and more snaps.
Live meetup at the Ubuntu Summit
For the first time ever, we were able to meet in-person at the first Ubuntu Summit in Prague. It was a lot of fun and very inspiring to get together! Some of the Snapcrafters even presented at the summit and spread their knowledge. Dani kicked off the event by explaining everything you need to know to get started in the Ubuntu Community. We also had a panel discussion with several people involved with snaps, discussing the future, past, and everything that gets us excited about snaps.
Interested in helping out?
Are you interested in helping out? Would you like to improve software used by hundreds of thousands of people? Then we’re happy to have you! The best part is, you don’t even need much knowledge about snaps!
For example, one of the ways you can contribute is by improving and updating the metadata of our snaps. These are, for example, the description of a snap, screenshots and useful links. This helps users find the applications, figure out what they do and know where they can get help. We can definitely use help in improving this information for our snaps. Most of this metadata is stored in the snapcraft.yaml file itself.
Testing snaps and reporting bugs is also a good way to contribute. The source code for each snap is available in our GitHub organisation. Each snap has a separate bug tracker where you can report any issues.
If you have any questions or need help, you can create a post on the forum in the Snapcrafters category. Take care, and see you in 2023!