Snapcraft 2.26 has been released

This article was last updated 5 years ago.


Hello snapcrafters!

We are pleased to announce the release of version 2.26 of snapcraft has been released: https://launchpad.net/snapcraft/+milestone/2.26

Contributions

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:

  • snapcraft.yaml
  • setup/gui
  • parts/plugins

This adds up to the already existing location for hooks introduced in 2.25.

On snapcraft init, snapcraft will now create a snap/snapcraft.yaml file. Keep in mind that the existing snapcraft.yaml and .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.

stage packages

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

The 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 go-packagesentry.

As an example let’s use juju. It currently as at the time of this writing:

  • github.com/juju/juju/cmd/juju
  • github.com/juju/juju/cmd/jujud
  • github.com/juju/juju/cmd/plugins/juju-metadata
  • github.com/juju/juju/cmd/plugins/juju-upgrade-mongo

Without the go-packages entry you would end up with 4 binaries in your snap juju. jujud. juju-metadata and 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

The 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

The gradle plugin has been enhanced to also work with gradle transparently when gradlew is not provided with the sources of that part.

python plugin

The python plugin will now do the right thing when setting up a requirements entry and having an install_requires entry in setup.py.

General polishing

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.

Others

For the full list of things available on 2.26 feel free to check https://launchpad.net/snapcraft/+milestone/2.26

Final Notes

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 [email protected] 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.

Happy snapcrafting!
— Sergio and the team

Internet of Things

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.

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

We wish you RISC-V holidays!

There are three types of computer users: the end user, the system administrator, and the involuntary system administrator. As it happens, everyone has found...

Snapcraft 8.0 and the respectable end of core18

‘E’s not pinin’! ‘E’s passed on! This base is no more! He has ceased to be! ‘E’s expired and gone to meet ‘is maker! ‘E’s a stiff! Bereft of life, ‘e rests in...

Optimise your ROS snap – Part 6

Welcome to Part 6 of our “Optimise your ROS snap” blog series. Make sure to check Part 5. This sixth and final part will  summarise every optimisation that we...