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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
In Linux, testing software is both easy and difficult at the same time. While the repository channels offer great availability to software, you can typically only install a single instance of an application. If you want to test multiple…
A little later than usual, we’ve collected some of the snaps which crossed our “desk” (Twitter feed) during May 2019. Once again, we bring you a suite of diverse applications published in the Snap Store. Take a look down…
Niryo has built a fantastic 6-axis robotic arm called ‘Niryo One’. It is a 3D-printed, affordable robotic arm focused mainly on educational purposes. Additionally, it is fully open source and based on ROS. On the hardware side, it is…