This release adds a pebble.socket_path attribute to tracing spans. The attribute is useful for distinguishing spans where multiple Pebble daemons are used. We've also included several fixes and documentation improvements.
What's Changed
Features
- Note the socket path in Pebble tracing spans in #2555
Fixes
- Treat remote unit zero as explicit in #2454
- Ensure resources are cleaned up in testing.Context in #2506
- Close SQLite storage in Harness.cleanup() in #2507
- Restore sys.breakpointhook on _Manager teardown in #2542
- Avoid errors in finalisation due to already-closed websocket in #2548
- Use the correct value for JUJU_HOOK_NAME when objects contain dashes in #2552
- Avoid double-closing the framework in testing teardown in #2561
- Don't leak exec I/O threads when waiting on the change fails in #2558
- Take Pebble defaults into consideration when consistency checking Checks in #2567
- Tear down
Runtime.exec()when the charm raises in #2581
Documentation
- Fix small issues in K8s tutorial in #2540
- Document user-secret observer lifecycle and secret-changed semantics in #2522
- Replace CoC with link to Ubuntu Code of Conduct in #2564
- Add a small note about -W error in the unit test how-to in #2560
- Add doc about subordinate charms in #2455
- Add 26.04 to the versions page and mark 2.23 as LTS in #2517
- Clarify storage-detaching applies to both machine and K8s charms in #2554
- Add guidance about names of workload-less charms in #2496
- Fix first unit tests command in machine charm tutorial in #2574
- Extend security explanation page to cover SEC0030 V1.3 gaps in #2571
- Move docs to canonical.com/juju/docs/ops in #2545
- Fix docstring of _Event._is_action_event in #2580
Tests
- Treat warnings as errors when running unit tests in #2541
- Fix mock_temp_dir fixture's open() patch in #2553
- Add integration tests for ops.hookcmds in #2520, #2562
- Fix integration test flakes on Juju 3 k8s and Juju 4 secrets in #2584
Refactoring
- Avoid yaml.load() to silence security scanner false positives in #2523
- Replace jsonpatch with an inline dict-diff in #2578
- Move the otlp-json package to be a regular ops-tracing module in #2585
- Distinguish between init and attribute types in testing state classes in #2331
CI
- Remove obsolete containerd workaround from integration workflow in #2519
- Use the sys.monitoring coverage core in #2518
Full Changelog: 3.7.1...3.8.0