This is the last pulse report before most of the team goes on well-deserved end-of-year holidays. We’ve released a solid batch of releases: Ops 3.5.0, Jubilant 1.6.2, Concierge v1.2.0, Pebble v1.27.0, as well as Pebble v1.27.0-fips, the first FIPS-compliant Pebble build, available as snap on the fips/stable channel.
On the Ops side, you can now control how unhandled exceptions are reported using an environment variable. Concierge bootstrap became more flexible, and additionally Concierge is now faster. The canonical/charmlibs repository continued to push the ecosystem towards more structured ownership and testability. Pebble picked up a syslog log forwarding protocol.
![]()
Wishing you all lovely holidays on behalf of Charm Tech! ![]()
![]()
Ops
- Released Ops 3.5.0, featuring a new environment variable to control whether UncaughtCharmError is used to wrap charm errors in state-transition tests (#2142).
- Deprecated ops.testing.Context.charm_spec (#2219).
- Updated our integration test charms to use the uv plugin (#2218).
- Various clean-up of the Scenario tests, including adding type annotations (#2248, #2235, #2234, #2230, #2247, #2240, #2228).
Charming
- Released Concierge v1.2.0, with the ability to provide arbitrary extra arguments when bootstrapping Juju (extra_bootstrap_args), and made Concierge automatically set the model architecture constraint for initial models.
- Updated Concierge to automatically stop any existing containerd service to avoid the need for workarounds when using GitHub (#131).
- Updated Concierge to use the Snap REST API rather than the snapd Go library, which reduces the number of dependencies significantly, decreases the size of the snap, and avoids spurious security warnings (#123).
- Added the ability to Concierge to add arbitrary extra arguments when bootstrapping Juju (#129).
- Updated Concierge to automatically set the model architecture constraint for the models it creates (#132).
- Released Jubilant v1.6.2, with a fix for Juju.version() handling.
- Wrapped up work to test Jubilant against Juju 4.0 (there are several Juju bugs outstanding that prevent full compatibility) (#232).
- Working on recommendations to design interface versioning, now that the last spec is a no-go following discussions in Gothenburg.
- Charm Tech has started the AMA sessions after the hiatus, and we’re looking forward to talking to many more charming teams next year.
Charmlibs
- Updated the Observability team’s interfaces with new metadata to be surfaced on Charmhub, and assigned code owners for their interfaces (#274). We’ll be doing the same for the remaining interfaces in the new year, but please feel free to open your own PRs in the meantime.
- Drafted a spec for how charmlibs should provide mock relation data and test doubles for charms to use in their state-transition tests.
- Released a version of charmlibs.snap with Python 3.8 support (#291). This is a 0.X release which does not guarantee extended support.
- Made a PR for the Nginx Ingress Integrator charm to demo migrating to charmlibs.interfaces.tls_certificates from the legacy Charmhub-hosted lib (#297).
Pebble
- Released Pebble v1.27.0, which adds support for a “syslog” log forwarding target (thanks Yan Jiang on the Networking APAC team for adding this feature).
- Released Pebble v1.27.0-fips, the first release of a FIPS-compliant Pebble, which you may soon be able to use in your rocks.
- Reviewed and updated the spec (and opened a new PR) to hide sensitive content from non-admin users. We’ve decided on a different approach: we’ll entirely remove the ability to get the plan from non-admin users.
Documentation
- Drafted a page that explains which versions of tools (Juju, Ops, Charmcraft) you can use given a particular base, which version of Pebble you get with each Juju version, and the support timeframes for Juju and Ops (#2231).
- Fixed an issue with the Kubernetes charm tutorial, where the charm wouldn’t pack after adding COS Lite (#2232).
- Clarified some parts of the new machine charm tutorial based on feedback (#2223).
- Updated How to write and structure charm code and How to write integration tests for a charm to match the latest Charmcraft profiles (#2220, #2221).