Week 21 of 2017 in snapd

Hello everyone,

Another Monday, and here is another development report talking about some of the things we focused on during the past week, going from May 22nd to May 26th. Have a look at the report for week 20 if you’ve missed that one.

Please note that this is about the development process. The improvements and fixes discussed here are most likely not available into a stable release yet.

  • OpenSUSE conference 2017
    Note quite development but nevertheless worth noting that some of us attended the OpenSUSE Conference 2017 to catch up with that community and talk about snapd. We don’t have many details yet, but there were good exchanges there.

  • Enhancements to snap info
    snap info now shows snap ids if available. snap info --verbose <snap-file> computes and displays the sha3-384 of the snap file.

  • Repair functionality
    Good progress on the design for the first iteration of the repair capability. Coding started as well.

  • Implemented snap install --unaliased
    This allows to install a snap without enabling its automatic aliases.

  • Test case to reproduce core revert issue
    The error condition was a bit elusive, but we’ve finally managed to reproduce in a test case the issue that blocked 2.25 from being released. The integrated core revert test will prevent regressions and warn of new related issues.

  • Stability fixes and updates for testing
    Several small branches and general automation fixes: updating staging and nightly suite executions, pollinate to improve create-key times, fixes for automated SRU tests, autoimport fixes due to filesystem restrictions, etc.

  • Unit tests moved to spread task
    Instead of running unit tests first inside the integration tests, these were moved into a spread task, which means making better use of parallelism. This cuts the overall time by about 6 minutes, close to 20%.

  • Spread tasks for Fedora and OpenSUSE
    More progress on landing CI support for Fedora and OpenSUSE. Initial preparation bits landed, and follow up PRs are up for review.

  • More progress on snapd --user
    The plan is to have the same binary used to handle tasks which are supposed to happen in the context of the user, such as the server end handling of xdg-open. The PR for that is coming for a while, and received an update.

  • Workaround for bind hook issue proposed
    The Go net package uses bind to figure if IPv6 is available or not. If apparmor is disabled and networking wasn’t explicitly requested via an interface, the bind call was causing the process to be killed by seccomp. A workaround is going in to avoid that, and in the future the seccomp support will be changed so that it doesn’t kill processes but rather warns and rejects the call.

  • Integration tests for lxd
    Some progress was made towards having some basic lxd snap functionality tested inside the snapd CI itself, including the use of snapd itself inside lxd.