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.
This new release includes the following changes:
-
The upload-resource command was improved for OCI Images
- they are now uploaded from the local Docker Repository
- related specification
-
The charm is now built in a LXD container, allowing the process to be done in a different base than the host
- the Charmcraft config now has a
bases
entry to express where the charm can be built and where it can run (short and long forms supported) - this configuration is optional for now but will be mandatory in the future (see deprecation notices DN02 and DN03)
- use of bases enables building in LXD
- the Charm resulting file name reflects where it was built
- Charmcraft now uses the
craft_providers
library, allowing in the future to build using Multipass instances - added a
clean
command to remove any structures that were used for the building - related specification)
- the Charmcraft config now has a
-
The
status
command output now includes a column for the charm bases- it shows the base name, channel and architecture
- related specification
-
The keywords in Charmcraft configuration are now separated using dashes (see deprecation notice DN01)
-
Some UX improvements
- filepaths are shown in a consistent style
- some help messages adjusted
- better error messages when the
charmcraft.yaml
config has issues
-
The Charmcraft snap is now
classic
confined- the snap is the recommended way to install and use the tool
-
Other internal Charmcraft improvements
- Python 3.6 and greater is now supported
- started to use black for consistent and automated formatting
- refactored how the project’s dependencies are handled
- migrated to use pydantic in the configuration manager
Use Charmcraft to:
- Initialise a new charm and directory structure
- Build 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!