Hi folks, we (Charm Tech) have just published a new tutorial on writing a machine charm using Ops and the latest charm development tools:
https://documentation.ubuntu.com/ops/latest/tutorial/write-your-first-machine-charm/
I’d highly recommend working through the tutorial if you have time, as it covers:
- Concierge for setting up a dev environment
- The latest uv-based profiles in Charmcraft 4
- How to use libraries from
charmlibson PyPI - Pydantic for config validation
- Unit testing, including state-transition tests for event handlers
- Integration testing with Jubilant
We’ve rewritten the tutorial from end to end and would love your feedback!