Changelog¶
8.5.0 (2024-Nov-19)¶
Core¶
Remove the Snapcraft Dockerfile in favour of the snapcraft-rocks registry. For more information, see the
docker/README.md
file.
Bases¶
core24¶
Add a
--platform <platform>
argument to theclean
command to filter which build environments to clean (canonical/craft-application#425).
Plugins¶
Poetry¶
Add a new plugin for projects using Poetry. For more information, see Poetry plugin reference.
Extensions¶
Env-injector¶
Add a new experimental extension called env-injector. It simplifies passing environment variables to snaps at runtime using
snap config
or a.env
file. For more information, see the env-injector extension
Command line¶
Order lifecycle commands in the sequence they run rather than alphabetically in help messages.
Show positional arguments in help messages.
Hide the terminal cursor when Snapcraft is running.
Fix a bug where the version and path to the log file were logged multiple times.
Fix a bug where deprecated commands were suggested when an invalid command was entered (canonical/craft-cli#297).
Init¶
Add a
<project-dir>
argument to initialise the project in a particular directory.Add a
--name <name>
argument to set thename
key in the initialisedsnapcraft.yaml
. If--name
isn’t provided, the name of the project directory or current working directory is used.Add a
--profile <profile>
argument to initialise a project for a specific purpose. Currently, only thesimple
profile is supported.
Store¶
Add support for
registries
with new commandslist-registries
andedit-registries
.Add support for specifying components in a validation set when using the
edit-validation-sets
command.
Documentation¶
Add reference for linters.
Update the
HACKING
doc with instructions for how to usetox
.Hide subheadings in the changelog’s table of contents.
Add reference for the Poetry plugin.
Fix an issue where the auto-generated command reference wasn’t rendered correctly.
For a complete list of commits, check out the 8.5.0 release on GitHub.
8.4.4 (2024-Oct-24)¶
Core¶
Bases¶
core24¶
Fix a bug where
CRAFT_PARALLEL_BUILD_COUNT
was not evaluated insnapcraft.yaml
files (#4785).Fix a bug where
package-repositories
declarations could conflict with default sources present in Noble (LP#2083013).
For a complete list of commits, check out the 8.4.4 release on GitHub.
7.5.8 (2024-Oct-24)¶
Core¶
Fix a regression where Snapcraft would fail to run on some architectures due to a
cryptography
dependency that attempted to load legacy algorithms (#5077).
For a complete list of commits, check out the 7.5.8 release on GitHub.
8.4.3 (2024-Oct-10)¶
Core¶
Components¶
Add support for component types
kernel-modules
andstandard
(#5089).
For a complete list of commits, check out the 8.4.3 release on GitHub.
8.4.2 (2024-Oct-07)¶
Core¶
Fix a regression where Snapcraft would fail to run on some architectures due to a
cryptography
dependency that attempted to load legacy algorithms (#5077).Fix a regression where Snapcraft would fail to run in a container if it was not running as a snap (#5079).
Fix a bug where parallel installations of Snapcraft would not work if the Snapcraft snap was installed from the store (#4683, #4927).
Plugins¶
Python¶
Fix an issue where the
python
plugin would fail to build if the part had no Python scripts.
Remote build¶
Fix a bug where the remote builder would ignore the user’s response when a build is interrupted and always clean the launchpad project (#4929).
Documentation¶
Update Rust plugin doc with recent changes to the Rust toolchain.
For a complete list of commits, check out the 8.4.2 release on GitHub.
7.5.7 (2024-Oct-03)¶
Core¶
Fix a bug where parallel installations of Snapcraft would not work if the Snapcraft snap was installed from the store (#4683, #4927).
For a complete list of commits, check out the 7.5.7 release on GitHub.
8.4.1 (2024-Sep-20)¶
Core¶
Fix a regression where numeric entries in
snapcraft.yaml
couldn’t be parsed.
Bases¶
core24¶
Fix a regression where
build-for
couldn’t be omitted in aplatforms
entry in asnapcraft.yaml
file.Fix a regression where
--shell
and--shell-after
weren’t supported for thepack
command (#4963).Fix a regression where
--debug
wouldn’t open a shell into the build environment if the packing step fails (#4959).
Plugins¶
NPM¶
Fix a bug where NPM parts fail to build if the
pull
andbuild
steps didn’t occur in the same instance of Snapcraft.
Command line¶
Remote build¶
Store¶
Fix a regression where Ubuntu One macaroons couldn’t be refreshed (#5048).
For a complete list of changes, check out the 8.4.1 release on GitHub.
8.3.4 (2024-Sep-13)¶
Core¶
Plugins¶
NPM¶
Fix a bug where NPM parts fail to build if the
pull
andbuild
steps did not occur in the same execution of Snapcraft.
For a complete list of commits, check out the 8.3.4 release on GitHub.
8.4.0 (2024-Sep-10)¶
Note
8.4.0 includes changes from the 7.5.6 release.
Core¶
Fix a bug where Snapcraft would fail to inject itself into the build environment when not running as a snap (canonical/charmcraft#406). If an app isn’t running from snap, the installed app will now install the snap in the build environment using the channel in the
CRAFT_SNAP_CHANNEL
environment variable, defaulting tolatest/stable
if none is set.Fix a regression where icons wouldn’t be configured and installed for snaps with no
apps
defined in theirsnapcraft.yaml
.
Bases¶
core24¶
Raise an error if the build plan is empty and no snaps will be built (canonical/craft-application#225).
Fix a regression where
https_proxy
,https_proxy
, andno_proxy
were not forwarded into the build environment.
Plugins¶
Fix a bug where
snapcraft list-plugins --base core20
would fail in acore24
project directory (#5008).
Components¶
Allow numbers and hyphens in component names (LP#2069783).
Fix a bug where
stage-packages
can’t be used when components are defined (canonical/craft-parts#804).
Command line¶
Improve error messages when parsing a
snapcraft.yaml
file (#4941).Improve error messages when using an ESM base.
Improve error messages for missing files (canonical/craft-parts#802).
Improve error messages when a build fails because it matches multiple platforms (canonical/craft-application#382).
Fix a bug where multi-line error messages would overwrite the previous line (canonical/craft-cli#270).
Remote build¶
Add “Pending” status for queued remote builds.
Add documentation links to remote-build errors.
Improve error messages when multiple snaps can be built on a single
build-on
architecture (#4995).Improve error messages when using the wrong remote builder.
Fix a regression where
--platform
or--build-for
could be used whenplatforms
orarchitectures
were defined in thesnapcraft.yaml
file (#4881).Fix a regression where
--platform
could be used forcore22
snaps (#4881).Fix a bug where
SNAPCRAFT_REMOTE_BUILD_STRATEGY
would be validated when running commands other thanremote-build
.Fix a bug where
SNAPCRAFT_REMOTE_BUILD_STRATEGY
was ignored forcore24
snaps.
Documentation¶
Add changelog notes for all Snapcraft 8.x releases
Add reference, explanation, and how-to for components.
Add reference, explanation, and how-to for bases.
For a complete list of commits, check out the 8.4.0 release on GitHub.
8.3.3 (2024-Aug-28)¶
Core¶
Improve detection and error messages when LXD is not installed or not properly enabled.
Bases¶
core24¶
Require Multipass >=
1.14.1
when using Multipass to buildcore24
snaps.
For a complete list of commits, check out the 8.3.3 release on GitHub.
7.5.6 (2024-Aug-15)¶
Core¶
Bases¶
core22¶
Fix a regression where icons would not be configured and installed for snaps with no
apps
defined in theirsnapcraft.yaml
.
For a complete list of commits, check out the 7.5.6 release on GitHub.
8.3.2 (2024-Aug-05)¶
Core¶
Bases¶
core24¶
Fix a bug where classic snaps with a Python virtual environment would attempt to use the system’s Python intepretter (#4942).
Plugins¶
Kernel¶
Fix a bug where removing a missing symlink would cause the kernel plugin to fail.
Store¶
Fix a bug where
edit-validation-sets
would fail when editing a validation sets with snap revisions (#4909).
For a complete list of commits, check out the 8.3.2 release on GitHub.
8.3.1 (2024-Jul-08)¶
Core¶
Bases¶
core24¶
Support
all
as a target withbuild-for: [all]
(#4854).Ensure Craft Providers provider (LXD or Multipass) is available before launching a build environment.
Improve presentation of
snapcraft.yaml
model errors.
Metadata¶
Validate that
update_contact
,donation
,vcs-browser
,bugtracker
, andhomepage
fields adopted from an appstream metadata file are valid URLs or email addresses.Ensure that
contact
,donation
,source-code
,issues
, andwebsite
fields in a snapcraft.yaml take priority over appstream metadata (#4890).
Remote build¶
Require
core20
snaps to use the legacy remote builder (#4886).Allow building
core22
snaps withbuild-for: [all]
.Support reading Launchpad credentials from the previous location (#4889). If launchpad credentials do not exist in the new location (
$XDG_DATA_DIR/snapcraft/launchpad-credentials
) introduced in8.2.0
, then load credentials from the previous location ($XDG_DATA_DIR/snapcraft/provider/launchpad/credentials
) and emit a deprecation notice.
Note
This behavior applies to the new and legacy remote builders.
Documentation¶
Add an explanation for the remote builders (#4842).
Update reference, how-to, and explanation for platforms and architectures.
For a complete list of commits, check out the 8.3.1 release on GitHub.
8.3.0 (2024-Jun-27)¶
Core¶
Improve logging to show which package is being fetched.
Add support for parts to source
7z
archives.Improve error messages when sources cannot be fetched.
Bases¶
core24¶
Add support for
core24-desktop
snaps (#4818).
core22¶
Plugins¶
Flutter¶
Add
curl
as abuild-package
forflutter
parts (#4804).
ROS 2 Jazzy¶
Add support for the new ROS 2 Jazzy extension which lets you snap ROS 2 applications on
core24
(#4791).Similar to ROS 2 Humble for
core22
, content-sharing is supported (#4828).
For more information, see https://snapcraft.io/docs/ros2-jazzy-extension and https://snapcraft.io/docs/ros2-jazzy-content-extension.
NPM¶
Various improvements for the core22
and core24
NPM plugins:
Accept NVM-style version identifiers for
npm-node-version
.Verify SHA256 checksums after node.js download (canonical/craft-parts#717).
Use new-style
npm-install
commands if the npm version is newer than8.x
.Set
NODE_ENV
toproduction
by default.
List plugins¶
Extensions¶
Gnome¶
Make gnome extension stable for
core24
.Fix
GI_TYPELIB_PATH
andXDG_DATA_DIRS
paths in the build environment (#4798).Integrate with the
gpu-2404
SDK (#4744).
For more information, see the gpu 2404 interface docs.
KDE Neon 6¶
Fix paths to
QtWebEngineProcess
in the desktop launcher (#4745).
Expand extensions¶
Fix a bug where
snapcraft expand-extensions
could not parse asnapcraft.yaml
file containing theplatforms
keyword.
Components¶
Include the
provenance
keyword in a component’s metadata from asnapcraft.yaml
file (#4827).
Metadata¶
Add support for adopting more metadata fields from a project’s appstream file:
license
contact
source-code
issues
websites
donations
Metrics¶
Add support for
snapcraft metrics
to retrieve the metricsinstalled_base_by_architecture
andweekly_installed_base_by_architecture
(#4735).
Names¶
Add output formatting to
snapcraft names
with--format
. Supported formats aretable
andjson
(#4778).
Init¶
Update
snapcraft init
to create acore24
project instead of acore22
project (#4830)
Documentation¶
Update Snapcraft’s documentation to use the canonical-sphinx theme.
Add reference documentation for more plugins (#4811):
ant
autotools
cmake
dotnet
go
make
meson
nil
npm
qmake
scons
For a complete list of commits, check out the 8.3.0 release on GitHub.
8.2.12 (2024-Jun-12)¶
Core¶
Bases¶
core24¶
Fix a bug where snaps would stage Python packages already included in the
core24
base snap (#4865).
Store¶
Fix a bug where store-related error messages would be presented as an internal Snapcraft error.
Add a resolution and link to documentation for keyring errors.
Documentation¶
Fix Snapcraft’s version in the readthedocs documentation.
For a complete list of commits, check out the 8.2.12 release on GitHub.
8.2.11 (2024-Jun-12)¶
Core¶
Plugins¶
Dotnet¶
Fix a regression where the
dotnet
plugin could not be used forcore22
snaps (#4825).
For a complete list of commits, check out the 8.2.11 release on GitHub.
8.2.10 (2024-Jun-03)¶
Remote builder¶
Fix a bug where comma-separated architectures in
--build-for
could not be parsed (#4780).Fix a bug where
core22
snaps with a top levelarchitectures
keyword could not be parsed (#4780).Fix a bug where remote build log files were incorrectly named (#4781).
Retry more API calls to Launchpad (canonical/craft-application#355).
Add an exponential backoff to API retries with a maximum total delay of 62 seconds (canonical/craft-application#355).
Fix a bug where the remote builder would not fail if no artefacts were created (#4783).
For a complete list of commits, check out the 8.2.10 release on GitHub.
8.2.9 (2024-May-28)¶
Core¶
Extensions¶
KDE Neon 6¶
Fix multiple issues to allow web processes to work correctly (#4823).
Expose the
libplas
andliblapack
provided by thekf6-core22{-sdk}
snaps (#4823).
For a complete list of commits, check out the 8.2.9 release on GitHub.
8.2.8 (2024-May-17)¶
Core¶
Bases¶
core24¶
Fix a behavior where shared libraries from the host were loaded for classically confined snaps.
Note
This is implemented with patchelf --no-default-lib
when
enable-patchelf
is defined.
Plugins¶
Dotnet¶
Disable the
dotnet
plugin forcore24
snaps due to a pending rewrite.
For a complete list of commits, check out the 8.2.8 release on GitHub.
8.2.7 (2024-May-09)¶
Core¶
Add support for
ignore-running
inapps.<app-name>.refresh-mode
in asnapcraft.yaml
file (#4747).
Remote build¶
Fix a regression where remote build would fail to parse some
architectures
definitions (#4780).
For a complete list of commits, check out the 8.2.7 release on GitHub.
8.2.6 (2024-May-09)¶
Core¶
Fix a regression where a directory could not be packaged as a snap (#4769).
For a complete list of commits, check out the 8.2.6 release on GitHub.
8.2.5 (2024-May-07)¶
Store¶
Fix the same
cryptography
regression addressed in8.2.4
but for store-related operations.
For a complete list of commits, check out the 8.2.5 release on GitHub.
8.2.4 (2024-May-05)¶
Fix a regression where Snapcraft would fail to run on some architectures due to a
cryptography
dependency that attempted to load legacy algorithms (LP#2064639).
For a complete list of commits, check out the 8.2.4 release on GitHub.
8.2.3 (2024-May-01)¶
Core¶
Bases¶
core24¶
Fix a bug where project variables were evaluated before extensions were applied (#4771).
Fix a bug where
build-for
project variables were evaluated based on the host architecture (#4770).
For a complete list of commits, check out the 8.2.3 release on GitHub.
8.2.2 (2024-Apr-30)¶
Core¶
Bases¶
core24¶
Fix a bug where advanced grammar could not be combined with other data (#4764, LP#2061603).
For a complete list of commits, check out the 8.2.2 release on GitHub.
8.2.1 (2024-Apr-25)¶
Core¶
Bases¶
core24¶
Fix a bug where project variables were not evaluated inside a
snapcraft.yaml
file and were not available as environment variables in the build environment.Fix a bug where advanced grammar was not evaluated in root-level part keywords
build-packages
andbuild-snaps
.Fix a bug where local key assets in
snap/keys/
were not used when installing package repositories.
Remote build¶
Fix a bug where
core24
snaps could not use package repositories becausegpg
anddirmngr
were not installed in the remote build environment.
For a complete list of commits, check out the 8.2.1 release on GitHub.
8.2.0 (2024-Apr-17)¶
Core¶
Bases¶
core24¶
Drop requirement for
build-base: devel
forcore24
snaps.
core22¶
Extend advanced grammar for all part keywords except plugin-specific keywords.
Remote build¶
Migrate to the upstream remote builder in Craft Application.
Allow only one remote build is allowed per project.
Remove support for
build-id
withsnapcraft remote-build --recover
.Remove support for deprecated
--build-on
argument in favor of--build-for
.Move Launchpad credentials file from
$XDG_DATA_DIR/snapcraft/provider/launchpad/credentials
to$XDG_DATA_DIR/snapcraft/launchpad-credentials
.Fail if snapcraft is in a shallowly-cloned git repository instead of falling back to the legacy remote builder.
Note
Reminder: Legacy remote-build behavior can be used for bases core22 and older
with the environment variable
SNAPCRAFT_REMOTE_BUILD_STRATEGY="force-fallback"
. See more information in
the remote build documentation.
For a complete list of commits, check out the 8.2.0 release on GitHub.
8.1.0 (2024-Apr-10)¶
Core¶
Bases¶
core24¶
Finalize internal refactor to use Craft Application to build
core24
snaps.
For more information on deprecations and changes, see the core24 migration guide.
Plugins¶
Matter SDK¶
Add new Matter SDK plugin for
core22
.
For more information, see the Matter website and the Matter on Ubuntu docs.
Maven¶
Add support for the Maven plugin for
core22
snaps.
For more information, see Maven plugin.
QMake¶
Add support for the QMake plugin for
core22
snaps.
For more information, see https://snapcraft.io/docs/qmake-plugin.
Colcon¶
Set build type to
RELEASE
if it is not defined bycolcon_cmake_args: ["-DCMAKE_BUILD_TYPE=<build type>"]
).
Extensions¶
KDE Neon 6¶
Add new
kde-neon-6
extension forcore22
snaps that use Qt6 or the KDE Neon 6 framework.
Components¶
Add support for creating components.
Components are parts of a snap that can be built and uploaded in conjunction with a snap and later optionally installed beside it.
For more information, see the reference, explanation, and how-to documentation pages.
Remote build¶
Add support for user-defined Launchpad projects projects, including private projects.
This is configured via
snapcraft remote-build --project <project-name>
.
For a complete list of commits, check out the 8.1.0 release on GitHub.
8.0.5 (2024-Mar-18)¶
Core¶
Fix a bug where LXD versions with an “LTS” suffix could not be parsed.
For a complete list of commits, check out the 8.0.5 release on GitHub.
8.0.4 (2024-Mar-04)¶
Core¶
Bases¶
Fix a bug where
devel
bases may not be fully validated.Bump the LXD compatibility tag to
v7
.
core24¶
Use
buildd
daily images instead ofubuntu
images forcore24
bases andbuild-base: devel
.Fix a bug where creating
core24
base images would fail becauseapt
would install packages interactively.
For a complete list of commits, check out the 8.0.4 release on GitHub.
8.0.3 (2024-Feb-09)¶
Core¶
Add a warning that when a part uses
override-prime
it cannot useenable-patchelf
(#4547).
Bases¶
Bump the LXD compatibility tag to
v6
.Stop updating
apt
source config files whenbuild-base: devel
is defined.
core24¶
Use the
core24
alias instead of thedevel
alias when retrieving LXD images.
Plugins¶
Ant¶
Use the proxy environment variables
http_proxy
andhttps_proxy
.
Remote build¶
Fix a bug where
--build-for
and--build-on
were not mutually exclusive options.Improve error messages and provide links to documentation when remote builds fail (#4517).
Fix a regression where comma-separated architectures in
--build-on
and--build-for
were not accepted (#4516).
For a complete list of commits, check out the 8.0.3 release on GitHub.
8.0.2 (2024-Jan-23)¶
Core¶
Fix a bug where Snapcraft fails to run on platforms where
SSL_CERT_DIR
is not set (#4510, #4520).Fix a decoding bug when logging malformed output from other processes, typically during the
build
step (#4515).
For a complete list of commits, check out the 8.0.2 release on GitHub.
8.0.1 (2024-Jan-03)¶
Remote build¶
Fix a bug where Snapcraft would not fail if the Launchpad build itself failed for new and legacy remote builders (#4142).
Fix a bug where large repos could not be pushed with the new remote builder (#4478).
Fallback to the legacy remote builder if the project is shallowly cloned (#4479).
For a complete list of commits, check out the 8.0.1 release on GitHub.
8.0.0 (2023-Dec-04)¶
Core¶
Bases¶
core22¶
Add new environment variables for build-on
and build-for
architectures:
CRAFT_ARCH_TRIPLET_BUILD_FOR
, supersedesCRAFT_ARCH_TRIPLET
CRAFT_ARCH_TRIPLET_BUILD_ON
CRAFT_ARCH_BUILD_FOR
, supersedesCRAFT_TARGET_ARCH
CRAFT_ARCH_BUILD_ON
For more information, see Architectures.
core20¶
Add new environment variables for build-on
and build-for
architectures:
SNAPCRAFT_ARCH_TRIPLET_BUILD_FOR
, supersedesSNAPCRAFT_ARCH_TRIPLET
SNAPCRAFT_ARCH_TRIPLET_BUILD_ON
SNAPCRAFT_ARCH_BUILD_FOR
, supersedesSNAPCRAFT_TARGET_ARCH
SNAPCRAFT_ARCH_BUILD_ON
For more information, see Architectures.
core18¶
Deprecate building snaps using the
core18
base.
For more information on how to continue building snaps with the core18
base, see this page.
Stage packages¶
Support chiseled
stage-packages
. This is useful for reducing the size of the snap when creating base snaps or using a bare base.
For more information about chisel, see https://github.com/canonical/chisel
Plugins¶
Rust¶
Use default rust toolchain with
rustup
.Add option
rust-ignore-toolchain-file
.Add option
rust-inherit-ldflags
.Add list
rust-cargo-parameters
.
For more information about the new options, see Rust plugin.
Kernel¶
Generate kernel configs for Ubuntu 22.04 (Jammy).
Python¶
Add support for Python projects driven by a
pyproject.toml
.
For more information, see the PEP 518 spec.
ROS 2¶
Add support for content sharing for core20 & core22 bases (ROS Noetic, Foxy, Humble) and the
colcon
,catkin
, andcatkin-tools
plugins
For more information on ROS architecture, see the ROS architectures with snaps.
More information on content-sharing, see:
Command line¶
Stream messages in the default
brief
modeImprove presentation of build step prefixes
Linter¶
Suggest packages to add to
stage-packages
to satisfy a potential missing library.
Remote build¶
Introduce a new remote-builder for core24
snaps:
Does not modify the project’s
snapcraft.yaml
Does not fetch and tarball remote sources before sending the project to Launchpad
Require projects to be in the top-level of a fully-cloned (non-shallow) git repository
Allow switching between the new and legacy remote builders with the environment variable
SNAPCRAFT_REMOTE_BUILD_STRATEGY
.
For more information on the new remote-builder, how to switch between the new and legacy remote builders, see Remote build.
Store¶
Add a fallback to a file-based keyring when the system keyring cannot be initialized, is not fully configured, or is otherwise not available.
For more information on the file-based keyring, see https://snapcraft.io/docs/snapcraft-authentication.
For a complete list of commits, check out the 8.0.0 release on GitHub.