diff --git a/CHANGELOG.md b/CHANGELOG.md index 41c61976..d0ce9a2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,25 @@ Changes for the upcoming release can be found in [changelog.d](https://github.co + +## 4.4.0 (2023-09-07) + +### New features + +- Add a `safir.click.display_help` helper function that implements a `help` command for Click-based command-line interfaces, with support for nested subcommands. +- Add a new `safir.asyncio.AsyncMultiQueue` data structure, which is an asyncio multi-reader queue that delivers all messages to each reader independently. +- Add `read_` methods for the Kubernetes object types for which the mock provided `create_` methods (`NetworkPolicy` and `PersistentVolumeClaim`). + +### Bug fixes + +- Fix typing of the `safir.asyncio.run_with_asyncio` decorator so that it doesn't mask the type of the underlying function. +- Kubernetes objects included in events are now serialized properly using the Kubernetes camel-case field names instead of the Python snake-case names. In addition to matching Kubernetes behavior more closely, this allows a watch configured with the Kubernetes model type to deserialize the object in the `object` key of the event dictionary. The type must be passed explicitly to the `Watch` constructor, since kubernetes_asyncio's type autodetection does not work with Safir's mock. +- `safir.testing.kubernetes.patch_kubernetes` no longer mocks the entire `ApiClient` class since it is required for deserialization of objects in Kubernetes events. It instead mocks the `request` method of that class for safety, to prevent any network requests to Kubernetes clusters when Kubernetes is mocked. + +### Other changes + +- Safir now uses the [Ruff](https://beta.ruff.rs/docs/) linter instead of flake8 and isort. + ## 4.3.1 (2023-07-17) diff --git a/changelog.d/20230830_155927_rra_DM_40567.md b/changelog.d/20230830_155927_rra_DM_40567.md deleted file mode 100644 index 0783dcdc..00000000 --- a/changelog.d/20230830_155927_rra_DM_40567.md +++ /dev/null @@ -1,3 +0,0 @@ -### New features - -- Add a `safir.click.display_help` helper function that implements a `help` command for Click-based command-line interfaces, with support for nested subcommands. diff --git a/changelog.d/20230905_084310_rra_DM_40628.md b/changelog.d/20230905_084310_rra_DM_40628.md deleted file mode 100644 index 806c2a10..00000000 --- a/changelog.d/20230905_084310_rra_DM_40628.md +++ /dev/null @@ -1,3 +0,0 @@ -### Other changes - -- Safir now uses the [Ruff](https://beta.ruff.rs/docs/) linter instead of flake8 and isort. diff --git a/changelog.d/20230905_090034_rra_DM_40638.md b/changelog.d/20230905_090034_rra_DM_40638.md deleted file mode 100644 index 22d5b627..00000000 --- a/changelog.d/20230905_090034_rra_DM_40638.md +++ /dev/null @@ -1,3 +0,0 @@ -### New features - -- Add new `safir.asyncio.AsyncMultiQueue` data structure, which is an asyncio multi-reader queue that delivers all messages to each reader independently. diff --git a/changelog.d/20230905_090226_rra_DM_40638a.md b/changelog.d/20230905_090226_rra_DM_40638a.md deleted file mode 100644 index 5f36229d..00000000 --- a/changelog.d/20230905_090226_rra_DM_40638a.md +++ /dev/null @@ -1,3 +0,0 @@ -### Bug fixes - -- Fix typing of the `safir.asyncio.run_with_asyncio` decorator so that it doesn't mask the type of the underlying function. diff --git a/changelog.d/20230907_110606_rra_DM_40638b.md b/changelog.d/20230907_110606_rra_DM_40638b.md deleted file mode 100644 index c547e30f..00000000 --- a/changelog.d/20230907_110606_rra_DM_40638b.md +++ /dev/null @@ -1,4 +0,0 @@ -### Bug fixes - -- Kubernetes objects included in events are now serialized properly using the Kubernetes camel-case field names instead of the Python snake-case names. In addition to matching Kubernetes behavior more closely, this allows a watch configured with the Kubernetes model type to deserialize the object in the `object` key of the event dictionary. The type must be passed explicitly to the `Watch` constructor, since kubernetes_asyncio's type autodetection does not work with Safir's mock. -- `safir.testing.kubernetes.patch_kubernetes` no longer mocks the entire `ApiClient` class since it is required for deserialization of objects in Kubernetes events. It instead mocks the `request` method of that class for safety, to prevent any network requests to Kubernetes clusters when Kubernetes is mocked. diff --git a/changelog.d/20230907_135241_rra_DM_40638b.md b/changelog.d/20230907_135241_rra_DM_40638b.md deleted file mode 100644 index c18fb365..00000000 --- a/changelog.d/20230907_135241_rra_DM_40638b.md +++ /dev/null @@ -1,3 +0,0 @@ -### New features - -- Add `read_` methods for the Kubernetes object types for which the mock provided `create_` methods (`NetworkPolicy` and `PersistentVolumeClaim`).