Ops documentation

Ops is a Python framework for writing and testing Juju charms.

The core ops package provides an API to respond to Juju events and manage the charm’s application. Ops also includes extra packages for testing and tracing charms.

Ops promotes consistent and maintainable charm code. Its APIs help you separate different aspects of the charm, such as managing the application’s state and integrating with other charms.

In this documentation

Start here: hands-on introductions to Ops, guiding you through writing charms

Step-by-step guides covering key operations and common tasks

Technical information about Ops APIs

Discussion and clarification of key topics

Releases

Read the release notes

Ops releases are tracked in GitHub. To get notified when there’s a new release, watch the Ops repository.

The ops package is published on PyPI.

Project and community

Ops is a member of the Ubuntu family. It’s an open source project that warmly welcomes community contributions, suggestions, fixes and constructive feedback.

For support, join Charm Development on Matrix. You’ll be able to chat with the maintainers of Ops (the Canonical Charm Tech team) and a friendly community of charm developers!

Looking for more?

The Ops repository has several demo charms that you can experiment with.

If you’re new to charm development, the Charmcraft tutorials are a great place to start. The tutorials don’t require any experience with Ops. You can learn about Ops after completing one of the tutorials.

To follow along with updates and tips about charm development, join our Discourse forum.

Learn more about the Juju ecosystem