Hello snapcrafters!
We are pleased to announce the release snapcraft 2.28
:
https://launchpad.net/snapcraft/+milestone/2.28
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:
- Colin Watson
- Jonathan Cave
- Michael Hudson-Doyle
- Olivier Tilloy
- Paolo Pisati
- pachulo
New in this release
Core
snapcraft snap
snapcraft can now properly build as a snap and does the right thing. Starting 2.28 snapcraft should eventually be able to be installed from the store, currently in the edge
channel.
repo
The repo module in snapcraft, which deals with stage-packages
entries and host distro specific packaging has been moved to a more modular python packge inside snapcraft allowing contributors to add support for other mechanisms such as support for rpm.
cleanbuild
The logic for cleanbuild has been reworked to properly detect when lxd (the lxc client actually) is installed as a snap or manually compiled. This change also comes into play for cross distro snapcraft support.
classic confinement
With this release it should be now possible to use launchpad builders to build for other architectures than amd64
as the detection logic for the dynamic linker in core has been fixed.
sources
Sources, thanks to an external contributor, can now make use of a new entry, source-checksum
which can be added to sources that can be hashed, the format is the following: source-checksum: <algorithm>/<digest>
. These are the supported algorithms:
md5
sha1
sha224
sha256
sha384
sha3_256
sha3_384
(recommended)sha3_512
Plugins
python
Projects that use pbr
, mostly openstack, now correctly setup their console_scripts
defined in entry_points
when using setup.cfg
.
When building with python provided as a part, headers are now correctly setup to do the right thing for python packages that need to build code requiring these headers.
kernel
The kernel
and kbuild
plugins have received some needed attention for this release providing for better out of the box kernel builds.
The demos have been setup to now build proper bootable kernels with todays Ubuntu Core module dependency.
The plugin itself:
- The plugin itself has added better support to the logic that adds and traces module dependencies when needing them added to initrd.
- For the case of architectures that use dtbs, if no dtb is specified, all dtbs are installed to make sure the system could boot by default.
- The kernel target, if not provided is now decided by the plugin depending on the build architecture.
- When building, custom
MAKEFLAGS
no longer affect the build.
And to add to that, there is now a test plan for the kernel plugin that tracks the supported kernels.
catkin
The plugin has been expanded to support underlays, the benefit here is that it is now easy to build ROS projects that make use of the content
interface. Check out the demo code.
Store integration
Delta uploads are now enabled for every snapcraft push
done, a welcome bandwith saving addition.
Every store request now sends a proper User Agent string so the store can behave accordingly to the version of snapcraft in use and properly determine when deprecated APIs can go out the door.
The history
command has been deprecated in favor of list-revisions
with an alias of revisions
. An explanation of the reasoning can be read on the deprecation notice DN4
The status
, close
and list-revisions
commands have been updated to show track information when used.
Others
For the full list of things available on 2.28 feel free to check https://launchpad.net/snapcraft/+milestone/2.28
Final Notes
To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.28
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