Hello everyone! The Charm Tech team has been hard at work this last pulse, shipping new releases of Ops, refining charm libraries, and expanding Pebble’s capabilities and documentation. Read on for the highlights—let us know if you have any questions or feedback along the way!
Ops
- ops==2.18.0 and ops-scenario==7.1.1 released.
- Improved deferred events handling: When deferring an event, if an identical (type + snapshot) event is already queued, Ops will skip adding the new one. This significantly improves performance in “event storms” of identical deferred events.
- CI improvements: Smoke tests now use Concierge, run against Juju 2.9 and 3.6, have re-enabled testing against prometheus-k8s, restored TIOBE reporting, and adjusted compatibility checks for charms using newer Poetry.
- Deprecated warning removed: The deprecation warning for using
ops.main.main
(instead ofops.main
) has been removed, since it was emitted too early in the process to be helpful. Python warnings are now handled so they won’t appear in action output. - Benchmarking tests: Added an initial set of benchmarking tests (manual-only for now) focused on unit testing. Over time, these will expand and introduce gating to catch performance regressions.
- Distributed tracing hooks: Continued work on Ops hooks for distributed tracing—concept finalised, API drafted, and implementation in progress. We can now run a simple charm with instrumentation and see results. A draft PR is open and we aim to release by end of February.
Charming
- operator-libs-linux updates: Released new snap and apt libraries with improved typing. Please raise an issue if these types cause any trouble for your charms.
- File operations library: Charmer review of the file operations library spec has finished; implementation is underway. Many thanks to all who contributed feedback.
- Guidelines for distributing libraries: Began work on an informational spec to guide distributing charm libraries as Python packages—get in touch if this interests you.
- Tech AMA with SQL Data Team: We hosted a Charm Tech AMA session, thank you, Data team for deep questions and involved discussion!
- Jubilant progress: Continued development of Jubilant (charm integration testing). We opened issues for all remaining work, finalised
deploy()
, and began fleshing out status dataclasses. - Charm-Tech/Charmcraft Office Hours: We co-hosted our latest office hours; please join the next one if you have questions or topics to discuss.
Pebble
- Metrics feature: Began work on Pebble metrics. A new “basic” identity type is being added (#563), alongside rework of the existing metrics proof-of-concept.
- Run health check: Finished first-round review of the run health check feature. After some discussion, we’ll pivot to a
pebble check --refresh
design; expect more details in future pulse updates. - Startup checks & commands: Continued implementing a
startup
field for checks, plus thestart-checks
andstop-checks
commands (#560).
Documentation
- New Pebble how-to guides are finished and live now: How to use the Pebble API to manage services, How to forward logs to Loki, How to use Pebble to manage a remote system, How to use layers, and How to run services reliably.
- Added a how-to for storing state in charms.