Charm Tech pulse 2026#13

This pulse saw numerous releases, including Ops 3.8.0, Jubilant 1.11.0, Concierge 1.6.1, and Pebble 1.32.0, as well as a major migration of our documentation to canonical.com/juju/docs. We also landed the core rewrite of charmlibs.snap 2.0, made progress towards a less-verbose log format for Jubilant, and continued to develop Hyrum (our tool for testing backwards compatibility with charms when updating dependencies like Ops). We hosted a productive AMA with the SQL team, and will continue hosting AMAs with charming teams throughout the cycle.

Ops

  • Released ops 3.8.0, ops-scenario 8.8.0, ops-tracing 3.8.0
  • Fixed Runtime.exec() teardown when the charm raises (#2581).
  • Added the socket path to Pebble tracing spans (#2555).
  • Aligned Juju action-name validation across ops and Charmcraft (#2570, #2723).
  • Fixed integration test flakes on Juju 3 K8s and Juju 4 secrets, and re-enabled the tracing integration tests (#2584, #2586).
  • Distinguished init vs attribute types in the testing state classes (#2331).
  • Opened PRs to enable warnings-as-errors in tests across a set of downstream charms (#444, #771, #683, #203, #71).

Charming

  • Released concierge 1.6.1 and Jubilant 1.11.0
  • In Concierge: lifted the Juju bootstrap retry budget and default bootstrap-timeout (#221).
  • In Hyrum: landed the CharmlibPatcher for swapping charmlib deps sourced from canonical/charmlibs (#25) and the scripts to discover public charm repositories on GitHub and Launchpad (#26).
  • Softened the requirement to have a logo when requesting public listing for charms. We’ll talk to the store/design/web/other teams to figure out how to improve things here.
  • In charmhub-listing-review: sorted known-license hashes for deterministic parametrise IDs (#128) and dropped the charmcraft test requirement for now (#134); progressed the update to the charm naming rules (#135).
  • Progressed full_match support on LocalPath, ContainerPath, and PathProtocol in charmlibs (#567).
  • Continued work on modernising the Ubuntu charm, aiming to have a release (officially supporting 26.04) very soon (#85).
  • Finalized OP087, a spec for improving Jubilant logs, with reviews from Charmers. Started implementing this spec (#351, #97).
  • Hosted an AMA with the SQL team members.

Charmlibs

  • Landed the core charmlibs.snap 2.0 rewrite PRs (#460, #469). 2.0 is a thin API wrapper with a design based on the snap CLI, coming to PyPI soon™. Try it today by installing it from main.
  • Migrated the TLS Certificates interface documentation from Charmhub to the Charmlibs docs (#516). Find the tutorial, library reference, how-to guide for configuring certificate requests, and explanation of the library design in the docs.
  • Added PR templates to Charmlibs to make it easier to add new libraries or migrate existing libraries (#542).

Pebble

  • Pebble v1.32.0 released: Structured output for version and health, read-only filesystem fix (v1.32.0)
  • Docs moved to ubuntu.com/docs/pebble (#882)
  • Identity generation disabled with PEBBLE_PERSIST=never (#896)
  • Prototyping/Research into:
    • Container Charms on Machines
    • Service UID/GID in unprivileged/rootless containers (prototype)

Documentation

1 Like