Frequenz Client Base Library Release Notes
Summary
<!-- Here goes a general summary of what this release is about -->
Upgrading
- You should now install the dependency using `frequenz-client-base[grpcio]` (or `frequenz-client-base[grpclib]`) if you want to migrate to `grpclib`).
- `GrpcStreamBroadcaster`'s `stream_method` callback now should return an `AsyncIterator` instead of a `grpc.aio.UnaryStreamCall`, this is so it is compatible with both `grpcio` and `grpclib`. Normally no changes should be needed, as a `grpc.aio.UnaryStreamCall` should be a `AsyncIterator`, but since `grpcio` doesn't have correct type hints, you might need to adjust the `cast()` if you are using one.
New Features
- `GrpcStreamBroadcaster` is now compatible with both `grpcio` and `grpclib` implementations of gRPC. Just install `frequenz-client-base[grpcio]` or `frequenz-client-base[grpclib]` to use the desired implementation and everything should work as expected.
- A new module `channel` with a function to parse URIs to create `grpclib` client `Channel` instances.
Bug Fixes
- Fixed retrying for `GrpcStreamBroadcaster` when the retry interval is set to 0 (before it would stop retrying if the interval was set to 0).
What's Changed
* Clear RELEASE_NOTES.md by shsms in https://github.com/frequenz-floss/frequenz-client-base-python/pull/36
* Bump types-protobuf from 4.24.0.20240129 to 4.24.0.20240311 by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/39
* Bump nox from 2023.4.22 to 2024.3.2 by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/38
* Update protobuf requirement from <5,>=4.21.6 to >=4.21.6,<6 by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/40
* Bump the optional group with 10 updates by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/43
* Bump the required group with 7 updates by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/44
* Bump types-protobuf from 4.24.0.20240311 to 5.26.0.20240422 by dependabot in https://github.com/frequenz-floss/frequenz-client-base-python/pull/45
* Remove TODOs by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/46
* Bump repo-config to v0.9.2 by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/47
* Fix the condition to run the `nox-(cross-arch-)?all` jobs by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/48
* ci: Fix pip cache post step by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/50
* Make `GrpcStreamBroadcaster` compatible with both `grpcio` and `grpclib` by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/49
* Fix `GrpcStreamBroadcaster` retry with a 0 interval by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/52
* Add parsing of gRPC channel URIs by llucax in https://github.com/frequenz-floss/frequenz-client-base-python/pull/51
**Full Changelog**: https://github.com/frequenz-floss/frequenz-client-base-python/compare/v0.3.0...v0.4.0