When you build and own a charm, you wear multiple hats – developer, QA specialist, technical author, marketing specialist. This document walks you through these roles.
Although the rough steps associated with these roles are presented sequentially, reflecting the logic “you need to develop something before test, document, and publish”, we strongly recommend you iterate – develop something, test right away, document right away, market right away, repeat.
Set things up
See more:
Develop
For a charm, consider resources, application lifecycle management, actions, configurations, relations (integrations), secrets.
See more:
For a bundle, iterate on the bundle.yaml
file to optimise.
Test and debug
For a charm, consider unit, scenario, integration, and end-to-end tests.
See more:
- How to get started with charm testing
- How to write unit test for a charm
- How to write scenario tests for a charm
- How to write integration tests for a charm
- the testing sections at the end of some of the “support [feature]” docs
- How to pack
- How to deploy
- How to debug
Document
You should always document each feature of your charm as you develop (e.g., as you define an action in charmcraft.yaml
, make sure to provide a useful description). However, at the end, also take stock of your charm overall and add any other materials that you think might be needed.
See more: How to add docs to a charm on Charmhub
Market
Add an icon
See more: How to add an icon
Register a name in Charmhub
See more: How to publish> Register
Create a channel track
See more:
Publish on Charmhub
See more:
Promote to a more stable channel risk level
To promote a charm to a more stable channel risk level of the same track, release it again specifying the revision number and the channel, including track and, especially, the target risk level. For example:
charmcraft release --revision 118 --channel=5/candidate
To promote a bundle to a more stable risk level of the same track, run charmcraft promote-bundle
.
Request review and public listing
See more: Requirements for public listing
Advertise
Write a Discourse post to announce your release.
Schedule a community workshop to demo your charm’s capabilities.
Chat about it with your charmer friends.
Contributors: @lengau, @jdkandersson, @mmkay, @tmihoc, @weii-wang