Skip to content

chore(deps): update dependency ops to v2.23.5 - #86

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ops-2.23.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ops-2.23.x

Conversation

@renovate

@renovate renovate Bot commented Feb 11, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
ops (changelog) ==2.23.1==2.23.5 age confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

canonical/operator (ops)

v2.23.5: 2.3.5: fix how duplicate events are identified

Compare Source

This release backports a bug fix from 3.8.2. If an event MyEmitter[foo]/evt1 was deferred, subsequent events MyEmitter[foo]/evt2 and MyEmitter[bar]/evt1 would be incorrectly identified as duplicate events, and then skipped.

What's Changed

Fixes
  • Compare full event paths when skipping duplicate notices in #​2717

Full Changelog: canonical/operator@2.23.4...2.23.5

v2.23.4: : backport fixes from 3.x

Compare Source

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 from 3.1.0 through to 3.8.0 (everything that was applicable to 2.23 and did not require behaviour changes or features that only exist in 3.x). There are no new features and no breaking changes.

Most of the fixes are in ops.testing (Scenario and Harness), where several long-standing sources of confusing test results are resolved. The runtime fixes are smaller in number but include two that can hang or crash a real charm.

Runtime fixes worth knowing about
  • Exec no longer leaks I/O threads when the wait fails (#​2558). If a Container.exec() change outlived the client-side wait (for example, an orphaned process holding the exec's stdio open), the non-daemon I/O pump threads stayed blocked in recv() and prevented interpreter shutdown, wedging the hook. The exec is now torn down when the wait fails.
  • No more errors during finalisation on an already-closed Pebble websocket (#​2548). Closing a socket that is already closed is now a no-op, and the race where it closes underneath us is ignored. This was showing up as noisy tracebacks at interpreter shutdown on Python 3.13+.
  • Datetimes from Juju 4 parse correctly on Python 3.10 (#​2264).
  • credential-get is recognised on Kubernetes (#​2307) and action metadata reports additional_properties correctly (#​2250) on newer Juju, both of which otherwise caused spurious failures against Juju 4.
  • ops.pebble.Client.pull cleans up its temporary file if it errors (#​2087), rather than leaving it behind.
  • ExecError.__str__ shows only the executable, not the whole command line (#​2336), so arguments that contain secrets do not end up in logs and status messages. Please avoid putting secrets in exec calls.
  • breakpoint() still works after _Manager teardown (#​2542): sys.breakpointhook is restored instead of being left patched.
  • Type annotation corrections that may surface new (correct) errors in your type checker: Model.get_binding() (#​2329) and StorageMeta.properties (#​2348).
Testing fixes worth knowing about
  • Relation data in tests is no longer shared with the mock backend (#​2052). Tests that relied on the old aliasing may now (correctly) see different data.
  • Remote units on relation events match Juju (#​1918, #​1925): the remote unit is only added for -departed and -broken events, the ordering is fixed, and the departing unit appears in Relation.data but not in Relation.units.
  • Errors inside the Context context manager are no longer swallowed (#​2117, #​2121): the manager is exited properly when an exception occurs, and ActionFailed is raised as it is outside the manager.
  • Mutable state you pass in is copied, not captured (#​2349, #​2379, #​2380): Context holds copies of user-provided meta, config and actions; secret_get and action_get return copies; and layers are deep-copied when rendering the plan. Previously a test could mutate the objects another test was about to use.
  • Resources and files are cleaned up (#​2506, #​2507): Context releases its resources, and Harness.cleanup() closes the SQLite storage instead of leaking a file handle.
  • Consistency checking is less trigger-happy: Pebble's defaults for check level, startup and threshold are taken into account (#​2567), _checks_action returns an empty list rather than erroring when nothing changed (#​2270), and testing.CheckInfo's level argument accepts the same type as pebble.CheckInfo.level (#​2274).
  • Secret.owner is normalised to 'app' in output state (#​2127), and an event that ends with _Abort(0) is treated as a success (#​1887).
  • Clearing a non-empty container now warns first (#​2365), and the testing.Container compatibility import moved so mypy-style checkers understand it (#​2343).
What's Changed
Fixes
  • If an event ends with _Abort(0), tests behave as if it ended successfully (#​1887)
  • Only add the remote unit for departed and broken relation events, and fix the ordering (#​1918)
  • Add the remote unit to Relation.data but not Relation.units (#​1925)
  • _MockModelBackend.relation_get returns a copy of the relation data (#​2052)
  • Ensure ops.pebble.Client.pull cleans up temporary files if it errors (#​2087)
  • Ensure that the testing context manager is exited when an exception occurs (#​2117)
  • Raise ActionFailed when using Context as a context manager (#​2121)
  • Normalise Secret.owner to 'app' for ops[testing] output state (#​2127)
  • Correct the value of additional_properties in the action meta in Juju 4 (#​2250)
  • Use parse_rfc3339 for datetime parsing to support Python 3.10 (#​2264)
  • _checks_action returns an empty list when there are no changes (#​2270)
  • Make testing.CheckInfo level argument type match pebble.CheckInfo.level (#​2274)
  • Support the Pydantic MISSING sentinel in ops.Relation.save (#​2306)
  • credential-get is available on Kubernetes in newer Juju (#​2307)
  • Correct the Model.get_binding() return type (#​2329)
  • Only show the executable in ExecError.__str__, not the full command line (#​2336)
  • Move the testing.Container compatibility import so that mypy-style checkers understand it (#​2343)
  • Correct the type annotation for StorageMeta.properties (#​2348)
  • Hold only copies of user provided dicts in testing.Context (#​2349)
  • Warn before clearing a non-empty container in testing (#​2365)
  • Use timezone-aware datetimes in expiry calculation (#​2378)
  • Return copies from Scenario secret_get and action_get (#​2379)
  • Deep-copy layer objects during Scenario plan rendering (#​2380)
  • Pass the endpoint name through to relation-get (#​2499)
  • Ensure resources are cleaned up in testing.Context (#​2506)
  • Close SQLite storage in Harness.cleanup() (#​2507)
  • Restore sys.breakpointhook on _Manager teardown (#​2542)
  • Avoid errors in finalisation due to an already-closed websocket (#​2548)
  • Don't leak exec I/O threads when waiting on the change fails (#​2558)
  • Drop the unused importlib-metadata dependency declaration (#​2521)
  • Take Pebble defaults into consideration when consistency checking Checks (#​2567)
  • Pin pydantic to 2-3 (#​2583)
Documentation
  • Move 2.x docs to canonical.com/juju/docs/ops (#​2546)
CI
  • Fix ops-tracing release for 2.23-maintenance (#​2324)
  • Test Ops 2.23 with Python 3.14 (#​2576)

Full Changelog: canonical/operator@2.23.2...2.23.4

v2.23.2: : fix testing package build

Compare Source

What's Changed

This release fixes a recent build failure for ops[testing].

Fixes

  • Drop unused setuptools_scm build dependency in #​2318

Documentation

  • For 2.23, update links and config for switch to documentation.ubuntu.com/ops in #​1942
  • For 2.x, fix site title and unstyled error pages in #​1945
  • For 2.x, remove .html extensions in #​1954
  • For 2.x, fix unstyled error pages in #​1973

Full Changelog: canonical/operator@2.23.1...2.23.2


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Feb 11, 2026

Copy link
Copy Markdown
Contributor Author

Branch automerge failure

This PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.


  • Branch has one or more failed status checks

@renovate
renovate Bot force-pushed the renovate/ops-2.23.x branch from d8c3dab to 85359b0 Compare July 30, 2026 03:59
@renovate renovate Bot changed the title chore(deps): update dependency ops to v2.23.2 chore(deps): update dependency ops to v2.23.4 Jul 30, 2026
@renovate
renovate Bot force-pushed the renovate/ops-2.23.x branch from 85359b0 to 0d3346e Compare August 31, 2026 13:41
@renovate renovate Bot changed the title chore(deps): update dependency ops to v2.23.4 chore(deps): update dependency ops to v2.23.5 Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants