CircleCI helps developers test software and deploy it quickly but at a high standard. It is a key element of many developer’s DevOps toolsets. Ricardo Feliciano wears two hats – one as an avid community advocate (under the guise of FelicianoTech) and the other as Developer Evangelist at CircleCI. Ricardo joined the Snapcraft Summit in January to advance CircleCI’s plans to publish a snap. That snap has now been published and is available in the store now. Ricardo has also blogged about his experience on CircleCI’s own blog.
Despite being an Ubuntu user for a long time, he really appreciates the efforts Snapcraft and snaps are making to bridge the cross-distro gap.
How did you find out about snaps?
It was a personal journey actually. I was trying to write a small program in Ubuntu in Bash. I was trying to find a way to package it as a .Deb (Debian Package) which I’d never done previously but it was really complicated. The documentation wasn’t a help either. Given it was a small program and I was just looking for a single fix, the whole process felt very convoluted. Instead, I started looking around and that is where I discovered snaps.
What was the appeal of snaps that made you decide to invest in them?
There were several factors. As a developer, it was very simple to get on board with. There were less moving parts and with newer versions of Ubuntu, all of the tools needed are already installed. Secondly, even though I use Ubuntu, I like the fact it wasn’t exclusive to that. It is a very different change in the Linux packaging world. As a community person, the fact everything from snapd to Snapcraft is open source was attractive. Finally, like most people who adopt snaps – the auto-updating feature is critical. At CircleCI, we ship our own software regularly, several times a day in fact. With such frequent regularity, we need something that can keep pace with how we develop and Snapcraft is the only tool that can do this currently.
What packaging problems have you had historically?
I’ve had times where I’ve messed up things in Apt and locked my system. Typically, I have had to re-install my whole OS just because I have got one command wrong. That’s not a good place to be in.
How does building snaps compare to other forms of packaging you produce? How easy was it to integrate with your existing infrastructure and process?
As mentioned, the .deb process was so complicated I gave up and as the app being created wasn’t for commercial purposes, I didn’t have the time or resource to devote. That’s what is great about snaps – it’s great for companies but also makes it easy for the solo developer. In terms of integration, from a CircleCI perspective, we are still early on. We release a local build tool but it’s not really packaged so there is more work to take care of. We would look to snap this local build tool and believe snaps will be a flexible way to do that.
How do you see the store changing the way users find and install your software?
We use the store for CircleCI for our snap – this obviously enables us to target many Linux distros. Using Snapcraft as a tool allows us to take care of packaging easier, makes automation easier which ultimately means we can spend more time on coding and that’s where our focus should be.
What are your expectations or already seen savings by using snaps instead of having to package for other distros?
Support will be the key area for savings as a lot of our engineers aren’t familiar with other distros so it is time intensive to investigate specific issues. Obviously, snaps gives us just one package to support which is better. In tandem, the auto-updating feature also lends itself to support savings as we should spend less time addressing with outdated software that may have already been resolved in an update.
Which release channels (edge/beta/candidate/stable) in the store are you using or plan to use, if any?
We would definitely use stable and probably edge. The latter would be like a nightly for us and stable would be our cut releases with versioning. We’d like the get things to stable as soon as possible.
How do you think packaging as a snap helps your users?
Some people aren’t too familiar with (or just don’t want to use) the Linux command line so the install simplicity of the software centre is an aid for our users. Having auto-updates run in the background will also help take that task away from the user.
How would you improve the snap system?
The documentation could be improved as could the onboarding process, but I’ve seen a lot of enhancements over the last 6 months on this front. Having attended the Snapcraft Summit, I can see what is in the pipeline and it looks promising.
However, from a bigger picture perspective, the more that can be done on the advocacy side addressing both developers and users will really take snaps forward. The bridging gap between different Linux distros is an under-rated problem – we find it is the biggest problem that users bring up. The Linux eco-system is too fragmented which turns people away. Snaps can help address this.
What advice would you give to someone else thinking of snaps?
Just do it. It is so simple and will open up your software to a potentially larger audience. Even if you don’t pick up users from other distros, the ease to which you can ship snaps will still make the switch worth it.
What role does the developer community play in attracting people to the snap universe?
In my opinion, the developers are the second most important. The biggest influence will be the large corporations such as Slack and Spotify who have built snaps. This will encourage developers in turn to take snaps seriously.
Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.