Charm Tech pulse 2026#6

This pulse was a productive one for us: we released new versions of Pebble, Concierge, and – probably by the time you read this – Ops and Jubilant. We finished the Relation Interface Design spec and got it approved (it will be required to follow that for new charmlibs interface libraries), we refactored some pytest-jubilant warts and released a 2.0 version (it’s now maintained by Charm Tech), we used AI to port charm integration tests from pytest-operator to Jubilant, and we added some Concierge features and fixes.

Ops

  • Releasing Ops 3.7.0 imminently (as soon as CI/Snap store issues are fixed). This release enables interactive debugging, allows ops[testing] to autoload charmcraft extensions (like 12-factor), and contains several smaller features and fixes.

  • Fixed an issue in ops[testing] where complex Pebble plans could get corrupted (#2380)

  • Fixed an issue in ops[testing] where secret-get and action-get didn’t copy the data, so tests could mutate it later (#2379)

  • Fixed an issue with setting secret expiry where the timezone was not UTC (#2378)

Charming

  • OP083 - Relation Interface Design specification has been approved. We’ll start requiring that for charm libraries that wrap interfaces after the sprint.

  • Refactored pytest-jubilant to create a slimmer, namespaced API, and released a 2.0 version.

  • Releasing Jubilant 1.8.0 imminently (as soon as CI/Snap store issues are fixed). This adds the metadata_source option to bootstrap and fixes minor issues.

  • Updated the onboarding module for Charming, with changes going live at the end of the month.

  • Continued work on migrating the Kubeflow User Acceptance Tests to Jubilant (#254)

  • Worked on a fix for using the -p and -o options together in charmcraft (#2600)

  • Worked on fixes for a couple of confinement issues in Jubilant when using Juju as a snap (​#275)

  • Increased our use of Zizmor (#379, #172, #820, #22, #34, #274, #167, #63, #20)

  • Added support for the charm folder not being at the top of the repo to the Charmhub public listing review tooling (#64)

  • Added support for specifying a branch to review in the Charmhub public listing tooling (#61)

  • Worked on adding integration tests to the charmhub-listing-review repository (#66)

  • Continued investigation into improving usage and documentation of Spread in charms and Charm Tech repositories

Concierge

  • Released Concierge v1.4.4, which contains a collection of small bug fixes; most significantly, it avoids clobbering an existing K8s cluster, for example, if running concierge twice.

  • Fixed a Concierge bug where some incorrect settings would be used in a MicroK8s config (#166)

  • Fixed Concierge to handle disabled snaps (#165)

  • Sped up Concierge when some permanent errors would previously have been retried several times (#164)

  • Fixed an issue in Concierge where credentials for a provider could be lost (#163)

  • Added static analysis to the Concierge CI (#168)

Charmlibs

  • Migrated the tls-certificates integration tests to Jubilant (#367)

Pebble

  • Released Pebble v1.30.0, which includes the Go version bump to 1.26, and minor fixes.

  • Bumped the version of Go from 1.24 to 1.26 (#818)

Documentation

  • Drafted a new how-to guide for charm debugging (#2386)

  • Made the Ops homepage more useful for locating resources in Ops and other Juju ecosystem docs (#2370)

  • Moved the Jubilant migration guide to the Ops docs (#2381)

  • Added a note to the Jubilant migration guide that AI can be useful (#2382)

1 Like