This pulse, the team has been busy with releases and improvement work across the board. We released Pebble v1.32.2 and the companion FIPS version, with a new automated release process that makes good use of AI in a targeted way. In Charmlibs news, check out charmlibs.snap 2.0 and charmlibs.interfaces.tracing 1.0, which we just released to PyPI.
We also spent a day exploring wild ideas for agentic charms – a head-to-head hackathon within the team. Is a charm that runs an agent on every hook a good idea? We’ll let you decide…! Or what if AI could “evolve” a charm from a generic starting point into a highly capable operator? This was a day dedicated to experimentation, and we found it to be a great exercise in collaborative design & development, as well as learning the limits of agentic development.
Ops
- Added conformance tests for the
tracingandcertificate_transferinterfaces (#2711). - Made tracing errors say which destination rejected the data (#2714).
- Made
_CharmSpeccovariant in its charm type so subclass specs type-check (#2715). - Stopped importing
pdbunless a debugger is actually requested (#2740). - Started work on coercing nested dataclass fields in
Relation.load(#2741). - Drafted enforcing relation databag read permissions on all access paths (#2738).
Charming
- Hosted an AMA with some of the OpenStack and HPC team members.
- In Concierge:
- Dropped the
_sleep_oncefixture in pytest-jubilant (#122). - Stopped pytest-interface-tester relying on the private
_EventPath.suffixattribute (#36). - Merged initial PRs to modernise the Juju controller charm (#136, #139, #140). More PRs in review (#141, #142).
- Replaced
charmcraft create-libwith a stub that tells users the command no longer functions and points them to the relevant docs (#2851). - Continued adding and improving Charmlint rules and adopted ruff’s suppression-comment and rule-name style.
- In Hyrum:
- Added reporting where a run saved its results and logs (#126).
- Made report percentages unambiguous about their denominator (#127).
- Reported each status as a share of the runs as well as of the fleet (#138).
- Made the verbosity rungs cumulative and added
--brief(#133). - Made the check help readable in a terminal (#137).
- Narrowed
get-charmswith--repoand--limit(#143). - Added
hyrum show PATHto print a saved run’s status summary (#149). - Added a
cleansubcommand to reclaim per-charm build artefacts (#139). - Found charms nested deeper than one directory level (#134).
- Injected the patched Poetry dependency into the group it came from (#135).
- Progressed on updating
jhack scenario snapshotto match latestops[testing], and fix some bugs that break the tool.
Charmlibs
- Released
charmlibs.snap2.0 (#651), now available on PyPI! - Released
charmlibs.interfaces.tracing1.0 (#588), now available on PyPI! - Added
is_relative_toandwith_stemtoContainerPathin pathops (#646). - Updated the Charmhub libraries deprecation timeline to reflect the fact that publication of new libraries (via
charmcraft create-lib) is no longer supported (#644). - Removed the interface testing machinery inherited from
charm-relation-interfacesfromcharmlibs(#652) and prepared to drop the interface testing workflow (#645). - Began updating interface schemas to a new format designed for compatibility with the typed
ops.Relation.load, to make it easier for interface schemas to be sourced from the interface library code itself for documentation and validation. - Refreshed the HPE keys used by the apt
ssaclifunctional test (#648). - Continued the
-Werrorrollout, optingrollingopsandnginx_k8sin to warnings-as-errors (#672). - Worked on creating a GitHub release for each published package (#649).
- Experimented with a new layout for interface test charms (#673).
Pebble
- New release process for Pebble which now incorporates agentic release note generation and merge conflict resolution (PRs).
- Released Pebble v1.32.2 and v1.32.2-fips.
- Spec review progress made on Pebble scheduled service start.
- Shepherding community contribution to fix #681 - Shutdown has 2s delay when log forwarding is being used.
Documentation
- Worked on a how-to guide for securing a charm (#2721).
- Fixed a race condition in the Kubernetes tutorial charm (#2689).
- Started describing Concierge’s security model (#262).
- Changed to build the Charmlibs package reference pages in parallel (#674).
- Worked on publishing changelogs for libraries in Charmlibs (#650).
- Worked on a new how-to guide for Jubilant wait CLI (#413).