Releases: canonical/snapcraft
snapcraft 2.37 has been released
Hello snapcrafters! The snapcraft team is pleased to announce that version 2.37 has been released.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
The last three contributors have done so as part of Google's CodeIn initiative.
New in this release
CLI
help command
As a user experience improvement, the snapcraft help
command now produces the
same output as when running snapcraft --help
. Viewing help information
related to plugins and other topics previously supported by snapcraft help
is
still supported.
export-login command
Until now, the only support Snapcraft had baked in for CI systems was the enable-ci
command, which only supported Travis, and only supported pushing a given snap to edge. This release sees the addition of a new export-login
command that exports a login with the exact capabilities requested, which opens the door to many more possibilities in CI. Want to create a login that can only push a specific snap to edge? No problem. Want to create a login that can only migrate a specific snap from edge to beta? No problem. Here's how it works:
Error messages
Another improvement that was developed together with the design team is that now
most (if not all) errors have a very well defined semantic explaining first
what went wrong followed by a suggestion on how to fix it.
Store
The API to synchronize changes made to the metadata in the snap related to the
presentation layer of the store has been extended to support binary assets. So
far, icons are the only entry supported. Once a definition is made on other
potential assets such as screenshots are made, support for them will be added
as well.
To synchronize the data to the store, you need to run the command that was
introduced in version 2.34 of snapcraft:
snapcraft push-metadata
Plugins
catkin-tools
This release sees the addition of the catkin-tools
plugin. This plugin works similarly to the Catkin plugin, but instead of using Catkin, uses the newer (and faster) Catkin Tools. Catkin Tools is still under beta, as is this plugin, but please give it some mileage!
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team
snapcraft 2.36 has been released
Hello snapcrafters,
The team is pleased to announce release 2.36 of snapcraft
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
snapcraft.yaml
It was discovered that the snap of Snapcraft v2.35 (currently in stable) doesn't work on i386 due to an inability to find libsodium. That's fixed in this release; you should be able to use Snapcraft v2.36 on i386 with no issues.
Plugins
catkin
Prior to this release, in order to use the Catkin plugin, one needed to specify each package in the workspace that was to be built and installed into the snap. We received feedback that this was, of course, annoying for large workspaces, especially because the entire workspace was typically desired anyway. A new feature has been added to this release, where if you simply don't specify the catkin-packages
property, the Catkin plugin will assume you want to build the entire workspace.
ament
ROS1 has been supported pretty much from the beginning via the Catkin plugin, but this release sees the addition of an Ament plugin for supporting ROS2 (which has reached beta3). It fetches the ROS2 underlay and bootstraps it before building the overlay, so it does take a while. Give it some exercise! Here's an example of building a simple talker/listener workspace:
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft is the forum. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team
Plugins
snapcraft 2.35 is here
Hello snapcrafters! The snapcraft team is pleased to announce that version 2.35 has been released.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
- Mark Lee
- Michael Vogt
- James Beedy
- Aleix Pol
- Jeff Dickey
- Nathan Haines
- Chris Ratliff
- Marius Gripsgard
- Rakesh Singh
- Martin Wimpress
- Colin Watson
- Paolo Pisati
- Jonathan Cave
- Carlo Lobrano
- Alfonso Sanchez Beato
New in this release
Core
Containers
Each build instance created now correctly works out isolated temporary folder locations for those users running many builds in parallel. There is also better detection of existing or missing lxd installations so first time users can better understand any problems with the host they are currently trying to use.
When running snapcraft
from the snap, snapcraft
now injects itself into the actual snap instead of apt
installing the deb (for the case of today of only supporting one base), providing parity with the local environment at hand.
Work has been added to get rid of all the corner cases and provide useful feedback to users and making the experience feel more native.
Additionally, support has been added for using remote lxd instances.
To enable the persistent build containers feature the SNAPCRAFT_CONTAINER_BUILDS
environment variable needs to be set.
Here's an example of using a remote lxd instance:
Recording
On this new version we added more information to the build manifest, like the contents of lock files, the debs and snaps installed in the machine, information from uname and the fingerprint of the container used for the build. To record the build manifest, set the environment variable SNAPCRAFT_BUILD_INFO
. The manifest will be saved and distributed inside the snap. After the build, you can inspect it in the prime/snap/manifest.yaml.
Command Line Interface
new command: pack
This new pack
command replaces the now deprecated use of snap <snap-dir>
with the goal of decoupling the concept of working on an actual snapcraft project and packing up a directory layout into a snap.
new command: refresh
This command is only available when persistent build containers are enabled and exists to make the environment feel as native as possible. Prior to the existence of this command, building continuously in a container triggered a refresh of the packaging archive every time, now this refresh
only takes place on container creation or when called through snapcraft refresh
.
new command: edit-collaborators
This command will eventually replace the use of the store invites mechanism to setup other people as collaborators to the project. It is currently hidden as the production snap store has it currently disabled. A future release once things have stabilized will expose the command to users. It is harmless to use today as a proper error will show up.
In the meantime, here is how it works when using the integration store:
OS Support
Solus
Initial support for running the snapcraft snap on solus has been added. It should work well enough for things like performing store operations, packing up snaps; or if lxd is installed and setup, most operations should work through use of persistent build containers or cleanbuild.
We look forward to knowing how this initial experience performs.
Ubuntu 14.04
Snapcraft currently only really runs well on Ubuntu 16.04, but we're working on adding support for other releases and Linux distributions. This is the first release where you can use the Snapcraft snap on Ubuntu 14.04 (Trusty). This is particularly important for snaps based on ROS (Robot Operating System) Indigo, which targets Trusty. Here's a demo of just that:
Plugins
dotnet
This plugin developed by Rajesh, a .NET developer at Microsoft, allows you to create .NET 2.x based snaps, currently embedding the runtime with plans to enhance it to understand content snaps of .NET runtimes which could be leveraged by projects.
The syntax is pretty straightforward and builds on language understood by upstream so getting started for a current .NET developer should feel like a pleasant journey.
ruby
This release sees the addition of a Ruby plugin, written by James Beedy. It supports a number of different Ruby versions by building them from source, which takes a little while but makes it pretty versatile. It could definitely use some exercise! Here's an example of building a snap of the Travis gem:
catkin
The Catkin plugin has long supported rosdep to resolve and fetch system dependencies (i.e. Debian packages). However, rosdep also supports resolving pip dependencies. This release adds support for those, so they don't need to specified elsewhere in the snapcraft.yaml.
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team
Snapcraft 2.34 is here
Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.34:
- Available on all supported Ubuntu releases (Ubuntu 16.04 LTS and 17.04), and the development release (Artful Aardvark).
- A windows MSI preview installer for snapcraft on Windows.
- brew installabled on OS X by running
brew install snapcraft
(store interaction and cleanbuild are supported). - pip installable from PyPI (with caveats when setting up
apt
bindings) by runningpip install snapcraft
. - View the full list of merged PRs.
- Specific bug fixes can be seen on the Launchpad milestone.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
types
A new snap type was added: base
, this opens the door to start producing base snaps.
Containers
Each build instance created now correctly works out isolated temporary folder locations for those users running many builds in parallel. There is also better detection of existing or missing lxd installations so first time users can better understand any problems with the host they are currently trying to use.
When running snapcraft
from the snap, snapcraft
now injects itself into the actual snap instead of apt
installing the deb (for the case of today of only supporting one base), providing parity with the local environment at hand.
Additionally, when cleaning projects making use of persistent project containers, snapcraft
destroys the container that was assigned for this work as well.
To enable the persistent build containers feature the SNAPCRAFT_CONTAINER_BUILDS
environment variable needs to be set.
build-snaps
They work in a similar fashion to build-packages
, build-snaps
takes leverage of snaps in the store to create your snaps. This release exposes the feature through
build-packages
While build-packages
have been around for a while, it is only now that they have gained the support for advanced grammar, just as what is provided for stage-packages
.
Support for grammar-powered build-packages
, both at the part-level and global are here to stay.
source caching
Logic has been added to cache source
entries that provide a source-checksum
entry for parts, this would behave like:
Cleanup
Release detection
Snapcraft used the deprecated linux_distribution
method from the platform
module, it now correctly handles the host it is running on through parsing of /etc/os-release
.
Tour removal
The tour has been sunset in favour of the tutorial which can be currently found here.
Errors
Many new exceptions have been created to handle the many potential errors that can occur when running snapcraft
. In addition to that, proper snapcraft
generated and understood errors will produce a nice user friendly error message while situations that were not thought of in the code base will provide proper tracebacks. This will provide a faster turnaround time for fixes and a more apparent situation of wrongness to the users of snapcraft. The errors codes for these two situations are also different, being
1for the former and
2` for the latter.
Plugins
nodejs
Catching up to yarn
's latest developments, the snapcraft plugin now supports the latest release of yarn
.
This plugin has also gained recording capabilities by means of running snapcraft
with the environment variable SNAPCRAFT_BUILD_INFO
set.
jhbuild
This is a new plugin which uses jhbuild
to build mostly gnome projects
python
The python plugin now records the assets it used to build, to get a glimpse of this feature you need to run snapcraft
with the environment variable SNAPCRAFT_BUILD_INFO
set.
catkin
Support for multiple dependency types was added. The catkin
plugin now supports a new API which raises an exception if the dependency type is anything other than apt. This is paving the way for support of pip dependencies coming from rosdep.
The plugin now properly defaults to creating a release build, to enable a debug build, edit the part as follows:
kbuild
This plugin has gained the crosscompiling logic that existed for the kernel
plugin, unifying the code bases more with the side effect of having cross compilation support for kbuild
Support for Makefiles
without install targets is now also of declarative nature, to set it as such here is an example:
ant & gradle
Support for authenticated proxies has been added, this should be transparent to the snapcraft author through means of consumption of the already existing environment variables for proxy management (http_proxy
, https_proxy
, ...).
Here's an example recording:
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team
Snapcraft 2.33 is here
Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.33:
- Available on all supported Ubuntu releases (xenial, zesty) and the development release (zesty).
- brew installabled on OS X by running
brew install snapcraft
(store interaction and cleanbuild are supported). - pip installable from PyPI (with caveats when setting up
apt
bindings) by runningpip install snapcraft
. - View the full list of merged PRs.
- Specific bug fixes can be seen on the Launchpad milestone.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
Containers
The experience of using persistent build containers has become much more pleasant with this release as snapcraft
now takes care of:
- containers that have no use any more such as when a project is cleaned.
- file handling an exposing to and fro the container does not leak container specific assets onto the host.
- use of
--debug
andcleanbuild
now properly enters into a shell inside the container for inspection. - the
clean
command now properly handles corner case scenarios that weren't handled before. - id mappings for the namespace are now correctly set depending on the uid of the user calling
snapcraft
Yaml Merge tags
Yaml merge tags are now supported in snapcraft.yaml
, allowing for advanced use of yaml in snapcraft.yaml
if needed.
Bash completion
Support for bash completion in snapcraft
has arrived, it is just a matter of defining completer
for your app entry under apps
with a script which would deal with such completions. As an illustrative example:
apps:
my-application:
command: runme
completer: completion.sh
Where completion.sh
would be found under the root of prime
.
For all this to work a recent version of snapd
is required like 2.27.
reload-command
for daemons
App entries under apps
in snapcraft.yaml
now support reload-command
as an entry which defines how to deal with configuration reloads for daemons.
Plugins
kernel
Handling of default make targets depending on the architecture is now supported for all architectures.
nodejs
Support has been added for newer releases for nodejs
/npm
for special cases where in tree builds are done and npm
generates a symlink farm. This should now just work with no hassle.
Cross compilation
Cross compilation support is now enabled for:
autotools
waf
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.
Happy snapcrafting!
-- Sergio and the team
Welcome snapcraft 2.32
Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.32:
- This is a snap-only release, available in the
candidate
channel:sudo snap install --candidate snapcraft
- View the full list of merged PRs.
- Specific bug fixes can be seen on the Launchpad milestone.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
Who am I?
Several operations in the snap world require one’s account ID out of the store (e.g. creating model assertions). It gets old having to login to the web dashboard to get that ID, so we introduced a snapcraft whoami
command that returns information about the account which is currently logged in.
Sources
Snapcraft has always supported local sources (i.e. sources sitting alongside the snapcraft.yaml
), but has always used them as a fallback, i.e. if it was determined that it wasn’t another source, then it assumed it was local. This release includes the ability to actually specify that a given source is local, even if it’s e.g. a git repo.
Plugins
catkin
Support was added to the Catkin plugin for the newest ROS distro, Lunar.
rust
Support has been added for cross-compiling Rust parts by using snapcraft --target-arch=<arch>
. Note that we’re still working on support for cross-compiling with stage-packages
-- stay tuned for multi-arch support.
autotools
The autotools plugin supports a configflags
option to supply flags to use when running ./configure
. However, it was enforcing uniqueness on these flags, which prevented some projects from building successfully. This release stops enforcing uniqueness on configflags
.
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.
Happy snapcrafting!
-- Kyle and the team
Welcome snapcraft 2.31
Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.31:
- Availability status can be tracked on this forum post.
- View the full list of merged PRs.
- Specific bug fixes can be seen on the Launchpad milestone.
Contributions
This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:
New in this release
Core
CLI
The move to the new argument parser caused the CLI to regress slightly by duplicating error messages in some circumstances and changing how it handled arguments to the snap
command. That has been fixed in this release.
Resume snap downloads
Snapcraft supports downloading the core snap when building classic snaps. This release adds the ability to resume the download of that snap if an error is encountered when trying to fetch it. This feature is really used more in CI than anywhere else, particularly in our own tests, where downloading the snap fails all the time with connection resets. This change did not help quite as much as we’d hoped in that situation, but it’s nice to have nonetheless.
Sources
The git
source-type was using --remote
when updating submodules, which updated each submodule rather than using the commit recorded in the super project. That’s fixed in this release.
Better build-packages asset tracking
In this release, build-packages
asset tracking has been extracted into a project-wide state area instead of being tracked individually in each part’s state. This fixes some awkward behavior when attempting to walk the dependency tree.
Plugins
qmake
The qmake plugin previously required one to specify the Qt version being used. In this release, it’s started defaulting to Qt5.
Go
Support has been added for cross-compiling Go parts by using snapcraft --target-arch=<arch>
. This supports use of cgo as well. We’re currently working on support for cross-compiling with stage-packages
-- if you’re using stage-packages
, please wait to use this feature. We’re implementing it in phases.
Catkin
Larger Catkin projects often keep track of their components by utilizing one or more rosinstall
files. This release adds support for those files to the Catkin plugin, allowing an entire ROS project to be built from a single file.
Store integration
Header change
This release changes away from using X-Ubuntu-Release
to X-Ubuntu-Series
for communication with the store.
Final notes
To get the source for this release, check it out on github.
A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.
Happy snapcrafting!
-- Kyle and the team
Welcome snapcraft 2.30
Hello snapcrafters!
We are pleased to announce the release of snapcraft 2.30
:
- specifics related to the release process and status of availability can be tracked on this forum post.
- The full list of merged PRs.
- Specific bug fixes can be seen on the launchpad milestone.
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:
- Facundo Batista
- Paolo Pisati
- Tim Süberkrüb
- Julian Liu
- roxd
- Eduardo Vega
- Ricardo N Feliciano
New in this release
Core
snapcraft CLI
This has been a highly requested change in snapcraft, the CLI has been refactored to provide a much cleaner interface to the user (without breaking backwards compatibility). The diferences between one version and the other can be seen on this forum post
containers
The preliminary support for snapcraft to have a container assigned per project has been extended to work with all of the snapcraft build commands, still hidden by the feature flag, SNAPCRAFT_CONTAINER_BUILDS
needs to be set. Read more and track it on this forum post
cleanbuild
now correctly works when using the :arch
syntax in build-packages
and stage-packages
, this is for example, having a stage-packages
entry that ends with :i386
when cleanbuilding on amd64
.
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. The plumbing work is nearly done ironing out minor issues. If SNAPCRAFT_BUILD_INFO
is set in the environment, the resulting snap will have a snap/snapcraft.yaml
which can be use to rebuild the same snap.
More about the final results of asset recording can be looked up on this forum post
sources
There is now support for 7-zip files, if your source has the extension .7z
it should just work. If not, it can be used by setting source-type
to 7z
.
Plugins
meson
A new plugin has made it to snapcraft, a plugin to work with meson, run snapcraft help meson
to get acquainted with the plugin.
rust
The rust plugin now correctly works when source-subdir
is set.
kernel
The kernel plugin has received a lot of attention this cycle. It correctly provides warnings when certain features are not enabled that would be required for a system to boot.
The plugin has also gained a new property kconfigflavor
that works with the knowledge of Ubuntu kernel configurations to assemble a kernel config.
Store integration
snap collaboration
The user interface for this feature has been completed. Hidden in APIs until the store enables the feature so the story is complete.
Branches
Snapcraft has been enhanced to display branch information for the relevant commands.
Final Notes
To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.30
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
Welcome snapcraft 2.29
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
Welcome snapcraft 2.28
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