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 3.1.0 was just released to latest/candidate
and 3.x/candidate
channels . The team would appreciate any tests on this, if you find a regression or any new issue you can report it on Sign in to GitHub · GitHub.
New Features
To begin with, we have some new documentation. The primary documentation for using Charmcraft is still in the Charm SDK Documentation, but thinks like command references are in this charmcraft-specific documentation.
- Charmcraft has a new
fetch-libs
command, which, when combined with acharmlibks
key incharmcraft.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. - OCI image resource uploads now use 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
andflask-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)!
Bugfixes:
- 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 thereactive
plugin - … and several more!
Release Timeframe
The current plan is to release Charmcraft 3.1 to stable next Tuesday, 2024-07-30T00:00:00Z
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!