Skip to content

2.23.6: backport fixes from 3.x

Choose a tag to compare

@github-actions github-actions released this 08 Oct 22:53
Immutable release. Only release title and notes can be modified.
5778765

2.23 is the LTS series for Ops, and this release brings it up to date with the bug fixes made in the 3.x series through to the end of September.

Relation.load() now decodes only the fields that your data class uses. Before, loading a unit databag into a data class failed on the keys that Juju sets itself, such as ingress-address. Additionally, Pydantic dataclasses created with Pydantic versions before 2.11 are now properly detected as Pydantic dataclasses.

When a destination rejects tracing data, the tracing exporter now says which destination it was, and it no longer logs a traceback for it.

In ops.testing, converting an unknown status by name no longer raises a TypeError.

The ops_tracing.vendor.otlp_json package is now the private ops_tracing._otlp_json module. vendor was never intended for public use, but this is technically a breaking change and any charms that were using vendor will need to be updated to stop doing so.


Changelog

Fixes

Cherry-picked recent fixes from main into the 2.23-maintenance branch (#2789), including:

  • Only decode fields used by the data class in Relation.load() (#2636)
  • Detect Pydantic dataclasses from before 2.11 when mapping aliases (#2768)
  • In ops.testing, don't pass a message when converting an unknown status by name (#2700)
  • Say which tracing destination rejected the data (#2714)
  • Allow IdentityDict to be assigned IdentityAccess (#2628)

Refactoring

  • Move the otlp-json package to be a regular ops-tracing module (2.23) (#2788)

All commits: 2.23.5...2.23.6