Week 25 of 2017 in snapcraft

Welcome to the weekly development notes for snapcraft! This covers work from June 19th until June 23rd of 2017.

Release updates

Snapcraft 2.31 made it into -updates for all supported releases early in the week. We also released Snapcraft 2.32 as a snap-only release. However, this release will not make it to the stable channel due to an issue we discovered with it. This should be fixed in the next release.

Bug squashing and improvements

Snapcraft uses Travis heavily to test each pull request. However, Travis limits the number of concurrent runs, which means only a portion of a given PR’s tests run at any time, and only one PR can run its tests at a time. Recently Travis introduced the concept of stages, so we refactored our test suite to begin using it, running shorter tests before longer ones. This allows PRs to fail quickly, and not waste resources that could be used by other PRs.

Support for cross-compiling Rust parts has landed. Support for cross-compiling with stage-packages is in progress, stay tuned for multi-arch support.

Support for ROS Lunar has landed, bringing the list of supported ROS distros to Indigo, Jade, Kinetic, and Lunar.

We also added a snapcraft whoami command to allow for one to easily discover which account one is logged into.

We fixed some issues with how Snapcraft handled arguments when asked to clean while building in a container.

The snapcraft snap gets more stable, we’ve needed a testing suite to test the snap directly. This week we finished that suite, which uses spread.

External contributions

We love seeing pull requests from people outside of the snapcraft core team, and we saw some this week. A big thank you to Simon Davy, @roxyd, Paolo Pisati, and Evan Dandrea!