Charmcraft deprecation notices
This document contains a list of
charmcraft deprecation notices and recommendations.
- DN01: Configuration keywords are now separated using dashes
- DN02: A charmcraft.yaml configuration file is now required
- DN03: Bases configuration is now required
- DN04: Use
charm-entrypointin charmcraft.yaml parts to define the entry point
- DN05: Use
charm-requirementsin charmcraft.yaml parts to define requirements
- DN06: The
buildcommand is deprecated, use
Introduced in charmcraft v1.1, enforced in v1.5.0.
charmcraft.yaml file used to configure Charmcraft now uses dashes to separate multi-token words. Previously, underscores were used.
This means that if you have a configuration like this:
charmhub: api_url: https://someserver.com
…you would need to migrate it to:
charmhub: api-url: https://someserver.com
Introduced in charmcraft v1.1, enforced in v1.5.0
charmcraft.yaml file will soon be required. The following configuration is assumed:
... type: charm bases: - build-on: - name: "ubuntu" channel: "20.04" run-on: - name: "ubuntu" channel: "20.04"
For more information, check out https://juju.is/docs/sdk/charmcraft-config.
Introduced in charmcraft v1.1, will be enforced in v1.6.
charmcraft.yaml file will soon require
bases configuration. The following
bases configuration is assumed:
... bases: - build-on: - name: "ubuntu" channel: "20.04" run-on: - name: "ubuntu" channel: "20.04"
For more information, check out Juju | How to configure Charmcraft.
Introduced in charmcraft v1.2, will be enforced in v1.6.
Non-default charm entry points should now be defined in the
charm part in
charm-entrypoint to list the path to the entry point executable, relative to the charm source directory. If not specified, the entry point is assumed to be
... parts: charm: charm-entrypoint: "src/my_entrypoint.py" ...
Introduced in charmcraft v1.2, will be enforced in v1.4.
Non-default requirement files should now be defined in the
charm part in
charm-requirements to list the requirement files containing python packages to install. If not specified,
requirements.txt will be used if the file exists in the charm source directory.
... parts: charm: charm-requirements: ["reqs1.txt", "reqs2.txt"] ...
Introduced in charmcraft v1.5.0, will be enforced in v1.7.
The build command is deprecated (as this verb will have other meaning in the future). Use pack instead:
$ charmcraft pack Charms packed: my-super-charm_ubuntu-20.04-amd64.charm $ charmcraft help pack Usage: charmcraft pack [options] Summary: Build and pack a charm operator package or a bundle. You can `juju deploy` the resulting `.charm` or bundle's `.zip` file directly, or upload it to Charmhub with `charmcraft upload`. For the charm you must be inside a charm directory with a valid `metadata.yaml`, `requirements.txt` including the `ops` package for the Python operator framework, and an operator entrypoint, usually `src/charm.py`. See `charmcraft init` to create a template charm directory structure. For the bundle you must already have a `bundle.yaml` (can be generated by Juju) and a README.md file. Options: -h, --help: Show this help message and exit -v, --verbose: Show debug information and be more verbose -q, --quiet: Only show warnings and errors, not progress -t, --trace: Show all information needed to trace internal behaviour -p, --project-dir: Specify the project's directory (defaults to current) --debug: Launch shell in build environment upon failure --destructive-mode: Pack charm using current host which may result in breaking changes to system configuration -e, --entrypoint: The executable which is the operator entry point; defaults to 'src/charm.py' -r, --requirement: File(s) listing needed PyPI dependencies (can be used multiple times); defaults to 'requirements.txt' --shell: Launch shell in build environment in lieu of packing --shell-after: Launch shell in build environment after packing --bases-index: Index of 'bases' configuration to build (can be used multiple times); defaults to all --force: Force packing even after finding lint errors See also: analyze build clean init version For a summary of all commands, run 'charmcraft help --all'.
Last updated 6 days ago.