The team is proud of the work achieved this pulse. Scenario received some love with several fixes proposed, and the Ops framework got a fix for I/O thread leaks. Progress was made on several specs across Jubilant, Charmlibs, Ops and Pebble. The team is taking on stewardship of the ubuntu charm, which will receive Ubuntu 26.04 (Resolute Racoon
) support shortly. Hyrum got smarter, charm libraries can now contribute Diátaxis docs to the charmlibs documentation site, and much more.
Ops
- Fixed
JUJU_HOOK_NAMEnot being correctly derived when objects contain dashes (#2552). - Stopped leaking exec I/O threads in Pebble when waiting on the change fails (#2558).
- Added hookcmds integration tests for secret access, rebooting, and port management (#2562).
- Avoided double-closing the framework in Scenario teardown (#2561).
- Fixed the
mock_temp_dirfixture’sopen()patch (#2553). - Investigated chdir-ing to the charm root during the event in Scenario (#2550).
- Started work on including an attribute with the container name in Pebble tracing spans (#2555).
- Worked on taking Pebble defaults into consideration when consistency-checking Checks (#2567).
- Started work on aligning Juju naming rules with the testing class rules (#2570), and matching that validation in Charmcraft (#2723).
Charming
- Added Ubuntu 26.04 (Resolute Raccoon) as a
run-onbase in theubuntucharm (#83). A release will hopefully be done next pulse. - Continued work on Hyrum: taught the discovery to recognise
src/reactive/andsrc/layer.yamlas legacy (#27) and to skip charms with no Python source (#28); progressed aCharmlibPatcherfor swapping charmlib deps (#25), scripts to discover public charm repositories on GitHub and Launchpad (#26), auto-Python-wrapping the tox runner (#32), and dropping click, rich, and pyyaml as dependencies (#33). - Added a workshop config for a charm + Go dev environment to the
ubuntu-manpagesoperator (#67). - Filed Juju 4 bugs on
juju-rebootnot actually rebooting (#22639) and onnetwork-getreturning an empty leading placeholder bind-address on Kubernetes (#22616). - Started work on a spec for dependabot conventions across the Charm Tech repos (#17).
- Continued work on OP089, a spec to add support for state transition tests involving multiple charms.
- Continued work on OP088, a spec for including CharmQA validators in the charmlibs repository.
- Continued work on OP087, a spec for improving Jubilant logs.
Charmlibs
- Libraries can now provide their own tutorials, how-to guides, and explanations for inclusion in the charmlibs documentation site! (#504)
- The charmlibs docs are now built on the Canonical Sphinx Stack (#517)
- Developer tooling quality of life features like automatic minimum Python version detection have been unlocked by the migration of the task runner logic to a Python script (#518)
Pebble
pebble versionandpebble healthcommands now support structured output (#880) withpebble --versionrefined to only display the client version.- Draft OP090 spec, which deals with TLS CA certificates, is ready for further review.
- Continued work on a series of Otel specs looking into Otel forwarding/configuration.
- Re-enabled armhf, s390x and ppc64el builds ahead of 1.32 release (#886).
- Build provenance attestation in CI (#885).
- Fault finding on (#887).
Documentation
- Documented an overview of subordinate charms (#2455)
- Clarified how to name workload-less charms (#2496, contributed by Enrico.
- Clarified that
storage-detachingapplies to both machine and K8s charms (#2554). - Added a small note about
-W errorto the unit-test how-to (#2560). - Started work on extending the security explanation page (#2571).
- Clarified Jubilant behaviour when providing a user in the model value (#340).
- Clarified Jubilant behaviour of the
any_*helpers when a specified app doesn’t exist (#344) - Started work on adding the workload version into the k8s tutorial (#2559)