Changelog

2.2.1 (2024-12-19)

Bug fixes:

  • Fix how extras and groups are parsed for the uv plugin.

2.2.0 (2024-12-16)

New features:

  • Add a uv plugin for projects that use the uv build system.

  • Add a Go Use plugin for setting up a workspace for Go modules.

  • Add new poetry-export-extra-args and poetry-pip-extra-args keys to the poetry plugin.

  • Add an API for registering custom source types.

  • Prefer craft.git as the binary to handle git sources, in environments where it’s available.

  • Set JAVA_HOME environment variable in Java-based plugins. The plugin will try to detect the latest available JDK.

  • Add a part_has_slices function to determine if a part has slices in its stage-packages key.

  • Add a part_has_chisel_as_build_snap function to determine if a part lists chisel as a build-snap.

  • Add chisel as a build-snap if any part has slices and chisel isn’t already listed as a build-snap.

  • Split stdout and stderr from subprocess calls for better presentation of build errors.

Bug fixes:

  • Remove redundant Captured standard error: text from plugin build errors.

  • Fix dependency validation for the rust plugin when a rust-deps part exists.

Documentation:

For a complete list of commits, check out the 2.2.0 release on GitHub.

2.1.4 (2024-12-04)

Bug fixes:

  • Fix a regression where trying to use the poetry plugin without poetry installed on the system would give an error.

For a complete list of commits, check out the 2.1.4 release on GitHub.

2.1.3 (2024-11-20)

Bug fixes:

  • Fix an issue where the poetry plugin would still try to install poetry from the package repositories when poetry-deps was declared as a dependency

Documentation:

For a complete list of commits, check out the 2.1.3 release on GitHub.

2.1.2 (2024-10-04)

  • Replace the dependency on requests-unixsocket with requests-unixsocket2

Bug Fixes:

  • Fixed an issue where the python plugin would fail to build if the part had no Python scripts.

Documentation:

  • Update the Rust plugin doc with recent changes to the Rust toolchain.

For a complete list of commits, check out the 2.1.2 release on GitHub.

2.1.1 (2024-09-13)

  • This release brings the bug fix from 1.33.1 into the 2.1.x series.

For a complete list of commits, check out the 2.1.1 release on GitHub.

1.33.1 (2024-09-13)

  • Fix NPM plugin to be stateless, allowing lifecycle steps to be executed in separate runs.

For a complete list of commits, check out the 1.33.1 release on GitHub.

2.1.0 (2024-09-09)

New features:

  • Add a Poetry plugin for Python projects that use the Poetry build system.

  • Add a new error message when getting a directory for a non-existent partition.

Bug fixes:

  • Fix a regression where numeric part properties could not be parsed.

  • Fix a bug where stage-packages tracking would fail when files were organized into a non-default partition.

For a complete list of commits, check out the 2.1.0 release on GitHub.

2.0.0 (2024-08-08)

Breaking changes:

  • Set minimum Python version to 3.10

  • Plugin models are restructured

  • Migrate to Pydantic 2

  • API uses Debian architecture names rather than Python platform names

New features:

  • Plugin models can use Pydantic JSON schema export

  • Partition names can include hyphens

Bug fixes:

  • Xattrs raise FileNotFoundError when appropriate

  • Partition names are more strictly checked.

For a complete list of commits, check out the 2.0.0 release on GitHub.

1.34.0 (2024-08-01)

  • Allow numbers in partitions, partition namespaces, and namespaced partitions.

  • Add documentation for chisel and the overlay step

  • Improve README onboarding

1.33.0 (2024-07-02)

  • Add doc slugs for errors during build, linking to plugin docs

  • Add docs for partitions

1.32.0 (2024-06-24)

  • Add support for 7z sources

  • Add reference documentation for the qmake plugin

  • Improve logging output when fetching packages

  • Improve errors for when sources cannot be fetched

  • Fix a behavior where apt packages would be fetched when the user was not a superuser

  • Fix list of ignored packages in core24 bases when fetching stage-packages

1.31.0 (2024-05-16)

  • Refactor npm plugin - npm-node-version option now accepts a NVM-style version identifier - Move Node.js download to pull commands - Verify SHA256 checksums after node.js download - Use new-style npm-install commands if npm version is newer than 8.x - Set NODE_ENV to production by default

  • New and improved documentation - Add go plugin reference - Add nil plugin reference - Add make plugin reference - Add autotools plugin reference - Add cmake plugin reference - Add scons plugin reference - Add ant plugin reference - Add dotnet plugin reference - Add meson plugin reference - Documentation fixes

1.30.1 (2024-06-21)

  • Fix list of ignored packages in core24 bases when fetching stage-packages

1.30.0 (2024-05-16)

  • Add support for armv8l

  • Add support for unregistering plugins

1.29.0 (2024-03-20)

  • Add maven plugin documentation

  • Add documentation linters

  • Rework bundling of shared docs

1.28.1 (2024-03-19)

  • Fix organize directories

1.28.0 (2024-03-13)

  • Add namespaced partitions support

1.27.0 (2024-03-07)

  • Add base layer data to ProjectInfo

  • Add qmake plugin

  • Add proxy support to ant plugin

  • Use rustup snap in the Rust plugin

  • Update documentation

1.26.2 (2024-02-07)

  • Fix default setting in aliased part fields

  • Fix proxy setting in ant plugin

1.26.1 (2023-12-13)

  • Fix chisel slice normalization

  • Address sphinx warnings

1.26.0 (2023-11-21)

  • Documentation updates

  • Build system, requirements and CI updates

  • Misc unit test fixes and updates

1.25.2 (2023-10-24)

  • Fix compiler plugin priming in Rust plugin

  • Fix redundant channel override in Rust plugin

  • Fix validation of part dependency names

  • Fix expansion of environment variables

1.25.1 (2023-09-12)

  • Remove direct dependency to python-apt tarball

1.25.0 (2023-09-08)

  • Add rustup support to the Rust plugin

  • Add the ability to specify no-default-features for the Rust plugin

  • Add the ability to install virtual workspace crates for the Rust plugin

  • Add the option to enable LTO for the Rust plugin

1.24.1 (2023-08-25)

1.24.0 (2023-08-24)

  • Add support to partitions

  • Add lifecycle prologue log messages

  • Add build-on/for architecture environment variables

  • Add bootstrap parameters to autotools plugin

  • Documentation updates

1.23.1 (2023-08-15)

  • Only load project variables in adopting part

1.23.0 (2023-07-06)

  • Improve interpreter version detection in the Python plugin

  • Fix and improve documentation

  • Pin Pydantic to version 1.x

1.22.0 (2023-06-25)

  • Add helper to query overlay use

  • Improve architecture mapping

  • Forward unmatched snap source parameters

  • Build system updates

  • Documentation updates

1.21.1 (2023-06-09)

  • Revert subdir changes in pull and build steps

1.21.0 (2023-05-20)

  • Add callback to explicitly list base packages

  • Add callback to configure overlay package layer

1.20.0 (2023-05-15)

  • Add initial support for dnf-based distros

  • Add support for pyproject.toml projects in Python plugin

  • Improve interpreter detection in Python plugin

  • Fix subdir in pull and build steps

  • Tox and packaging updates

  • Documentation updates

1.19.8 (2024-09-24)

  • Replace requests-unixsocket with requests-unixsocket2

  • Bump minimum Python version to 3.8 (required for requests-unixsocket2)

1.19.7 (2023-08-09)

  • Only load project variables in adopting part

1.19.6 (2023-06-09)

  • Revert subdir changes in pull and build steps

1.19.5 (2023-05-23)

  • Revert pyproject.toml change (breaks semantic versioning)

1.19.4 (2023-05-19)

  • Backport support for pyproject.toml projects from 1.20.0

  • Backport pull and build steps subdir from 1.20.0

1.19.3 (2023-04-30)

  • Fix plugin properties state in planning phase

1.19.2 (2023-04-24)

  • Fix ignored files exclusion in local source

1.19.1 (2023-04-18)

  • Allow git+ssh in git source type

  • Loosen pydantic dependency

1.19.0 (2023-03-20)

  • Initial support for offline plugins

  • Initial support for yum and CentOS

  • Introduce feature selection, make overlay support optional

  • Check if plugin-specific properties are dirty when computing lifecycle actions

  • Add source handler for rpm packages

  • Ignore unreadable files in /etc/apt

  • Documentation updates

  • OsRelease code cleanup

1.18.4 (2023-03-09)

  • Make chroot /dev mount private

1.18.3 (2023-02-27)

  • Fix pip path in Python plugin

1.18.2 (2023-02-24)

  • Refactor Python plugin for subclassing

1.18.1 (2023-02-10)

  • Fix ignore patterns in local sources

1.18.0 (2023-01-19)

  • Add SCons plugin

  • Add Ant plugin

  • Add Maven plugin

  • Fix lifecycle work directory cleaning

  • Make stage package tracking optional

  • Improve chisel error handling

  • Improve missing local source error message

  • Documentation fixes and updates

1.17.1 (2022-11-23)

  • Allow plus symbol in git url scheme

1.17.0 (2022-11-14)

  • Fix go plugin mod download in jammy

  • Remove hardcoded ubuntu version in chisel call

  • Add plain file source handler

  • Pass build attributes and state to post-step callback

1.16.0 (2022-10-20)

  • Add file permission setting

  • Take permissions into account when checking file collisions

  • Only refresh overlay packages if necessary

  • Generate separate environment setup file

  • Make changed file list available to plugins

1.15.1 (2022-10-14)

  • Fix device nodes in overlay base image

1.15.0 (2022-10-11)

  • Add support to chisel slices

  • Add go-generate property to the go plugin

1.14.2 (2022-09-22)

  • Fix pypi release package

1.14.1 (2022-09-21)

  • Fix stage/prime filter combination

1.14.0 (2022-09-09)

  • Add API call to validate parts

1.13.0 (2022-09-05)

  • Add go generate support to go plugin

  • Add support for deb sources

  • Add source download request timeout

  • Remove unnecessary overlay whiteout files

1.12.1 (2022-08-19)

  • Revert changes to install prefix in cmake plugin to prevent stable base incompatibilities

1.12.0 (2022-08-12)

  • Set install prefix in the cmake plugin

  • Fix prefix path in the cmake plugin

1.11.0 (2022-08-12)

  • Add API call to list registered plugins

1.10.2 (2022-08-03)

  • Fix git source format error when cloning using depth

  • Use host architecture when installing stage packages

1.10.1 (2022-07-29)

  • Change staged snap pkgconfig prefix normalization to be predictable regardless of the path used for destructive mode packing

1.10.0 (2022-07-28)

  • Add plugin class method to check for out of source builds

  • Normalize file copy functions signatures

  • Fix pkgconfig prefix in staged snaps

1.9.0 (2022-07-14)

  • Prevent wildcard symbol conflict in stage and prime filters

  • Apt installer changed to collect installed package versions after the installation

1.8.1 (2022-07-05)

  • Fix execution of empty scriptlets

  • List primed stage packages only if deb stage packages are defined

1.8.0 (2022-06-30)

  • Add list of primed stage packages to prime state

  • Add lifecycle manager methods to obtain pull state assets and the list of primed stage packages

1.7.2 (2022-06-14)

  • Fix git repository updates

  • Fix stage packages removal on build update

1.7.1 (2022-05-21)

  • Fix stdout leak during snap package installation

  • Fix plugin validation dependencies

1.7.0 (2022-05-20)

  • Add support for application-defined environment variables

  • Add package filter for core22

  • Refresh packages list before installing packages

  • Expand global variables in parts definition

  • Adjust prologue/epilogue callback parameters

  • Make plugin options available in plugin environment validator

  • Fix readthedocs documentation generation

1.6.1 (2022-05-02)

  • Fix stage package symlink normalization

1.6.0 (2022-04-29)

  • Add zip source handler

  • Clean up source provisioning

  • Fix project variable setting for skipped parts

1.5.1 (2022-04-25)

  • Fix extra build snaps installation

1.5.0 (2022-04-25)

  • Add rust plugin

  • Add npm plugin

  • Add project name argument to LifecycleManager and set CRAFT_PROJECT_NAME

  • Export symbols needed by application-defined plugins

  • Refactor plugin environment validation

1.4.2 (2022-04-01)

  • Fix craftctl error handling

  • Fix long recursions in dirty step verification

1.4.1 (2022-03-30)

  • Fix project variable adoption scope

1.4.0 (2022-03-24)

  • Add cmake plugin

  • Mount overlays using fuse-overlayfs

  • Send execution output to user-specified streams

  • Update craftctl commands

  • Update step execution environment variables

1.3.0 (2022-03-05)

  • Add meson plugin

  • Adjustments in git source tests

1.2.0 (2022-03-01)

  • Make git submodules fetching configurable

  • Fix source type specification

  • Fix testing in Python 3.10

  • Address issues found by linters

1.1.2 (2022-02-07)

  • Do not refresh already installed snaps

  • Fix URL in setup.py

  • Fix pydantic validation error handling

  • Unpin pydantic and pydantic-yaml dependency versions

  • Unpin pylint dependency version

  • Remove unused requirements files

1.1.1 (2022-01-05)

  • Pin pydantic and pydantic-yaml dependency versions

1.1.0 (2021-12-08)

  • Add support to overlay step

  • Use bash as step scriptlet interpreter

  • Add plugin environment validation

  • Add go plugin

  • Add dotnet plugin

1.0.4 (2021-11-10)

  • Declare additional public API names

  • Add git source handler

1.0.3 (2021-10-19)

  • Properly declare public API names

  • Allow non-snap applications running on non-apt systems to invoke parts processing on build providers

  • Use Bash as script interpreter instead of /bin/sh to stay compatible with Snapcraft V2 plugins

1.0.2 (2021-09-16)

  • Fix local source updates causing removal of build artifacts and new files created in override-pull

1.0.1 (2021-09-13)

  • Fix plugin properties test

  • Use local copy of mutable source handler ignore patterns

  • Use host state for apt cache and remove stage package refresh

  • Add information to parts error in CLI tool

  • Change CLI tool --debug option to --trace to be consistent with craft tools

1.0.0 (2021-08-05)

  • Initial release