Manage charm revisions¶
Create a charm revision¶
A charm revision is created implicitly every time you upload a charm to Charmhub (unless you’re uploading the exact same file again).
See more: Publish a charm on Charmhub
View the existing charm revisions¶
To inspect the existing charm revisions, run charmcraft revisions
followed by the name of the charm.
See more: revisions
Promote a charm revision to a better risk level¶
To promote a charm revision to a more stable risk level, run
charmcraft promote with flags specifying the current
and desired channels. For example, to promote a charm from the candidate channel to
the stable channel, you would run:
charmcraft promote --from-channel=candidate --to-channel=stable
If you are looking to promote charm revisions in your CI workflow, the same result can be achieved with the Charmhub Promotion GitHub action. Note that this GitHub action resides in a separate repository and is therefore maintained separately from Charmcraft.
Example outcome
For example, in the following output of juju info mongodb, revision 100
has been promoted from 3.6/edge through 3.6/beta and 3.6/candidate all
the way to 3.6/stable. (The up arrow next to 3.6/beta indicates that that
channel has been closed and, if you try juju deploy --channel 3.6/beta, what
you’ll get is the next higher-ranking risk level of the same track, that is,
3.6/candidate.)
channels: | 5/stable:       117  2023-04-20  (117)  12MB  amd64  ubuntu@22.04 5/candidate:    117  2023-04-20  (117)  12MB  amd64  ubuntu@22.04 5/beta:         ↑ 5/edge:         118  2023-05-03  (118)  13MB   amd64  ubuntu@22.04 3.6/stable:     100  2023-04-28  (100)  860kB  amd64  ubuntu@20.04, ubuntu@18.04 3.6/candidate:  100  2023-04-13  (100)  860kB  amd64  ubuntu@20.04, ubuntu@18.04 3.6/beta:       ↑ 3.6/edge:       100  2023-02-03  (100)  860kB  amd64  ubuntu@20.04, ubuntu@18.04Release a charm revision into a channel¶
To release a specific charm revision to a channel, run charmcraft release followed
by the name of the charm and flags specifying the revision and its target channel. E.g.,
charmcraft release my-awesome-charm --revision=1 --channel=beta
Revision 1 of charm 'my-awesome-charm' released to betaSee more: release
This opens the channel you’re releasing to.
See more: Manage channels
Following the release, Charmhub will display the charm’s information at
charmhub.io/<charm-name>. (The default information displayed is obtained from the
most stable channel.) Your charm will also become available for download.
See more: Juju | Manage charms
