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.5.0 is currently building for release to the latest/candidate
channel . The team would appreciate anyone who would like to test this. If you find a regression or any new issue, please report it at https://github.com/canonical/charmcraft/issues/new.
Changes
The major new features for this are:
charmcraft init
now uses the new unifiedcharmcraft.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 )
Please view more about these changes in this earlier post.
Bug fixes
Known Issues:
charmcraft clean
doesn’t always remove the lxd instance-
charmcraft pack --my-suitcase
still does not work as expected.
If you find any issues, please raise them on our bug tracker
Under the hood
We have several major changes that shouldn’t affect the user experience right now, but prepare for much bigger changes coming soon! These include:
- Early rockcraft-style extensions support
- The Charmcraft snap is now based on core22
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!