Week 21 of 2017 in snapcraft

Welcome to the weekly development notes related to the happenings around snapcraft. This includes work from May 22 until May 26 of 2017.

Release updates

snapcraft 2.30 has been released into the Ubuntu Archives. It is already available on the release pocket of Artful Aardvark and in the proposed pocket for Xenial Xerus, Yakkety Yak and Zesty Zaurus.

The SRU team has blocked landing into the release pocket until the python3-click-package and python3-click conflict is sorted, the team is working on upstream lp:click to sort this out and break the conflict in the archives. To get a path to resolution going forward we had a discussion with a couple SRU team members. The result of those discusions can be observed on this merge proposal.

A snap has also been released to the beta channel for all snap supported architectures and is currently under a call for testing. Detailscan be read about, and feedback is welcome on the call for testing post.

With the release to beta of snapcraft 2.30, the 2.29.1 snap which has been maturing there has been released to the candidate channel. We shall soon have a snap released to stable for easy consumption from everyone. This snap had a prior call for testing.

Discussions and discovery

Some improvements for the version-script functionality have been made and proposed on the forum which allow more fine grained control (and readability) to the existing implementation; this new proposal introduces setters that can be called from within the script instead of requiring an echo.

The team is also working on some discovery work for a real time kernel snap based out of the already existing snapcraft.yaml living on the Ubuntu kernel git repos, the work can be found on this repo.

A proposal for better global state tracking has been made, this is mostly to have better recording of build-packages to later easier triage built snaps in the future, that conversation took place on this forum post.

Persistent build containers are already here, hidden by a feature flag SNAPCRAFT_CONTAINER_BUILDS, this works well for when the LXD remote is the local one but some work is still needed to get it going for remote remotes, those ideas are being explored here and here.

The feature work for snapcraft whoami, which had a discussion on this forum post has an initial pull request.

Bug squashing and improvements

The go cross compilation work which has started some weeks ago took a front seat on the testing front this week, adding more robustness to account for the disparity of environments this feature can face, the PR is the place to go to follow this work.

The team has also spent spent time debugging the sucession of connection resets recieved from the CDN which has really been impacting our CI/CD. There is a conversation ongoing over on, you guessed it, the forum. In the mean time more robustness has been added to the download logic which is being executed on this pull request.

External contributions

This week we’ve recieved external contributions in the form of Pull Requests, we’d like to give a special shout out to:

  • Colin Watson
  • Eduardo Vega
  • Tim Süberkrüb
  • filibtester
  • Daniel Llewellyn (ongoing work on the jhbuild plugin).


This week a new tutorial showed up on behalf of the team, related to enabling snapcrafting CI/CD from travis, it has been proposed here.

If that is not enough reading material, there’s André Bação’s blog we’ve discovered today which can be found on http://blog.bacao.pt/. He is into creating snaps that come out of hashicorp related products. You can find him as @abacao on our RocketChat #snapcraft channel.