Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.29
:
- https://forum.snapcraft.io/t/in-progress-snapcraft-2-29/346
- https://github.com/snapcore/snapcraft/milestone/2?closed=1
- https://launchpad.net/snapcraft/+milestone/2.29
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:
- Andy Li
- Celso Providelo
- Chris MacNaughton
- Colin Watson
- Eduardo Vega
- Facundo Batista
- Jumpei Ogawa
- Para Siva
New in this release
Core
snapcraft snap
Improvements were made to the way snapcraft (through python) finds libraries when using ctypes
, this ensures a correct functioning of snapcraft across operating systems. Other improvements were made for snapcraft across operating systems to have correct fall back mechanisms to continue functioning.
containers
There is now preliminary support for snapcraft to have a container assigned per project being worked on. The support today is limited to local
lxd remotes and hidden with the feature flag SNAPCRAFT_CONTAINER_BUILDS
that needs to be set.
Read more and track it on the forum: https://forum.snapcraft.io/t/per-project-containers/388
enhanced version support
The much requested feature of changing the user visible version in a dynamic way has arrived. There are two modes:
- a pure script to run after everything has been
prime
d by use of aversion-script
keyword. - a keyword of
git
that can be set to theversion
which tells snapcraft to generate the version from the information provided by the VCS holding the repo. This should be really beneficial for people releasing with annotated git tags.
More of this can be read on the forum: https://forum.snapcraft.io/t/snapcraft-version-scriptlets/106
asset recording
Asset recording is a feature with two benefits, easier tracking of what is in a snap and also provides enough information to rebuild a snap with the information provided. Some of the plumbing work has made it into this release.
More about the final results of asset recording can be looked up on the forums https://forum.snapcraft.io/t/asset-recording-for-a-built-snap/317/1
Plugins
rust
Projects using rust can now enjoy the benefits of classic confinement as the linker flags are now correctly set through rust flags settings.
nodejs
The nodejs plugin now has experimental support for yarn
. To use it instead of npm
the part just needs to set node-package-manager
to yarn
, here is an example for a part using the nodejs
plugin:
parts:
shout:
plugin: nodejs
node-packages:
- shout
node-package-manager: 'yarn'
ant
Proxy support for the ant plugin has been worked on. Mostly invisible to most users but necessary to correctly work on most CI systems like the launchpad builders which can be setup on https://build.snapcraft.io
Store integration
snap collaboration
The plumbing work to get snap collaboration in place has landed, for more information about the design for snap collaboration refer to https://forum.snapcraft.io/t/ux-for-snap-collaboration/86/17
UI polish
Improvements to make the UI less cluttered have been made, left over artifacts have been cleaned up as well. This should mostly affect the operation of the snapcraft push --release
command.
Final Notes
To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.29
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums on https://forum.snapcraft.io and 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