Charmcraft Release 1.1.0

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

  • 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 status command output now includes a column for the charm bases

  • 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:

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!

1 Like