Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.31:
- Availability status can be tracked on this forum post.
- View the full list of merged PRs.
- Specific bug fixes can be seen on the Launchpad milestone.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
CLI
The move to the new argument parser caused the CLI to regress slightly by duplicating error messages in some circumstances and changing how it handled arguments to the snap
command. That has been fixed in this release.
Resume snap downloads
Snapcraft supports downloading the core snap when building classic snaps. This release adds the ability to resume the download of that snap if an error is encountered when trying to fetch it. This feature is really used more in CI than anywhere else, particularly in our own tests, where downloading the snap fails all the time with connection resets. This change did not help quite as much as we’d hoped in that situation, but it’s nice to have nonetheless.
Sources
The git
source-type was using --remote
when updating submodules, which updated each submodule rather than using the commit recorded in the super project. That’s fixed in this release.
Better build-packages asset tracking
In this release, build-packages
asset tracking has been extracted into a project-wide state area instead of being tracked individually in each part’s state. This fixes some awkward behavior when attempting to walk the dependency tree.
Plugins
qmake
The qmake plugin previously required one to specify the Qt version being used. In this release, it’s started defaulting to Qt5.
Go
Support has been added for cross-compiling Go parts by using snapcraft --target-arch=<arch>
. This supports use of cgo as well. We’re currently working on support for cross-compiling with stage-packages
– if you’re using stage-packages
, please wait to use this feature. We’re implementing it in phases.
Catkin
Larger Catkin projects often keep track of their components by utilizing one or more rosinstall
files. This release adds support for those files to the Catkin plugin, allowing an entire ROS project to be built from a single file.
Store integration
Header change
This release changes away from using X-Ubuntu-Release
to X-Ubuntu-Series
for communication with the store.
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.
Happy snapcrafting!
– Kyle and the team