We are pleased to announce the release of version
2.26 of snapcraft has been released: https://launchpad.net/snapcraft/+milestone/2.26
This release has seen some contributions from outside of the snapcraft core team, so we want to give a shout out to these folks, here’s a team thank you for:
- Björn Tillenius
- Marco Trevisan
- Matthew Aguirre
- Olivier Tilloy
- Shawn Wang
New in this release
Snap directory now in place
All the snapcraft specific asset handling has been moved to the
snap directory as the preferred location for the following:
This adds up to the already existing location for
hooks introduced in 2.25.
snapcraft init, snapcraft will now create a
snap/snapcraft.yaml file. Keep in mind that the existing
.snapcraft.yaml are still valid and not deprecated.
However, use of
parts/plugins will print a deprecation message with a link tohttps://snapcraft.io/docs/deprecation-notices/dn2 and use of
setup/gui will behave in a similar way but linking to https://snapcraft.io/docs/deprecation-notices/dn3.
The experience for using multi-architecture package entries in
stage-packages has been refined. This should provide a better experience for when someone wants to; to illustrate image that on an
arm64 you would want to include an
armhf package, e.g.;
parts: packages: plugin: nil stage-packages: - libfoo:armhf
Desktop file support enhancements
Snapcraft 2.25 introduced support for
desktop file entries in as part of an app entry in
apps. There have been improvements to this functionality for when the app entry in
apps matches the snap
nameas well as polishing in the assembly of the resutling snap.
godeps plugin until this release fetched all the dependencies defined in
dependencies.tsv or that defined in the part by the
godeps-file entry and proceeded to build all
package main sources found in the tree. This can now be limited to only build certain packages by use of the
As an example let’s use
juju. It currently as at the time of this writing:
go-packages entry you would end up with 4 binaries in your snap
juju-upgrade-mongo. If for example you wanted to only build
juju something like this would do the trick:
parts: juju: https://github.com/juju/juju go-importpath: github.com/juju/juju go-packages: - github.com/juju/juju/cmd/juju
catkin plugin has been optimized under the hood to work better with the compiler meant to be used with the chosen ROS release.
gradle plugin has been enhanced to also work with
gradle transparently when
gradlew is not provided with the
sources of that part.
python plugin will now do the right thing when setting up a
requirements entry and having an
install_requires entry in
Some nice polishing that is part of ongoing work is showing up in this release:
- schema errors related to text length limits now display an error a human can parse.
- incorrect spacing issues have been fixed in some prompts.
- some projects that are part of the tour had missing `build-packages added to them.
- colors have been fixed for failed logins to the store.
For the full list of things available on 2.26 feel free to check https://launchpad.net/snapcraft/+milestone/2.26
To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.26
A great place to collaborate and discuss features, bugs and ideas on snapcraft is firstname.lastname@example.org mailing list or on the snapcraft channel on Rocket Chat https://rocket.ubuntu.com/channel/snapcraft
To file bugs, please go to https://bugs.launchpad.net/snapcraft/+filebug.
— Sergio and the team
From home control to drones, robots and industrial systems, Ubuntu Core and Snaps provide robust security, app stores and reliable updates for all your IoT devices.