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
- Initialise a new charm and directory structure
- Pack your Charmed Operator into a charm for distribution
- Register your charm name on Charmhub
- Upload your charms to Charmhub
- Release your charms into channels
- Publish and fetch charm libraries
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!