Changelog

3.3.0 (2025-01-13)

Core

Plugins

Reactive

Extensions

  • New fastapi-framework extension

  • The Django extension is no longer considered experimental.

  • The charm command is now run in verbose mode by default.

Command line

  • The pack command now updates the charm libaries in the project directory if they don’t meet the requirements in the charm-libs key of charmcraft.yaml.

  • New create-track command.

Linter

  • New linter to check that the entrypoint contains a call to ops.main()

Documentation

How-to guides for migrating to the new plugins:

For a complete list of commits, see the 3.3.0 release on GitHub.

3.2.2 (2024-10-16)

  • The whoami command now works with charm-scoped credentials.

For a complete list of commits, see the 3.2.2 release on GitHub.

3.2.1 (2024-09-16)

This is a bugfix release for 3.2, bringing in two fixes:

Core

The shared cache directory now gets locked. Builds that run while another copy of Charmcraft has the cache directory locked will run without a shared cache.

Plugins

charm

The charm plugin will now force-install pip if the installed venv version is older than the minimum version, guaranteeing that pip gets updated correctly.

For a complete list of commits, see the 3.2.1 release on GitHub.

2.7.4 (2024-10-07)

This release bumps some dependencies to fix a security issue with requests.

For a complete list of commits, see the 2.7.4 release on GitHub.

2.7.3 (2024-09-16)

Core

The shared cache directory now gets locked. Builds that run while another copy of Charmcraft has the cache directory locked will run without a shared cache.

The charm plugin now force-reinstalls pip when necessary, guaranteeing a correct version of pip.

For a complete list of commits, see the 2.7.3 release on GitHub.

2.7.2 (2024-09-09)

We’ve backported some 3.x bugfixes to the 2.7 series.

Store

Skopeo now uses an insecure policy when copying OCI images, allowing it to run even when the user hasn’t set up OCI image policies.

Meta

Build fixes to the published version

For a complete list of commits, see the 2.7.2 release on GitHub.

3.2.0 (2024-08-28)

We have some fixes to the 3.1 series, as well as the features below. The most notable under-the-hood work is that Charmcraft now uses pydantic 2.

Core

You can now set charm-user in charmcraft.yaml to set what user Juju 3.6.0+ will use for running a kubernetes charm.

Plugins

reactive

Fix: actions.yaml is no longer overwritten.

Extensions

go-framework

New go-framework extension for easily charming go applications.

Documentation

The changelog is now included in the Charmcraft documentation. For completeness, we’ve back-filled the log with all the important changes from previous releases documented on GitHub.

For a complete list of commits, see the 3.2.0 release on GitHub.

3.1.2 (2024-08-07)

  • fix(app): clarify wording on ‘prime’ change

  • fix(strict-deps): fail if venv is inconsistent

  • fix(application): exclude files from charm

  • fix(package): Limit the bases in manifest.yaml

3.1.1 (2024-07-24)

  • fix(ci): fix tox ensure_version_matches

  • fix(metadata): allow long summaries in output

  • tests(spread): temporarily disable failing test

3.1.0 (2024-07-23)

New Features

  • Charmcraft has a new fetch-libs command, which, when combined with a charm-libs key in charmcraft.yaml, allows the automatic fetching and updating of multiple charm libraries.

  • The new, experimental test command is also included in Charmcraft 3.1. Please have a go with it. Documentation is fairly minimal right now, as the implementation is still in flux.

  • The upload-resource command now uses skopeo to upload images. Most notably, this means you can enter any skopeo-supported containers-transports URL to upload an OCI container to Charmhub.

  • New features to experimental extensions: django-framework and flask-framework. These are designed to work with rocks, for example, rocks with the flask-framework extension.

  • New releases are automatically published to PyPI (thanks @bittner)!

Bug fixes

  • flask-framework charms now automatically include the rustup snap

  • Symlinked directories are correctly included in charms (previously only symlinked files worked).

  • Fixed a crash when using the framework linter with the reactive plugin

  • … and several more!

For a complete list of commits, see the 3.1.0 release on GitHub.

3.0.0 (2024-03-14)

Breaking Changes

  • The prime keyword no longer adds extra files to a charm. If you need this functionality, please refer to this documentation page: Include extra files in a charm

  • All new bases, starting with ubuntu@24.04, must use the base and platforms keywords.

  • The --bases-index parameter is deprecated. Please start using the new --platform parameter instead

For more information, see the 3.0 release announcement.

For a complete list of commits, see the 3.0.0 release on GitHub.

2.7.1 (2024-07-18)

  • Bump minimum pip version to 24

  • set --no-binary=:all: in strict mode if no binary deps are declared

For a complete list of commits, see the 2.7.1 release on GitHub.

2.7.0 (2024-06-18)

  • enable riscv64 support

  • upload rocks using skopeo

For a complete list of commits, see the 2.7.0 release on GitHub.

2.6.0 (2024-04-12)

  • support type:secret in config.options

  • works with LXD 5.21

For a complete list of commits, see the 2.6.0 release on GitHub.

2.5.5 (2024-02-27)

  • fix(templates): put example config sections on all templates

  • fix(linters): ensure CheckResult text isn’t None

  • fix(builder): don’t rely on part names

For a complete list of commits, see the 2.5.5 release on GitHub.

2.5.4 (2024-02-27)

  • Bumped minimum pip version to 23

For a complete list of commits, see the 2.5.4 release on GitHub.

2.5.3 (2023-12-07)

  • Clearing the shared cache can cause errors

  • Internal error when running from outside of a charm repository

  • Typo in overview for the expand-extensions command

For a complete list of commits, see the 2.5.3 release on GitHub.

2.5.2 (2023-12-01)

  • fix: ignore empty requirements lines

For a complete list of commits, see the 2.5.2 release on GitHub.

2.5.1 (2023-12-01)

  • fix: make snap build on all architectures.

For a complete list of commits, see the 2.5.1 release on GitHub.

2.5.0 (2023-10-24)

  • charmcraft init now uses the new unified charmcraft.yaml

  • Opt-in strict dependency management

  • Shared wheel cache between build environments on the same host

  • Add support for Ubuntu mantic based charms (not for production use :-) )

For a complete list of commits, see the 2.5.0 release on GitHub.

Earlier than 2.5.0

For the changes from releases before 2.5.0, please consult the GitHub Releases page.