Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DM-40676: Prepare 4.4.0 release #199

Merged
merged 1 commit into from
Sep 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,25 @@ Changes for the upcoming release can be found in [changelog.d](https://github.co

<!-- scriv-insert-here -->

<a id='changelog-4.4.0'></a>
## 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.

<a id='changelog-4.3.1'></a>
## 4.3.1 (2023-07-17)

Expand Down
3 changes: 0 additions & 3 deletions changelog.d/20230830_155927_rra_DM_40567.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20230905_084310_rra_DM_40628.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20230905_090034_rra_DM_40638.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20230905_090226_rra_DM_40638a.md

This file was deleted.

4 changes: 0 additions & 4 deletions changelog.d/20230907_110606_rra_DM_40638b.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20230907_135241_rra_DM_40638b.md

This file was deleted.