Skip to content

Update frequenz-client-common requirement from <0.4.0,>=0.3.8 to >=0.3.8,<0.5.0 - #309

Open
dependabot[bot] wants to merge 1 commit into
v1.x.xfrom
dependabot/pip/frequenz-client-common-gte-0.3.8-and-lt-0.5.0
Open

dependabot[bot] wants to merge 1 commit into
v1.x.xfrom
dependabot/pip/frequenz-client-common-gte-0.3.8-and-lt-0.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 1, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on frequenz-client-common to permit the latest version.

Release notes

Sourced from frequenz-client-common's releases.

v0.4.0

Frequenz Client Common Library Release Notes

Summary

This breaking release removes deprecated compatibility modules and symbols, and implicit enum conversions.

Upgrading

[!NOTE] We recommend upgrading first to v0.3.8 and remove all deprecation warnings (and implicit conversions of enum values to protobuf messages) before upgrading to v0.4.0.

By doing so you'll be guided by the deprecation warnings and when you are done, upgrading to v0.4.0 should imply not extra work.

  • Passing enum values directly to build protobuf messages is not longer supported, you need to call the conversion functions xxx_(from|to)_proto_v1alpha8() explicitly.
  • Replace frequenz.client.common.metric.Metric with frequenz.client.common.metrics.Metric.
  • Replace frequenz.client.common.microgrid.components imports with frequenz.client.common.microgrid.electrical_components imports.
  • Replace frequenz.client.common.enum_proto.enum_from_proto with frequenz.client.common.proto.enum_from_proto.
  • Replace frequenz.client.common.metrics.proto conversion imports with frequenz.client.common.metrics.proto.v1alpha8 imports.
  • Replace PaginationInfo.from_proto(), PaginationInfo.to_proto(), and PaginationInfo.to_proto_v1alpha8() with frequenz.client.common.pagination.proto.v1alpha8 conversion functions.
  • Replace frequenz.client.common.pagination.Info with frequenz.client.common.pagination.PaginationInfo.
  • Use API-provided v1alpha8 pagination protobuf messages directly instead of frequenz.client.common.pagination.Params.

What's Changed

Full Changelog: frequenz-floss/frequenz-client-common-python@v0.3.8...v0.4.0

Changelog

Sourced from frequenz-client-common's changelog.

Frequenz Client Common Library Release Notes

[!IMPORTANT] This release adopted frequenz.core.typing.FloatInt, a type alias for float | int, for annotations that may contain either floating-point or integer values.

PEP 484's numeric tower makes int assignable wherever float is annotated, while at runtime isinstance(1, float) is False — so a plain float annotation silently admits values that crash match … case float(): arms and float-only methods like hex(). The library now annotates floats with FloatInt instead. See FloatInt documentation for details.

Summary

[!NOTE] Despite the patch version number, this is a huge release: 58 pull requests and over 320 commits, adding about 6,000 lines to the library, 9,000 lines of tests and 1,800 lines of documentation. It realizes the new library design while keeping backwards compatibility with v0.4.0; the remaining (breaking) cleanup of everything deprecated here will follow in v0.5.0.

The release brings the wrappers for the Microgrid and Assets APIs (Microgrid, Location, Lifetime, and the whole ElectricalComponent class hierarchy with its connections) and settles how invalid wire data is handled: conversion functions no longer raise or report issues through side channels, they return an Invalid* representation instead, and safe get_*() accessors raise clear exceptions. Every UNSPECIFIED enum member, the electrical component category and type enums, and the *_with_issues() and single-return converters they replace are deprecated and scheduled for removal in v0.5.0.

It also introduces 3 new guides in the documentation: a User Guide for users of the wrapper types, a Client Developer Guide for frequenz-client-* library authors, and a Wrapping Guide for anyone designing a wrapper.

There are a few intentional hard breaks too, all listed in the Upgrading section: MetricSample.bounds became bounds_set, MetricSample.sample_time became sample_time2, MetricConnection.name is no longer optional, and some constructors that silently accepted invalid values now raise.

Upgrading

  • frequenz.client.common.microgrid.components.ComponentId is restored as a deprecated compatibility class. It keeps its historical import path and remains a distinct type from ElectricalComponentId. This restores only ComponentId, not the removed ComponentCategory, ComponentStateCode or ComponentErrorCode symbols. The v0.4.0 release remains incompatible with users of the removed import path. Removal will be coordinated with downstream migration rather than tied automatically to v0.5.0.

  • frequenz.client.common.microgrid.electrical_components.ElectricalComponentId now renders with the prefix ECID instead of CID (for example, ECID42 instead of CID42).

    This is a display-only change.

    Anyone who adopted v0.4.0 and logs or displays an ElectricalComponentId will see ECID42 where they previously saw CID42. No code changes are needed, only an update to any log-parsing rules or UI labels that checked for the CID prefix.

  • The frequenz.client.common.microgrid.electrical_components.ElectricalComponentCategory enum is now deprecated and will be removed in a future release.

    Accessing any member of this enum will emit a DeprecationWarning. Users are encouraged to switch to the ElectricalComponent class hierarchy (using match expressions or isinstance()) to identify components.

    Client implementers: To convert a component class to the protobuf enum values the server expects, use the new electrical_component_class_to_proto() / electrical_component_class_from_proto() converters (see New Features).

    For example, instead of:

    def filter_by(category: ElectricalComponentCategory) -> ...:
        ...
    

    Use:

    def filter_by(component: ElectricalComponentTypes | type[ConvertibleElectricalComponentTypes]) -> ...:
        category_value, sub_type_value = electrical_component_class_to_proto(component)
        ...
    

    The related proto-layer converters (electrical_component_category_to_proto, electrical_component_category_from_proto) are also deprecated.

... (truncated)

Commits
  • cef0ee2 Prepare release notes for release v0.4.0 (#199)
  • 1553b17 Prepare release notes for release v0.4.0
  • 82574d3 Remove deprecated symbols (#196)
  • 3b8b45a Update release notes
  • 0772f7d Remove metrics proto shim exports
  • 5e4cb7d Remove deprecated enum proto module
  • 788216c Remove deprecated pagination shims
  • b58f272 Remove deprecated electrical component methods
  • 0c8b124 Remove deprecated component module
  • 96a3585 Remove deprecated metric module
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [frequenz-client-common](https://github.com/frequenz-floss/frequenz-client-common-python) to permit the latest version.
- [Release notes](https://github.com/frequenz-floss/frequenz-client-common-python/releases)
- [Changelog](https://github.com/frequenz-floss/frequenz-client-common-python/blob/v0.x.x/RELEASE_NOTES.md)
- [Commits](frequenz-floss/frequenz-client-common-python@v0.3.8...v0.4.0)

---
updated-dependencies:
- dependency-name: frequenz-client-common
  dependency-version: 0.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added part:tooling Affects the development tooling (CI, deployment, dependency management, etc.) type:tech-debt Improves the project without visible changes for users labels Oct 1, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner October 1, 2026 04:54
@dependabot dependabot Bot added the part:tooling Affects the development tooling (CI, deployment, dependency management, etc.) label Oct 1, 2026
@dependabot
dependabot Bot removed the request for review from a team October 1, 2026 04:54
@dependabot dependabot Bot added the type:tech-debt Improves the project without visible changes for users label Oct 1, 2026
@github-actions github-actions Bot added the part:dispatcher Affects the high-level dispatcher interface label Oct 1, 2026
@frequenz-auto-dependabot frequenz-auto-dependabot Bot added the tool:auto-merged PR was auto-merged by automation label Oct 1, 2026
@frequenz-auto-dependabot
frequenz-auto-dependabot Bot added this pull request to the merge queue Oct 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 1, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

part:dispatcher Affects the high-level dispatcher interface part:tooling Affects the development tooling (CI, deployment, dependency management, etc.) tool:auto-merged PR was auto-merged by automation type:tech-debt Improves the project without visible changes for users

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants