Charmcraft release: 2.3.1

Charmcraft supports the development of operators using the Charmed Operator Framework . It enables developers to build, upload and release operators on Charmhub and collaboration through charm libraries.

New Release

Charmcraft 2.3.1 was just released to the latest/stable channel.

Changes

This is purely a bugfix release. A full list of changes can be found at https://github.com/canonical/charmcraft/releases/tag/2.3.1

Pydeps install changes

This change is worth pointing out specifically, as it could break some people’s CI. The change means that we run a single pip command to install both requirements.txt and the dependencies in PYDEPS. Previously, the pydeps dependencies would override any requirements.txt dependencies. This could cause either the build to break in non-obvious ways or cause a successful build that results in a broken charm. This change should push those failures into the charmcraft pack step, which may look like new CI failures, but would otherwise have likely resulted in a broken charm.

Please note: If this breaks your builds now, it most likely meant your build was generating inconsistent and potentially broken charms before due to dependency conflicts. If the charm worked when built with version 2.3.0, you likely only need to update your requirements.txt file.

Further dependency management changes are planned for charmcraft 3.0. Please add any information to the discussion if you have unusual cases you would like to be considered.

Using Charmcraft

We recommend the Charmed Operator Framework for charm development, but Charmcraft will help you publish charms written in any language. The Charmed Operator Framework enables the development of operators in a simple and straightforward way, using standard Python structures to allow for clean, maintainable, and reusable code.

Happy charming!

3 Likes