Snapcraft 2.25 has been released
Hello snapcrafters!
We are pleased to announce the release of version 2.25 of snapcraft has been released:
https://launchpad.net/snapcraft/+milestone/2.25
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:
- Chris Holcombe
- Jonathon Love
- Kit Randel
- Marco Trevisan
- Matthew Aguirre
- Olivier Tilloy
New in this release
Support for hooks
Hooks support has arrived. There are currently two ways to use them, either with a by-convention path or by using a part and installing into an expected path in the part's install directory.
Find out more about this feature at https://github.com/snapcore/snapcraft/blob/master/docs/hooks.md
Desktop file support
Aside from the by-convention functionality already in place, you can now declare a desktop file from your app within an apps entry using a path relative to the prime directory pointing to a desktop file, snapcraft will take care of the rest. So if your project already has a desktop file, say in ./prime/usr/share/applications/my-app.desktop all you need to do is something like this:
apps:
my-app:
command: my-app
desktop: usr/share/applications/my-app.desktopThat said, it is worth mentioning that the by-convention mechanism is still supported.
rust plugin
The rust plugin has seen an improvement and a couple of bug fixes.
The added feature allow for one to set rust-features which is a list of strings used to build optional dependencies (run snapcraft help rust for a bit more details).
The bug fixes relate to:
- Allowing to build with
Cargo.tomlnot in the base source directory. - Repecting the other
rustplugin properties:rust-channelandrust-revision.
nodejs plugin
The plugin now correctly downloads dependencies in package.json to the correct location.
godeps plugin
This plugin is now no longer affected by GOBIN being set in the environment.
deb sources
deb sources are now being handled with python-debian which does incorrecly handle symlinks.
More modes for daemon's in apps
You can now set the daemon property in an apps entry to notify (and it will follow systemd's expected behavior for this service type).
Deprecations
Some new deprecations have been introduced, for parts the prime keyword is now favored over the snap one. When using the snap keyword a link to http://snapcraft.io/docs/deprecation-notices/dn1 will be presented with more information and the migration path.
Plugins that are part of snapcraft that were displaying DEPRECATED notices have all been updated to use the newer plugin API.
Classic confinement
Some improvements were made to classic confinement with a more comprehensive error when the prerequisites to build a classic confined snap are not met.
parts
Improvements were made to the core parts management of snapcraft:
stageentries now don't need to be replicated inprime.- cleaning all parts works correctly even if
snapcraft.yamlis broken.
Others
For the full list of things available on 2.25 feel free to check https://launchpad.net/snapcraft/+milestone/2.25
Final Notes
To get the source for this release check it out at
https://github.com/snapcore/snapcraft/releases/tag/2.25
A great place to collaborate and discuss features, bugs and ideas on
snapcraft is snapcraft@lists.snapcraft.io 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