Caution
This project is deprecated. Use charmcraft >=3.3.0 instead
Pack multi-base charms (that include base Ubuntu 24.04) with a single charmcraft.yaml and git branch using the upcoming ST124 - Multi-base platforms in craft tools "shorthand notation" charmcraft.yaml syntax
Install pipx
: https://pipx.pypa.io/stable/installation/
pipx install charmcraftst124
Only ST124 "shorthand notation" syntax is supported
platforms:
ubuntu@22.04:amd64:
ubuntu@22.04:arm64:
ubuntu@24.04:amd64:
ubuntu@24.04:arm64:
Under the platforms
key, build-on
and build-for
syntax are not supported
The base
and bases
keys are not supported
charmcraftst124 pack --platform ubuntu@22.04:amd64
See charmcraftst124 pack --help
for more information
To pack multiple platforms, run charmcraftst124 pack
once for each platform
"Shorthand notation" is used when build-on
is identical to build-for
. (For example, "ubuntu@22.04:amd64" means build on Ubuntu 22.04 amd64 and build for Ubuntu 22.04 amd64.)
For charms that depend (directly or indirectly) on Python packages with C extensions (e.g. pyyaml), charmcraft will build wheels where the C extensions only work on build-on
.
For example, if a charm is built with
platforms:
foo:
build-on: ubuntu@22.04:amd64
build-for:
- ubuntu@22.04:amd64
- ubuntu@22.04:arm64
the wheels in the *.charm file will contain C extensions that only work on amd64, not arm64.
The vast majority of charms have at least one Python dependency with C extensions, so the vast majority of charms should use "shorthand notation".