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).

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.04

Release 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 beta

See 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.