← Back to issue list

build(deps): update dependency ops to v2.23.4 (main)

View original Github issue

Metadata

Project
charmcraft
Number
#2811
Type
pull request
State
closed
Author
renovate[bot]
Labels
PR: Dependencies
Created
Updated
Closed

Current evaluation

Closed without merging. The ops dependency update to v2.23.4 was rejected. Renovate will ignore this update and wait for a newer version. No reviewers approved it, and CI checks showed failures.

Suggested action:

No scores available.

Issue body

> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [ops](https://redirect.github.com/canonical/operator) ([changelog](https://redirect.github.com/canonical/operator/blob/main/CHANGES.md)) | `==2.5.0` → `==2.23.4` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ops/2.23.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ops/2.5.0/2.23.4?slim=true) | | [ops](https://redirect.github.com/canonical/operator) ([changelog](https://redirect.github.com/canonical/operator/blob/main/CHANGES.md)) | `==2.5.1` → `==2.23.4` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ops/2.23.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ops/2.5.1/2.23.4?slim=true) | | [ops](https://redirect.github.com/canonical/operator) ([changelog](https://redirect.github.com/canonical/operator/blob/main/CHANGES.md)) | `==2.15.0` → `==2.23.4` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ops/2.23.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ops/2.15.0/2.23.4?slim=true) | --- ### Release Notes <details> <summary>canonical/operator (ops)</summary> ### [`v2.23.4`](https://redirect.github.com/canonical/operator/releases/tag/2.23.4): : backport fixes from 3.x [Compare Source](https://redirect.github.com/canonical/operator/compare/2.23.2...2.23.4) 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** ([#&#8203;2558](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2548](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2264](https://redirect.github.com/canonical/operator/issues/2264)). - **`credential-get` is recognised on Kubernetes** ([#&#8203;2307](https://redirect.github.com/canonical/operator/issues/2307)) and **action metadata reports `additional_properties` correctly** ([#&#8203;2250](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2087](https://redirect.github.com/canonical/operator/issues/2087)), rather than leaving it behind. - **`ExecError.__str__` shows only the executable**, not the whole command line ([#&#8203;2336](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2542](https://redirect.github.com/canonical/operator/issues/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()` ([#&#8203;2329](https://redirect.github.com/canonical/operator/issues/2329)) and `StorageMeta.properties` ([#&#8203;2348](https://redirect.github.com/canonical/operator/issues/2348)). ##### Testing fixes worth knowing about - **Relation data in tests is no longer shared with the mock backend** ([#&#8203;2052](https://redirect.github.com/canonical/operator/issues/2052)). Tests that relied on the old aliasing may now (correctly) see different data. - **Remote units on relation events match Juju** ([#&#8203;1918](https://redirect.github.com/canonical/operator/issues/1918), [#&#8203;1925](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2117](https://redirect.github.com/canonical/operator/issues/2117), [#&#8203;2121](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2349](https://redirect.github.com/canonical/operator/issues/2349), [#&#8203;2379](https://redirect.github.com/canonical/operator/issues/2379), [#&#8203;2380](https://redirect.github.com/canonical/operator/issues/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** ([#&#8203;2506](https://redirect.github.com/canonical/operator/issues/2506), [#&#8203;2507](https://redirect.github.com/canonical/operator/issues/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 ([#&#8203;2567](https://redirect.github.com/canonical/operator/issues/2567)), `_checks_action` returns an empty list rather than erroring when nothing changed ([#&#8203;2270](https://redirect.github.com/canonical/operator/issues/2270)), and `testing.CheckInfo`'s `level` argument accepts the same type as `pebble.CheckInfo.level` ([#&#8203;2274](https://redirect.github.com/canonical/operator/issues/2274)). - **`Secret.owner` is normalised to `'app'`** in output state ([#&#8203;2127](https://redirect.github.com/canonical/operator/issues/2127)), and an event that ends with `_Abort(0)` is treated as a success ([#&#8203;1887](https://redirect.github.com/canonical/operator/issues/1887)). - **Clearing a non-empty container now warns first** ([#&#8203;2365](https://redirect.github.com/canonical/operator/issues/2365)), and the `testing.Container` compatibility import moved so mypy-style checkers understand it ([#&#8203;2343](https://redirect.github.com/canonical/operator/issues/2343)). ##### What's Changed ##### Fixes - If an event ends with `_Abort(0)`, tests behave as if it ended successfully ([#&#8203;1887](https://redirect.github.com/canonical/operator/issues/1887)) - Only add the remote unit for departed and broken relation events, and fix the ordering ([#&#8203;1918](https://redirect.github.com/canonical/operator/issues/1918)) - Add the remote unit to `Relation.data` but not `Relation.units` ([#&#8203;1925](https://redirect.github.com/canonical/operator/issues/1925)) - `_MockModelBackend.relation_get` returns a copy of the relation data ([#&#8203;2052](https://redirect.github.com/canonical/operator/issues/2052)) - Ensure `ops.pebble.Client.pull` cleans up temporary files if it errors ([#&#8203;2087](https://redirect.github.com/canonical/operator/issues/2087)) - Ensure that the testing context manager is exited when an exception occurs ([#&#8203;2117](https://redirect.github.com/canonical/operator/issues/2117)) - Raise `ActionFailed` when using `Context` as a context manager ([#&#8203;2121](https://redirect.github.com/canonical/operator/issues/2121)) - Normalise `Secret.owner` to `'app'` for `ops[testing]` output state ([#&#8203;2127](https://redirect.github.com/canonical/operator/issues/2127)) - Correct the value of `additional_properties` in the action meta in Juju 4 ([#&#8203;2250](https://redirect.github.com/canonical/operator/issues/2250)) - Use `parse_rfc3339` for datetime parsing to support Python 3.10 ([#&#8203;2264](https://redirect.github.com/canonical/operator/issues/2264)) - `_checks_action` returns an empty list when there are no changes ([#&#8203;2270](https://redirect.github.com/canonical/operator/issues/2270)) - Make `testing.CheckInfo` level argument type match `pebble.CheckInfo.level` ([#&#8203;2274](https://redirect.github.com/canonical/operator/issues/2274)) - Support the Pydantic MISSING sentinel in `ops.Relation.save` ([#&#8203;2306](https://redirect.github.com/canonical/operator/issues/2306)) - `credential-get` is available on Kubernetes in newer Juju ([#&#8203;2307](https://redirect.github.com/canonical/operator/issues/2307)) - Correct the `Model.get_binding()` return type ([#&#8203;2329](https://redirect.github.com/canonical/operator/issues/2329)) - Only show the executable in `ExecError.__str__`, not the full command line ([#&#8203;2336](https://redirect.github.com/canonical/operator/issues/2336)) - Move the `testing.Container` compatibility import so that mypy-style checkers understand it ([#&#8203;2343](https://redirect.github.com/canonical/operator/issues/2343)) - Correct the type annotation for `StorageMeta.properties` ([#&#8203;2348](https://redirect.github.com/canonical/operator/issues/2348)) - Hold only copies of user provided dicts in `testing.Context` ([#&#8203;2349](https://redirect.github.com/canonical/operator/issues/2349)) - Warn before clearing a non-empty container in testing ([#&#8203;2365](https://redirect.github.com/canonical/operator/issues/2365)) - Use timezone-aware datetimes in expiry calculation ([#&#8203;2378](https://redirect.github.com/canonical/operator/issues/2378)) - Return copies from Scenario `secret_get` and `action_get` ([#&#8203;2379](https://redirect.github.com/canonical/operator/issues/2379)) - Deep-copy layer objects during Scenario plan rendering ([#&#8203;2380](https://redirect.github.com/canonical/operator/issues/2380)) - Pass the endpoint name through to `relation-get` ([#&#8203;2499](https://redirect.github.com/canonical/operator/issues/2499)) - Ensure resources are cleaned up in `testing.Context` ([#&#8203;2506](https://redirect.github.com/canonical/operator/issues/2506)) - Close SQLite storage in `Harness.cleanup()` ([#&#8203;2507](https://redirect.github.com/canonical/operator/issues/2507)) - Restore `sys.breakpointhook` on `_Manager` teardown ([#&#8203;2542](https://redirect.github.com/canonical/operator/issues/2542)) - Avoid errors in finalisation due to an already-closed websocket ([#&#8203;2548](https://redirect.github.com/canonical/operator/issues/2548)) - Don't leak exec I/O threads when waiting on the change fails ([#&#8203;2558](https://redirect.github.com/canonical/operator/issues/2558)) - Drop the unused `importlib-metadata` dependency declaration ([#&#8203;2521](https://redirect.github.com/canonical/operator/issues/2521)) - Take Pebble defaults into consideration when consistency checking `Check`s ([#&#8203;2567](https://redirect.github.com/canonical/operator/issues/2567)) - Pin `pydantic` to 2-3 ([#&#8203;2583](https://redirect.github.com/canonical/operator/issues/2583)) ##### Documentation - Move 2.x docs to canonical.com/juju/docs/ops ([#&#8203;2546](https://redirect.github.com/canonical/operator/issues/2546)) ##### CI - Fix ops-tracing release for 2.23-maintenance ([#&#8203;2324](https://redirect.github.com/canonical/operator/issues/2324)) - Test Ops 2.23 with Python 3.14 ([#&#8203;2576](https://redirect.github.com/canonical/operator/issues/2576)) **Full Changelog**: <https://github.com/canonical/operator/compare/2.23.2...2.23.4> ### [`v2.23.2`](https://redirect.github.com/canonical/operator/releases/tag/2.23.2): : fix testing package build [Compare Source](https://redirect.github.com/canonical/operator/compare/2.23.1...2.23.2) #### What's Changed This release fixes a recent build failure for `ops[testing]`. #### Fixes - Drop unused `setuptools_scm` build dependency in [#&#8203;2318](https://redirect.github.com/canonical/operator/pull/2318) #### Documentation - For 2.23, update links and config for switch to documentation.ubuntu.com/ops in [#&#8203;1942](https://redirect.github.com/canonical/operator/pull/1942) - For 2.x, fix site title and unstyled error pages in [#&#8203;1945](https://redirect.github.com/canonical/operator/pull/1945) - For 2.x, remove .html extensions in [#&#8203;1954](https://redirect.github.com/canonical/operator/pull/1954) - For 2.x, fix unstyled error pages in [#&#8203;1973](https://redirect.github.com/canonical/operator/pull/1973) **Full Changelog**: <https://github.com/canonical/operator/compare/2.23.1...2.23.2> ### [`v2.23.1`](https://redirect.github.com/canonical/operator/releases/tag/2.23.1): : Add the remote unit to Relation.data, but not Relation.units [Compare Source](https://redirect.github.com/canonical/operator/compare/2.23.0...2.23.1) This is a small bug-fix release for the 2.x series that addresses issues with the recent feature making relation data available in relation-departed events. Rather than inserting the remote unit into `Relation.units`, the data is available from `Relation.data`, without changing `Relation.units`. #### What's Changed ##### Fixes - Add the remote unit to `Relation.data` but not `Relation.units` in [#&#8203;1928](https://redirect.github.com/canonical/operator/pull/1928) ##### Documentation - Be consistent with recommending `self.app` and `self.unit` in [#&#8203;1856](https://redirect.github.com/canonical/operator/pull/1856) - Add notice about ops 2 and ops 3 in [#&#8203;1867](https://redirect.github.com/canonical/operator/pull/1867) - Update title and edit links for ops 2.23 docs in [#&#8203;1885](https://redirect.github.com/canonical/operator/pull/1885) ##### CI - Hotfix, publish job for ops-tracing in [#&#8203;1865](https://redirect.github.com/canonical/operator/pull/1865) **Full Changelog**: <https://github.com/canonical/operator/compare/2.23.0...2.23.1> ### [`v2.23.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2230---30-June-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.22.0...2.23.0) #### Features - Support for config schema as Python classes ([#&#8203;1741](https://redirect.github.com/canonical/operator/issues/1741)) - Support for action parameter schema as Python classes ([#&#8203;1756](https://redirect.github.com/canonical/operator/issues/1756)) - Ops\[tracing] compatibility with jhack ([#&#8203;1806](https://redirect.github.com/canonical/operator/issues/1806)) - Support for relation data schema as Python classes ([#&#8203;1701](https://redirect.github.com/canonical/operator/issues/1701)) - Add CheckInfo.successes field and .has\_run property ([#&#8203;1819](https://redirect.github.com/canonical/operator/issues/1819)) - Provide a method to create a testing.State from a testing.Context ([#&#8203;1797](https://redirect.github.com/canonical/operator/issues/1797)) - Expose trace data in testing ([#&#8203;1842](https://redirect.github.com/canonical/operator/issues/1842)) - Add a helper to generate a Layer from rockcraft.yaml ([#&#8203;1831](https://redirect.github.com/canonical/operator/issues/1831)) #### Fixes - Correctly load an empty Juju config options map ([#&#8203;1778](https://redirect.github.com/canonical/operator/issues/1778)) - Fix type annotation of container check\_infos in ops.testing ([#&#8203;1784](https://redirect.github.com/canonical/operator/issues/1784)) - Restrict the version of a dependency, opentelemetry-sdk ([#&#8203;1794](https://redirect.github.com/canonical/operator/issues/1794)) - Remote unit data is available in relation-departed ([#&#8203;1364](https://redirect.github.com/canonical/operator/issues/1364)) - Juju allows access to the remote app databag in relation-broken, so Harness should too ([#&#8203;1787](https://redirect.github.com/canonical/operator/issues/1787)) - Don't use private OpenTelemetry API ([#&#8203;1798](https://redirect.github.com/canonical/operator/issues/1798)) - Do not return this unit in a mocked peer relation ([#&#8203;1828](https://redirect.github.com/canonical/operator/issues/1828)) - Testing.PeerRelation properly defaults to no peers ([#&#8203;1832](https://redirect.github.com/canonical/operator/issues/1832)) - In meter-status-changed JUJU\_VERSION is not set ([#&#8203;1840](https://redirect.github.com/canonical/operator/issues/1840)) - Only provide the units belonging to the app in Relation.units ([#&#8203;1837](https://redirect.github.com/canonical/operator/issues/1837)) #### Documentation - Remove two best practices, and drop two to tips ([#&#8203;1758](https://redirect.github.com/canonical/operator/issues/1758)) - Update link to Charmcraft for managing app config ([#&#8203;1763](https://redirect.github.com/canonical/operator/issues/1763)) - Update link to Juju documentation for setting up deployment ([#&#8203;1781](https://redirect.github.com/canonical/operator/issues/1781)) - Fix external OTLP link ([#&#8203;1786](https://redirect.github.com/canonical/operator/issues/1786)) - Distribute the ops-scenario README content across the ops docs ([#&#8203;1773](https://redirect.github.com/canonical/operator/issues/1773)) - Improve testing.errors.UncaughtCharmError message ([#&#8203;1795](https://redirect.github.com/canonical/operator/issues/1795)) - In the "manage the charm version" how-to, give an example of using override-build ([#&#8203;1802](https://redirect.github.com/canonical/operator/issues/1802)) - Small adjustments to the 'how to trace charm code' doc ([#&#8203;1792](https://redirect.github.com/canonical/operator/issues/1792)) - Replace Harness example and fix links in README ([#&#8203;1820](https://redirect.github.com/canonical/operator/issues/1820)) - Add httpbin charm from Charmcraft as an example charm ([#&#8203;1743](https://redirect.github.com/canonical/operator/issues/1743)) - Fix on\_collect mistake in sample code ([#&#8203;1829](https://redirect.github.com/canonical/operator/issues/1829)) - Update code in K8s tutorial, with source in repo (part 2) ([#&#8203;1734](https://redirect.github.com/canonical/operator/issues/1734)) - Update Loki section on charming zero-to-hero tutorial ([#&#8203;1847](https://redirect.github.com/canonical/operator/issues/1847)) - Remove expandable boxes of text ([#&#8203;1844](https://redirect.github.com/canonical/operator/issues/1844)) - Improve httpbin charm by removing defer() and adding collect\_status ([#&#8203;1833](https://redirect.github.com/canonical/operator/issues/1833)) - Move {posargs} to the end of pytest command lines in tox.ini ([#&#8203;1854](https://redirect.github.com/canonical/operator/issues/1854)) #### CI - Install the ops\[tracing] dependencies for the TIOBE action ([#&#8203;1761](https://redirect.github.com/canonical/operator/issues/1761)) - Add ops-scenario and ops-tracing as explicit installs for TIOBE ([#&#8203;1764](https://redirect.github.com/canonical/operator/issues/1764)) - Persist credentials for update-charm-pins workflow ([#&#8203;1766](https://redirect.github.com/canonical/operator/issues/1766)) - Stop smoke testing Charmcraft 2 ([#&#8203;1782](https://redirect.github.com/canonical/operator/issues/1782)) - Use Charmcraft 3.x for smoke testing 20.04 and 22.04 ([#&#8203;1821](https://redirect.github.com/canonical/operator/issues/1821)) - Enable xdist for the 'unit' tox environments ([#&#8203;1830](https://redirect.github.com/canonical/operator/issues/1830)) ### [`v2.22.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2220---29-May-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.21.1...2.22.0) #### Features - Add Juju topology labels ([#&#8203;1744](https://redirect.github.com/canonical/operator/issues/1744)) #### Fixes - Turn on databag access validation in `__init__` ([#&#8203;1737](https://redirect.github.com/canonical/operator/issues/1737)) - Allow event suffixes to appear in event names in `ops.testing` ([#&#8203;1754](https://redirect.github.com/canonical/operator/issues/1754)) #### Documentation - Document how to manage metrics ([#&#8203;1692](https://redirect.github.com/canonical/operator/issues/1692)) - Link to our docs from the top of our README ([#&#8203;1710](https://redirect.github.com/canonical/operator/issues/1710)) - Update code in K8s tutorial, with source in repo (part 1) ([#&#8203;1719](https://redirect.github.com/canonical/operator/issues/1719)) - Update links to juju.is/docs ([#&#8203;1725](https://redirect.github.com/canonical/operator/issues/1725)) - Fix link in breakpoint output, remove link from Harness error message ([#&#8203;1726](https://redirect.github.com/canonical/operator/issues/1726)) - Update Matrix channel name to Charm Tech ([#&#8203;1740](https://redirect.github.com/canonical/operator/issues/1740)) - Rename configurations to configuration ([#&#8203;1746](https://redirect.github.com/canonical/operator/issues/1746)) - Fix typos in code snippets by [@&#8203;MattiaSarti](https://redirect.github.com/MattiaSarti) ([#&#8203;1750](https://redirect.github.com/canonical/operator/issues/1750)) #### CI - Add `ops[tracing]` integration tests ([#&#8203;1686](https://redirect.github.com/canonical/operator/issues/1686)) - Pin workflows by hash ([#&#8203;1721](https://redirect.github.com/canonical/operator/issues/1721)) - Disable alertmanager compatibility tests until upstream fix ([#&#8203;1745](https://redirect.github.com/canonical/operator/issues/1745)) - Remove explicit scopes and update HACKING.md ([#&#8203;1748](https://redirect.github.com/canonical/operator/issues/1748)) - Pin trusted workflows by tag ([#&#8203;1752](https://redirect.github.com/canonical/operator/issues/1752)) - Re-enable `alertmanager-k8s-operator` in observability charm tests ([#&#8203;1753](https://redirect.github.com/canonical/operator/issues/1753)) - Fix reporting to TIOBE after `ops[tracing]` addition ([#&#8203;1755](https://redirect.github.com/canonical/operator/issues/1755)) ### [`v2.21.1`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2211---1-May-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.21.0...2.21.1) #### Reverted - Reverting "run deferred events with fresh charm instances" ([#&#8203;1711](https://redirect.github.com/canonical/operator/issues/1711)) #### Documentation - Add best practices about status ([#&#8203;1689](https://redirect.github.com/canonical/operator/issues/1689)) ### [`v2.21.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2210---30-Apr-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.20.0...2.21.0) #### Features - Ops\[tracing] (with a first-party charm lib) ([#&#8203;1612](https://redirect.github.com/canonical/operator/issues/1612)) - Pebble identities ([#&#8203;1672](https://redirect.github.com/canonical/operator/issues/1672)) - Run deferred events with fresh charm instances ([#&#8203;1631](https://redirect.github.com/canonical/operator/issues/1631)) #### Fixes - Allow TLS 1.2 in ops-tracing ([#&#8203;1705](https://redirect.github.com/canonical/operator/issues/1705)) - Try to fix flaky pebble exec test ([#&#8203;1664](https://redirect.github.com/canonical/operator/issues/1664)) #### Documentation - Add best practice note around using tooling provided by the charmcraft profile ([#&#8203;1700](https://redirect.github.com/canonical/operator/issues/1700)) - Clarify guidance about designing python modules ([#&#8203;1670](https://redirect.github.com/canonical/operator/issues/1670)) - Fix a bug in the k8s tutorial doc about unit test ([#&#8203;1688](https://redirect.github.com/canonical/operator/issues/1688)) - Fix broken link in readme ([#&#8203;1679](https://redirect.github.com/canonical/operator/issues/1679)) - Fix links to juju docs ([#&#8203;1681](https://redirect.github.com/canonical/operator/issues/1681)) - Fix tox command in hacking.md ([#&#8203;1661](https://redirect.github.com/canonical/operator/issues/1661)) - Improve landing page of kubernetes charm tutorial ([#&#8203;1660](https://redirect.github.com/canonical/operator/issues/1660)) #### CI - Add zizmor to static check github workflows ([#&#8203;1656](https://redirect.github.com/canonical/operator/issues/1656)) - Change prerelease setting used to add latest ops and scenario ([#&#8203;1682](https://redirect.github.com/canonical/operator/issues/1682)) - Don't pin release jobs to github environments ([#&#8203;1683](https://redirect.github.com/canonical/operator/issues/1683)) - Don't run tests within the publish job ([#&#8203;1684](https://redirect.github.com/canonical/operator/issues/1684)) - Fix smoke test ([#&#8203;1698](https://redirect.github.com/canonical/operator/issues/1698)) - Post-release versioning, release process update + workflow fix ([#&#8203;1658](https://redirect.github.com/canonical/operator/issues/1658)) - Rename "tox -e fmt" to "tox -e format" ([#&#8203;1668](https://redirect.github.com/canonical/operator/issues/1668)) #### Tests - Fix overly specific test that fails sometimes with tracing ([#&#8203;1695](https://redirect.github.com/canonical/operator/issues/1695)) ### [`v2.20.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2200---31-Mar-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.19.4...2.20.0) #### Features - Add a `remove_revision()` method to `SecretRemoveEvent` and `SecretExpiredEvent` ([#&#8203;1624](https://redirect.github.com/canonical/operator/issues/1624)) - Add `Relation.remote_model` property ([#&#8203;1610](https://redirect.github.com/canonical/operator/issues/1610)) - Efficient implementation of `RelationDataContent.update` ([#&#8203;1586](https://redirect.github.com/canonical/operator/issues/1586)) - Expose the config metadata in `CharmMeta` ([#&#8203;1648](https://redirect.github.com/canonical/operator/issues/1648)) - Add the ability to emit custom events in unit tests ([#&#8203;1589](https://redirect.github.com/canonical/operator/issues/1589)) - Check that the check-infos in `testing.Container` match the plan ([#&#8203;1630](https://redirect.github.com/canonical/operator/issues/1630)) - `ops.testing.State` components are less mutable ([#&#8203;1617](https://redirect.github.com/canonical/operator/issues/1617)) #### Fixes - Assorted fixes for Pebble layer merging in Harness and Scenario ([#&#8203;1627](https://redirect.github.com/canonical/operator/issues/1627)) #### Documentation - Add a docs link to the Harness deprecation warning ([#&#8203;1513](https://redirect.github.com/canonical/operator/issues/1513)) - Add best practices and a "manage charms" how-to ([#&#8203;1615](https://redirect.github.com/canonical/operator/issues/1615)) - Add section about services with long startup time ([#&#8203;1604](https://redirect.github.com/canonical/operator/issues/1604)) - Clarify how to use mounts in `ops.testing.Container` ([#&#8203;1637](https://redirect.github.com/canonical/operator/issues/1637)) - Fix code snippet indentation ([#&#8203;1649](https://redirect.github.com/canonical/operator/issues/1649)) - Fix Scenario example ([#&#8203;1616](https://redirect.github.com/canonical/operator/issues/1616)) - Move hooks-based charm migration guide ([#&#8203;1636](https://redirect.github.com/canonical/operator/issues/1636)) - Putting test into each chapter of the tutorial ([#&#8203;1647](https://redirect.github.com/canonical/operator/issues/1647)) - Refactor how-to unit test according to comments ([#&#8203;1642](https://redirect.github.com/canonical/operator/issues/1642)) - Refactor test docs to 1 explanation and 2 how-tos ([#&#8203;1628](https://redirect.github.com/canonical/operator/issues/1628)) - Remove the <charm-tech@lists.launchpad.net> email address ([#&#8203;1632](https://redirect.github.com/canonical/operator/issues/1632)) - Remove tutorial chapters that are covered by the how-to guide ([#&#8203;1511](https://redirect.github.com/canonical/operator/issues/1511)) - Stack args vertically for long signature lines ([#&#8203;1641](https://redirect.github.com/canonical/operator/issues/1641)) - Testing explanation ([#&#8203;1635](https://redirect.github.com/canonical/operator/issues/1635)) - Unify charm test docs how to ([#&#8203;1639](https://redirect.github.com/canonical/operator/issues/1639)) #### CI - Exclude vault-k8s-operator until the system can handle monorepos ([#&#8203;1650](https://redirect.github.com/canonical/operator/issues/1650)) - Use the latest version of ops-scenario in the compatibility tests ([#&#8203;1608](https://redirect.github.com/canonical/operator/issues/1608)) ### [`v2.19.4`](https://redirect.github.com/canonical/operator/releases/tag/2.19.4): ops 2.19.4 and ops-scenario 7.19.4 Synchronise ops and ops-scenario versions [Compare Source](https://redirect.github.com/canonical/operator/compare/2.19.0...2.19.4) No changes since 2.19.3 and 7.19.3. This is to push packages to PyPI only. **Full Changelog**: <https://github.com/canonical/operator/compare/2.19.3...2.19.4> ### [`v2.19.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2190---27-Feb-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.18.1...2.19.0) #### Features - Expose the Juju version via Model objects ([#&#8203;1563](https://redirect.github.com/canonical/operator/issues/1563)) - Support starting and stopping Pebble checks, and the checks enabled field ([#&#8203;1560](https://redirect.github.com/canonical/operator/issues/1560)) #### Documentation - Update logo and readme by [@&#8203;tmihoc](https://redirect.github.com/tmihoc) ([#&#8203;1571](https://redirect.github.com/canonical/operator/issues/1571)) - Fill out remaining external link placeholders ([#&#8203;1564](https://redirect.github.com/canonical/operator/issues/1564)) - Use noun relation and verb integrate ([#&#8203;1574](https://redirect.github.com/canonical/operator/issues/1574)) - Update ref to charmcraft.yaml reference by [@&#8203;medubelko](https://redirect.github.com/medubelko) ([#&#8203;1580](https://redirect.github.com/canonical/operator/issues/1580)) - Add a how-to for setting open ports ([#&#8203;1579](https://redirect.github.com/canonical/operator/issues/1579)) - Fix links that pointed to earlier Juju docs ([#&#8203;1575](https://redirect.github.com/canonical/operator/issues/1575)) - Update links to Charmcraft docs ([#&#8203;1582](https://redirect.github.com/canonical/operator/issues/1582)) - Small updates to machine charm tutorial ([#&#8203;1583](https://redirect.github.com/canonical/operator/issues/1583)) #### CI - Update list of charms and handle increasing uv usage ([#&#8203;1588](https://redirect.github.com/canonical/operator/issues/1588)) - Handle presence/absence of "static" and "static-charm" envs ([#&#8203;1590](https://redirect.github.com/canonical/operator/issues/1590)) ### [`v2.18.1`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2181---5-Feb-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.18.0...2.18.1) #### Fixes - Ensure that the event snapshot is available when one observer defers and another does not ([#&#8203;1562](https://redirect.github.com/canonical/operator/issues/1562)) - Maintain transaction integrity on first run ([#&#8203;1558](https://redirect.github.com/canonical/operator/issues/1558)) #### Documentation - Set up intersphinx and add links ([#&#8203;1546](https://redirect.github.com/canonical/operator/issues/1546)) ### [`v2.18.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2180---30-Jan-2025) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.17.1...2.18.0) #### Features - Don't store duplicate events in the notice queue ([#&#8203;1372](https://redirect.github.com/canonical/operator/issues/1372)) #### Fixes - Remove ops.main.main deprecation warning, and avoid warnings in action output ([#&#8203;1496](https://redirect.github.com/canonical/operator/issues/1496)) #### Documentation - Use the right ops-scenario for building the docs ([#&#8203;1470](https://redirect.github.com/canonical/operator/issues/1470)) - Go full Diátaxis, ingesting the relevant juju.is/docs/sdk documentation by [@&#8203;tmihoc](https://redirect.github.com/tmihoc) ([#&#8203;1481](https://redirect.github.com/canonical/operator/issues/1481)) - Update boilerplate links ([#&#8203;1515](https://redirect.github.com/canonical/operator/issues/1515)) - Fix broken links and use cross references instead of absolute links ([#&#8203;1519](https://redirect.github.com/canonical/operator/issues/1519)) - Use explicit framework param instead of \*args ([#&#8203;1523](https://redirect.github.com/canonical/operator/issues/1523)) - Add doc style tips to HACKING.md ([#&#8203;1528](https://redirect.github.com/canonical/operator/issues/1528)) - Fix link to Juju docs in Kubernetes charm tutorial ([#&#8203;1529](https://redirect.github.com/canonical/operator/issues/1529)) - Remove the publish badge from the README ([#&#8203;1505](https://redirect.github.com/canonical/operator/issues/1505)) - Add how-to for storing state ([#&#8203;1534](https://redirect.github.com/canonical/operator/issues/1534)) - Improve info about contributing to docs ([#&#8203;1533](https://redirect.github.com/canonical/operator/issues/1533)) - Fix formatting errors in HACKING.md ([#&#8203;1539](https://redirect.github.com/canonical/operator/issues/1539)) #### Continuous Integration - Add support for injecting the latest ops when uv is used ([#&#8203;1477](https://redirect.github.com/canonical/operator/issues/1477)) - Don't cancel other unit tests when one fails ([#&#8203;1471](https://redirect.github.com/canonical/operator/issues/1471)) - Use Concierge to set up the smoke test environments ([#&#8203;1541](https://redirect.github.com/canonical/operator/issues/1541)) - Bump poetry to 2.0 to match downstream ([#&#8203;1542](https://redirect.github.com/canonical/operator/issues/1542)) - Enable the prometheus-k8s revision updates again ([#&#8203;1544](https://redirect.github.com/canonical/operator/issues/1544)) - Include Juju 2.9 in the smoke tests ([#&#8203;1545](https://redirect.github.com/canonical/operator/issues/1545)) #### Testing - Handle warnings generated by our own tests ([#&#8203;1469](https://redirect.github.com/canonical/operator/issues/1469)) - Allow check to fail an additional time when running the test ([#&#8203;1531](https://redirect.github.com/canonical/operator/issues/1531)) ### [`v2.17.1`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2171---28-Nov-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.17.0...2.17.1) #### Fixes - Make `push_path` open in binary mode so it works on non-text files ([#&#8203;1458](https://redirect.github.com/canonical/operator/issues/1458)) #### Documentation - Use `MaintenanceStatus` for local issues ([#&#8203;1397](https://redirect.github.com/canonical/operator/issues/1397)) - Explicitly document that `collect-status` is is run on every hook ([#&#8203;1399](https://redirect.github.com/canonical/operator/issues/1399)) - Use our docs URL for the `ogp:url` properties Sphinx generates ([#&#8203;1411](https://redirect.github.com/canonical/operator/issues/1411)) - Set the `READTHEDOCS` context variable ([#&#8203;1410](https://redirect.github.com/canonical/operator/issues/1410)) - Fix Read the Docs ad placement ([#&#8203;1414](https://redirect.github.com/canonical/operator/issues/1414)) - Clarify where `StoredState` is stored, and the upgrade behaviour ([#&#8203;1416](https://redirect.github.com/canonical/operator/issues/1416)) - Fix copy 'n' paste error in `stop_services` docstring ([#&#8203;1457](https://redirect.github.com/canonical/operator/issues/1457)) #### Continuous Integration - Configure the labels for dependabot PRs ([#&#8203;1407](https://redirect.github.com/canonical/operator/issues/1407)) - Disable the automatic ops\[testing] releasing ([#&#8203;1415](https://redirect.github.com/canonical/operator/issues/1415)) - Use the actual poetry command, rather than manually tweaking the file ([#&#8203;1443](https://redirect.github.com/canonical/operator/issues/1443)) - Fix broken GitHub variable expansion ([#&#8203;1446](https://redirect.github.com/canonical/operator/issues/1446)) - Coverage report generation should also include testing/src/scenario ([#&#8203;1453](https://redirect.github.com/canonical/operator/issues/1453)) - Fix PR title CI job concurrency ([#&#8203;1451](https://redirect.github.com/canonical/operator/issues/1451)) - Adjust the release process to handle publishing ops and ops\[testing] ([#&#8203;1432](https://redirect.github.com/canonical/operator/issues/1432)) - A better way than commenting out external repos ([#&#8203;1463](https://redirect.github.com/canonical/operator/issues/1463)) - Use more descriptive names for the publish workflows ([#&#8203;1464](https://redirect.github.com/canonical/operator/issues/1464)) - Move the XML coverage report to .report ([#&#8203;1465](https://redirect.github.com/canonical/operator/issues/1465)) #### Refactoring - Import the ops\[testing] repository ([#&#8203;1406](https://redirect.github.com/canonical/operator/issues/1406)) - Update linting with the latest ruff ([#&#8203;1441](https://redirect.github.com/canonical/operator/issues/1441)) ### [`v2.17.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2170---26-Sep-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.16.1...2.17.0) #### Features - Optionally install Scenario with `ops[testing]` and expose the names in ops.testing ([#&#8203;1381](https://redirect.github.com/canonical/operator/issues/1381)) - Change ops.main() so that you don't need to `type: ignore` it ([#&#8203;1345](https://redirect.github.com/canonical/operator/issues/1345)) - Expand the secret ID out to the full URI when only given the ID ([#&#8203;1358](https://redirect.github.com/canonical/operator/issues/1358)) - Add a JujuVersion property for Pebble log forwarding to Loki ([#&#8203;1370](https://redirect.github.com/canonical/operator/issues/1370)) - Preemptively raise `InvalidStatusError` instead of waiting for Juju: - Make it an error to call `CollectStatusEvent.add_status` with error or unknown ([#&#8203;1386](https://redirect.github.com/canonical/operator/issues/1386)) - Document and validate settable status values in `_ModelBackend.set_status` ([#&#8203;1354](https://redirect.github.com/canonical/operator/issues/1354)) #### Fixes - Fix type of `StatusBase` subclasses by calling `StatusBase.register` in `__init_subclass__` ([#&#8203;1383](https://redirect.github.com/canonical/operator/issues/1383)) - `Secret.set_info` and `Secret.set_content` can be called in the same hook ([#&#8203;1373](https://redirect.github.com/canonical/operator/issues/1373)) #### Documentation - Add top-level intro and module-level intros ([#&#8203;1320](https://redirect.github.com/canonical/operator/issues/1320)) - Update the links to the Pebble docs ([#&#8203;1362](https://redirect.github.com/canonical/operator/issues/1362)) - Note about repeatedly setting secret value in Juju 3.6 ([#&#8203;1366](https://redirect.github.com/canonical/operator/issues/1366)) - `config-changed` is triggered by Juju trust ([#&#8203;1357](https://redirect.github.com/canonical/operator/issues/1357)) - Typo on `CharmBase` inheritance example by [@&#8203;theofpa](https://redirect.github.com/theofpa) ([#&#8203;1349](https://redirect.github.com/canonical/operator/issues/1349)) - Docs: move Pebble to a separate page ([#&#8203;1392](https://redirect.github.com/canonical/operator/issues/1392)) #### Continuous Integration - Periodically run the unit tests of all GitHub-hosted published charms ([#&#8203;1365](https://redirect.github.com/canonical/operator/issues/1365)) - Update the TIOBE reporting for the changes in coverage calculation ([#&#8203;1367](https://redirect.github.com/canonical/operator/issues/1367)) - Spell-check the code as part of linting ([#&#8203;1388](https://redirect.github.com/canonical/operator/issues/1388)) - Run the smoke tests on a schedule ([#&#8203;1387](https://redirect.github.com/canonical/operator/issues/1387)) #### Testing - Fix tests that leaked environment variables ([#&#8203;1385](https://redirect.github.com/canonical/operator/issues/1385)) #### Refactoring - Move the content of `ops.testing` to `ops._private.harness` ([#&#8203;1369](https://redirect.github.com/canonical/operator/issues/1369)) - Keep the `unittest.mock` names in the 'mock' namespace ([#&#8203;1379](https://redirect.github.com/canonical/operator/issues/1379)) - Deprecate `StatusBase.register` decorator ([#&#8203;1384](https://redirect.github.com/canonical/operator/issues/1384)) #### Chores - Note Juju version on legacy workaround ([#&#8203;1355](https://redirect.github.com/canonical/operator/issues/1355)) - Re-enable test now that Pebble directory permissions are fixed ([#&#8203;1363](https://redirect.github.com/canonical/operator/issues/1363)) - Generate warnings for events that will be removed in Juju 4.0 ([#&#8203;1374](https://redirect.github.com/canonical/operator/issues/1374)) ### [`v2.16.1`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2161---5-Sep-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.16.0...2.16.1) #### Fix - Don't alter os.environ when creating a Harness ([#&#8203;1359](https://redirect.github.com/canonical/operator/issues/1359)) ### [`v2.16.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2160---29-Aug-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.15.0...2.16.0) #### Features - Add the description field to SecretInfo in ([#&#8203;1338](https://redirect.github.com/canonical/operator/issues/1338)) #### Refactor - Parse JUJU\_\* environment variables in one place in ([#&#8203;1313](https://redirect.github.com/canonical/operator/issues/1313)) #### Fixes - Fix reading Juju secret expiry dates in ([#&#8203;1317](https://redirect.github.com/canonical/operator/issues/1317)) - Correct the signature of .events() in ([#&#8203;1342](https://redirect.github.com/canonical/operator/issues/1342)) #### Documentation - Security policy change to only support each active major release in ([#&#8203;1297](https://redirect.github.com/canonical/operator/issues/1297)) - Add Juju version markers in ([#&#8203;1311](https://redirect.github.com/canonical/operator/issues/1311)) - Use Sphinx 8 in ([#&#8203;1303](https://redirect.github.com/canonical/operator/issues/1303)) - Live reload documentation with sphinx-autobuild in ([#&#8203;1323](https://redirect.github.com/canonical/operator/issues/1323)) #### Tests - Update the smoke test series/bases in ([#&#8203;1318](https://redirect.github.com/canonical/operator/issues/1318)) - Run pytest in parallel with pytest xdist in ([#&#8203;1319](https://redirect.github.com/canonical/operator/issues/1319)) - Bump Pyright to 1.1.377 in ([#&#8203;1332](https://redirect.github.com/canonical/operator/issues/1332)) - Run tests on Python 3.12 and the install test on Python 3.13 in ([#&#8203;1315](https://redirect.github.com/canonical/operator/issues/1315)) #### CI - Add a workflow that runs the TIOBE quality checks in ([#&#8203;1301](https://redirect.github.com/canonical/operator/issues/1301)) - Allow executing the TIOBE workflow manually in ([#&#8203;1321](https://redirect.github.com/canonical/operator/issues/1321)) - Make Pyright report unnecessary type ignore comments in ([#&#8203;1333](https://redirect.github.com/canonical/operator/issues/1333)) - Enable linting of docs/custom\_conf.py in ([#&#8203;1330](https://redirect.github.com/canonical/operator/issues/1330)) ### [`v2.15.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2150---22-Jul-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.14.1...2.15.0) #### Features - Add support for Pebble check-failed and check-recovered events ([#&#8203;1281](https://redirect.github.com/canonical/operator/issues/1281)) #### Fixes - Pass secret data to Juju via files, rather than as command-line values ([#&#8203;1290](https://redirect.github.com/canonical/operator/issues/1290)) fixing CVE-2024-41129 - Include checks and log targets when merging layers in ops.testing ([#&#8203;1268](https://redirect.github.com/canonical/operator/issues/1268)) #### Documentation - Clarify distinction between maintenance and waiting status ([#&#8203;1148](https://redirect.github.com/canonical/operator/issues/1148)) #### CI - Bump the Go version to match Pebble ([#&#8203;1285](https://redirect.github.com/canonical/operator/issues/1285)) - Run ruff format over charm pin update code ([#&#8203;1278](https://redirect.github.com/canonical/operator/issues/1278)) - Bump certifi from 2024.2.2 to 2024.7.4 in /docs ([#&#8203;1282](https://redirect.github.com/canonical/operator/issues/1282)) - Update charm pins ([#&#8203;1269](https://redirect.github.com/canonical/operator/issues/1269)) ### [`v2.14.1`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2141---27-Jun-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.14.0...2.14.1) #### Fixes - Add connect timeout for exec websockets to avoid hanging ([#&#8203;1247](https://redirect.github.com/canonical/operator/issues/1247)) - Adjust Harness secret behaviour to align with Juju ([#&#8203;1248](https://redirect.github.com/canonical/operator/issues/1248)) #### Tests - Fix TypeError when running test.pebble\_cli ([#&#8203;1245](https://redirect.github.com/canonical/operator/issues/1245)) - Properly clean up after running setup\_root\_logging in test\_log ([#&#8203;1259](https://redirect.github.com/canonical/operator/issues/1259)) - Verify that defer() is not usable on stop,remove,secret-expired,secret-rotate ([#&#8203;1233](https://redirect.github.com/canonical/operator/issues/1233)) #### Documentation - Fix HACKING.md link on PyPI, and internal links ([#&#8203;1261](https://redirect.github.com/canonical/operator/issues/1261), [#&#8203;1236](https://redirect.github.com/canonical/operator/issues/1236)) - Add a section to HACKING.md on PR titles (commit messages to main) ([#&#8203;1252](https://redirect.github.com/canonical/operator/issues/1252)) - Add release step to update pinned charm tests ([#&#8203;1213](https://redirect.github.com/canonical/operator/issues/1213)) - Add a security policy ([#&#8203;1266](https://redirect.github.com/canonical/operator/issues/1266)) #### CI - Only run tests once on push to PR ([#&#8203;1242](https://redirect.github.com/canonical/operator/issues/1242)) - Validate PR title against conventional commit rules in ([#&#8203;1262](https://redirect.github.com/canonical/operator/issues/1262)) - Only update ops, not all dependencies, in charm tests in ([#&#8203;1275](https://redirect.github.com/canonical/operator/issues/1275)) - Add artefact attestation ([#&#8203;1267](https://redirect.github.com/canonical/operator/issues/1267)) ### [`v2.14.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2140---29-May-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.13.0...2.14.0) #### Features - Add a `__str__` to ActionFailed, for better unexpected failure output ([#&#8203;1209](https://redirect.github.com/canonical/operator/issues/1209)) #### Fixes - The `other` argument to `RelatationDataContent.update(...)` should be optional ([#&#8203;1226](https://redirect.github.com/canonical/operator/issues/1226)) #### Documentation - Use the actual emoji character rather than GitHub markup, to show properly on PyPI ([#&#8203;1221](https://redirect.github.com/canonical/operator/issues/1221)) - Clarify that SecretNotFound may be raised for permission errors ([#&#8203;1231](https://redirect.github.com/canonical/operator/issues/1231)) #### Refactoring - Refactor tests to pytest style ([#&#8203;1199](https://redirect.github.com/canonical/operator/issues/1199), [#&#8203;1200](https://redirect.github.com/canonical/operator/issues/1200), [#&#8203;1203](https://redirect.github.com/canonical/operator/issues/1203), [#&#8203;1206](https://redirect.github.com/canonical/operator/issues/1206)) - Use `ruff` formatter and reformat all code ([#&#8203;1224](https://redirect.github.com/canonical/operator/issues/1224)) - Don't use f-strings in logging calls ([#&#8203;1227](https://redirect.github.com/canonical/operator/issues/1227), 1234) ### [`v2.13.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2130---30-Apr-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.12.0...2.13.0) #### Features - Added support for user secrets in Harness ([#&#8203;1176](https://redirect.github.com/canonical/operator/issues/1176)) #### Fixes - Corrected the model config types ([#&#8203;1183](https://redirect.github.com/canonical/operator/issues/1183)) - In Harness, only inspect the source file if it will be used - this fixed using Harness in a Python REPL ([#&#8203;1181](https://redirect.github.com/canonical/operator/issues/1181)) #### Documentation - Updated publishing a release in HACKING.md ([#&#8203;1173](https://redirect.github.com/canonical/operator/issues/1173)) - Added `tox -e docs-deps` to compile requirements.txt ([#&#8203;1172](https://redirect.github.com/canonical/operator/issues/1172)) - Updated doc to note deprecated functionality in ([#&#8203;1178](https://redirect.github.com/canonical/operator/issues/1178)) #### Tests - First stage of converting tests from unittest to pytest ([#&#8203;1191](https://redirect.github.com/canonical/operator/issues/1191), [#&#8203;1192](https://redirect.github.com/canonical/operator/issues/1192), [#&#8203;1196](https://redirect.github.com/canonical/operator/issues/1196), [#&#8203;1193](https://redirect.github.com/canonical/operator/issues/1193), [#&#8203;1195](https://redirect.github.com/canonical/operator/issues/1195)) - Added `pebble.CheckInfo.change_id` field ([#&#8203;1197](https://redirect.github.com/canonical/operator/issues/1197)) ### [`v2.12.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2120---28-Mar-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.11.0...2.12.0) #### Features - Added `Model.get_cloud_spec` which uses the `credential-get` hook command to get details of the cloud where the model is deployed ([#&#8203;1152](https://redirect.github.com/canonical/operator/issues/1152)) #### Fixes - Update Pebble Notices `get_notices` parameter name to `users=all` (previously `select=all`) ([#&#8203;1146](https://redirect.github.com/canonical/operator/issues/1146)) - Warn when an observer weakref is lost ([#&#8203;1142](https://redirect.github.com/canonical/operator/issues/1142)) - More robust validation of observer signatures ([#&#8203;1147](https://redirect.github.com/canonical/operator/issues/1147)) - Change `Model.relation.app` type from `Application|None` to `Application` ([#&#8203;1151](https://redirect.github.com/canonical/operator/issues/1151)) - Fix attaching storage in Harness before `begin` ([#&#8203;1150](https://redirect.github.com/canonical/operator/issues/1150)) - Fixed an issue where `pebble.Client.exec` might leak a `socket.timeout` (`builtins.TimeoutError`) exception ([#&#8203;1155](https://redirect.github.com/canonical/operator/issues/1155)) - Add a consistency check and default network to `add_relation` ([#&#8203;1138](https://redirect.github.com/canonical/operator/issues/1138)) - Don't special-case `get_relation` behaviour in `leader-elected` ([#&#8203;1156](https://redirect.github.com/canonical/operator/issues/1156)) - Accept `type: secret` for config options ([#&#8203;1167](https://redirect.github.com/canonical/operator/issues/1167)) #### Refactoring - Refactor main.py, creating a new `_Manager` class ([#&#8203;1085](https://redirect.github.com/canonical/operator/issues/1085)) #### Documentation - Use "integrate with" rather than "relate to" ([#&#8203;1145](https://redirect.github.com/canonical/operator/issues/1145)) - Updated code examples in the docstring of `ops.testing` from unittest to pytest style ([#&#8203;1157](https://redirect.github.com/canonical/operator/issues/1157)) - Add peer relation details in `Harness.add_relation` docstring ([#&#8203;1168](https://redirect.github.com/canonical/operator/issues/1168)) - Update Read the Docs Sphinx Furo theme to use Canonical's latest styling ([#&#8203;1163](https://redirect.github.com/canonical/operator/issues/1163), [#&#8203;1164](https://redirect.github.com/canonical/operator/issues/1164), [#&#8203;1165](https://redirect.github.com/canonical/operator/issues/1165)) ### [`v2.11.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2110---29-Feb-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.10.0...2.11.0) #### Features - `StopEvent`, `RemoveEvent`, and all `LifecycleEvent`s are no longer deferrable, and will raise a `RuntimeError` if `defer()` is called on the event object ([#&#8203;1122](https://redirect.github.com/canonical/operator/issues/1122)) - Add `ActionEvent.id`, exposing the JUJU\_ACTION\_UUID environment variable ([#&#8203;1124](https://redirect.github.com/canonical/operator/issues/1124)) - Add support for creating `pebble.Plan` objects by passing in a `pebble.PlanDict`, the ability to compare two `Plan` objects with `==`, and the ability to create an empty Plan with `Plan()` ([#&#8203;1134](https://redirect.github.com/canonical/operator/issues/1134)) #### Fixes - The remote app name (and its databag) is now consistently available in relation-broken events ([#&#8203;1130](https://redirect.github.com/canonical/operator/issues/1130)) #### Documentation - Improve the `can_connect()` API documentation ([#&#8203;1123](https://redirect.github.com/canonical/operator/issues/1123)) #### Tooling - Use ruff for linting ([#&#8203;1120](https://redirect.github.com/canonical/operator/issues/1120), [#&#8203;1139](https://redirect.github.com/canonical/operator/issues/1139), [#&#8203;1114](https://redirect.github.com/canonical/operator/issues/1114)) ### [`v2.10.0`](https://redirect.github.com/canonical/operator/blob/HEAD/CHANGES.md#2100---31-Jan-2024) [Compare Source](https://redirect.github.com/canonical/operator/compare/2.9.0...2.10.0) #### Features - Add support for Pebble Notices (`PebbleCustomNoticeEvent`, `get_notices`, and so on) ([#&#8203;1086](https://redirect.github.com/canonical/operator/issues/1086), [#&#8203;1100](https://redirect.github.com/canonical/operator/issues/1100)) - Add `Relation.active`, and excluded inactive relations from `Model.relations` ([#&#8203;1091](https://redirect.github.com/canonical/operator/issues/1091)) - Add full support for charm metadata v2 (in particular, extended `ContainerMeta`, and various info links in `CharmMeta`) ([#&#8203;1106](https://redirect.github.com/canonical/operator/issues/1106)) - When handling actions, print uncaught exceptions to stderr ([#&#8203;1087](https://redirect.github.com/canonical/operator/issues/1087)) - Raise `ModelError` in Harness if an invalid status is set ([#&#8203;1107](https://redirect.github.com/canonical/operator/issues/1107)) #### Fixes - Add Pebble log targets and checks to testing plans ([#&#8203;1111](https://redirect.github.com/canonical/operator/issues/1111)) - CollectStatusEvent is now a LifecycleEvent ([#&#8203;1080](https://redirect.github.com/canonical/operator/issues/1080)) #### Documentation - Update README to reflect charmcraft init changes ([#&#8203;1089](https://redirect.github.com/canonical/operator/issues/1089)) - Add information on pushing locked/bind-mount files ([#&#8203;1094](https://redirect.github.com/canonical/operator/issues/1094)) - Add instructions for using a custom version of ops to HACKING ([#&#8203;1092](https://redirect.github.com/canonical/operator/issues/1092)) #### Tooling - Use pyproject.toml for building ([#&#8203;1068](https://redirect.github.com/canonical/operator/issues/1068)) - Update to the latest version of Pyright ([#&#8203;1105](https://redirect.github.com/canonical/operator/issues/1105)) ### [`v2.9.0`](https://re > ✂ **Note** > > PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (in timezone Etc/UTC) - Branch creation - "every weekend" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/canonical/charmcraft). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUFI6IERlcGVuZGVuY2llcyJdfQ==-->

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Closed without merging. The ops dependency update to v2.23.4 was rejected. Renovate will ignore this update and wait for a newer version. No reviewers approved it, and CI checks showed failures.
qwen/qwen3.6-35b-a3b
Staleness: 10
Complexity: 25
Confidence: 85
needs review Updates the ops dependency to v2.23.4 across multiple version constraints. Currently pending maintainer review with some CI checks failing.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 10
Confidence: 90
needs review Updates the ops dependency to v2.23.4 across multiple version constraints. Generated by Renovate, currently pending CI completion and maintainer review. Automerge is disabled.
qwen3.6-35b-a3b-mtp-q6
Staleness: 0
Complexity: 5
Confidence: 95
needs review Updates the ops dependency to v2.23.2 across multiple version constraints. Created by Renovate bot, all CI checks are passing, awaiting maintainer review and manual merge as automerge is disabled.

Update history

Date Change
closed
updated
updated
created

Related issues

Issue Project State Summary Similarity
#2561 build(deps): update dependency ops to v2.15.0 [security] (hotfix/4.0) - autoclosed charmcraft closed Dependency update to ops v2.15.0 to resolve CVE-2024-41129 CLI secret leakage. The pull request was autoclosed by Renovate, indicating it was superseded or already addressed.
75%
#174 build(deps): update dependency coverage to v7.9.1 (main) craft-archives closed Closed without merging. The coverage dependency update to v7.9.1 was abandoned. Renovate will ignore this specific update and generate a new PR for a future version.
75%
#1835 build(deps): update dependency types-requests to <2.32.0.20240713 (main) charmcraft closed Closed without merging. The types-requests dependency update was manually abandoned. Renovate will skip this specific version and automatically generate a replacement PR when a newer release becomes available.
75%
#1041 chore(deps): update dependency ops to v2.2.0 - autoclosed charmcraft closed Renovate automatically closed the PR updating ops to v2.2.0. No manual review or merge occurred, likely due to staleness or a newer update superseding it.
75%
#2155 build(deps): update dependency pydantic to v2.10.6 (main) charmcraft closed Closed without merging. The pydantic v2.10.6 update was rejected. Renovate will ignore this version and automatically generate a new pull request when a newer release is available.
75%
#2562 build(deps): update dependency ops to v2.15.0 [security] (hotfix/4.1) - autoclosed charmcraft closed Updated ops to v2.15.0 to patch CVE-2024-41129, preventing secrets from leaking via CLI arguments in logs. The dependency update resolves the security vulnerability. The pull request was autoclosed by Renovate.
74%
#878 build(deps): update dependency canonical-sphinx to v0.2.0 (main) craft-parts closed Closed without merging. The dependency update for canonical-sphinx from 0.1.0 to 0.2.0 was rejected. Renovate will ignore this version and generate a new PR for future releases.
74%
#802 build(deps): update dependency coverage to v7.9.2 (main) craft-application closed Closed without merging. The automated dependency update for coverage to v7.9.2 was rejected, so Renovate will ignore this version and generate a new PR for the next release.
74%
#2532 build(deps): update github actions (main) charmcraft closed Closed without merging due to failing CI checks and unresolved review comments. The dependency updates were not applied and were likely superseded by a newer Renovate PR.
73%
#771 build(deps): update dependency coverage to v7.8.2 (main) craft-application closed Updating the coverage dependency to v7.8.2 was abandoned when the repository owner closed the request without merging. Renovate will ignore this update and await a newer version.
73%