Skip to content

v1.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:58
· 13 commits to v1.x.x since this release
Immutable release. Only release title and notes can be modified.
v1.4.0
96e40b2

Frequenz Core Library Release Notes

Upgrading

  • Interval's type parameter no longer includes None. The exported type variable LessThanComparableOrNoneT (bound to LessThanComparable | None) was deprecated and replaced with LessThanComparableT (bound to LessThanComparable). None is still accepted as a value for start / end to indicate an unbounded side, but it is treated purely as bound metadata rather than a value in the interval's comparable space.

    Migration:

    • Interval[int | None]Interval[int]
    • Interval[LessThanComparable | None]Interval[LessThanComparable]
    • LessThanComparableOrNoneT (importable name) → LessThanComparableT

    Note that explicitly using Interval[int | None] still works, as (int | None) | None is equivalent to int | None, even when it is no longer needed nor recommended. Old code will mostly work, but there is one soft breaking change: None in some_interval and None in some_interval_set is now a type-check error at call sites, matching the design intent that None is a bound marker and never a member value.

New Features

  • Added FloatInt, a type alias for float | int.

    PEP 484's numeric tower makes int assignable wherever float is annotated, while at runtime isinstance(1, float) is False. A plain float annotation therefore silently admits values that break match … case float(): arms and float-only methods like hex().

    Annotate with FloatInt instead of a plain float: the alias docstring documents the trap in detail, including the inherent bool ⊂ int leak.

  • is_close_to_zero() now annotates its value and abs_tol parameters as FloatInt. This is a pure widening, int arguments were always accepted by type checkers, the annotation just didn't admit it.

What's Changed

  • Clear release notes by @llucax in #101
  • Bump pytest-asyncio from 1.1.0 to 1.2.0 by @dependabot[bot] in #105
  • Bump actions/labeler from 5.0.0 to 6.0.1 by @dependabot[bot] in #102
  • Bump the patch group with 3 updates by @dependabot[bot] in #103
  • Bump the minor group across 1 directory with 8 updates by @dependabot[bot] in #107
  • Bump pydoclint from 0.6.11 to 0.7.3 by @dependabot[bot] in #106
  • Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #109
  • Add auto-depenabot workflow by @llucax in #122
  • Use pull_request_target trigger instead of pull_request by @llucax in #124
  • Bump the auto-approve action to support pull_request_target by @llucax in #125
  • Bump pydoclint from 0.7.3 to 0.8.3 by @dependabot[bot] in #117
  • Bump the patch group across 1 directory with 2 updates by @dependabot[bot] in #120
  • Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #115
  • Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #108
  • Bump the minor group across 1 directory with 6 updates by @dependabot[bot] in #123
  • Bump actions/checkout from 5 to 6 by @dependabot[bot] in #116
  • Bump nox from 2025.5.1 to 2026.2.9 by @dependabot[bot] in #128
  • Bump setuptools from 80.9.0 to 82.0.0 by @dependabot[bot] in #129
  • Bump async-solipsism from 0.8 to 0.9 by @dependabot[bot] in #132
  • Bump mkdocstrings[python] from 0.30.1 to 1.0.3 by @dependabot[bot] in #133
  • Bump pytest-asyncio from 1.2.0 to 1.3.0 by @dependabot[bot] in #131
  • Update dependabot-auto-approve to v1.4.0 by @llucax in #135
  • Bump frequenz-repo-config[lib] from 0.13.5 to 0.14.0 by @dependabot[bot] in #126
  • Bump pytest from 8.4.2 to 9.0.2 by @dependabot[bot] in #130
  • Bump mkdocstrings-python from 1.18.2 to 2.0.2 by @dependabot[bot] in #127
  • Bump pylint from 3.3.8 to 4.0.4 by @dependabot[bot] in #134
  • Bump isort from 6.1.0 to 7.0.0 by @dependabot[bot] in #112
  • Bump the compatible group with 2 updates by @dependabot[bot] in #136
  • Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #138
  • Bump actions/upload-artifact from 5 to 7 by @dependabot[bot] in #137
  • Bump the patch group with 3 updates by @dependabot[bot] in #139
  • Bump mkdocs-gen-files from 0.5.0 to 0.6.0 by @dependabot[bot] in #142
  • Add repo-config auto-migration workflow by @llucax in #144
  • Bump the compatible group with 2 updates by @dependabot[bot] in #145
  • Bump actions/create-github-app-token from 2.2.1 to 3.0.0 by @dependabot[bot] in #146
  • Bump setuptools-scm from 9.2.2 to 10.0.3 by @dependabot[bot] in #149
  • Bump the patch group across 1 directory with 5 updates by @dependabot[bot] in #147
  • Bump isort from 7.0.0 to 8.0.1 by @dependabot[bot] in #140
  • Bump the patch group with 2 updates by @dependabot[bot] in #151
  • Bump frequenz-repo-config from 0.14.0 to 0.17.0 in the repo-config group across 1 directory by @dependabot[bot] in #152
  • Bump the compatible group with 2 updates by @dependabot[bot] in #154
  • Bump actions/create-github-app-token from 2.2.1 to 3.0.0 by @dependabot[bot] in #155
  • Bump frequenz-floss/gh-action-setup-python-with-deps from 0d0d77eac3b54799f31f25a1060ef2c6ebdf9299 to e4d0b2ef8f5a1612d7827f3abaef17c931d2b946 by @dependabot[bot] in #156
  • Bump frequenz-floss/gh-action-setup-git from 16952aac3ccc01d27412fe0dea3ea946530dcace to f9d86a01228ee1cadaac5224d4d7626f1eb23f90 by @dependabot[bot] in #157
  • Bump black from 25.9.0 to 26.3.1 by @dependabot[bot] in #150
  • Bump frequenz-floss/gh-action-setup-python-with-deps from 1.0.2 to 1.0.4 in the compatible group by @dependabot[bot] in #158
  • Bump mypy from 1.19.1 to 1.20.0 in the minor group by @dependabot[bot] in #159
  • Bump the compatible group with 4 updates by @dependabot[bot] in #160
  • Bump the patch group with 3 updates by @dependabot[bot] in #161
  • Bump the minor group with 3 updates by @dependabot[bot] in #162
  • Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260408 by @dependabot[bot] in #163
  • Bump the compatible group with 3 updates by @dependabot[bot] in #164
  • Bump the minor group with 2 updates by @dependabot[bot] in #165
  • Bump mypy from 1.20.2 to 2.1.0 by @dependabot[bot] in #166
  • Bump pydoclint from 0.8.3 to 0.8.4 by @dependabot[bot] in #168
  • Bump pytest-asyncio from 1.3.0 to 1.4.0 by @dependabot[bot] in #169
  • Bump types-markdown from 3.10.2.20260408 to 3.10.2.20260518 by @dependabot[bot] in #167
  • Bump frequenz-floss/gh-action-setup-python-with-deps from 1.0.4 to 1.0.5 in the compatible group by @dependabot[bot] in #171
  • Bump actions/checkout from 6.0.2 to 7.0.0 by @dependabot[bot] in #172
  • Bump pydoclint from 0.8.4 to 0.9.0 by @dependabot[bot] in #176
  • Bump frequenz-repo-config from 0.17.0 to 0.18.0 in the repo-config group by @dependabot[bot] in #175
  • Bump the minor group across 1 directory with 2 updates by @dependabot[bot] in #174
  • Bump the compatible group with 2 updates by @dependabot[bot] in #177
  • Bump the patch group across 1 directory with 3 updates by @dependabot[bot] in #173
  • Fix and improve project docstrings by @llucax with @Copilot in #170
  • Remove None from Interval type parameter by @llucax in #178
  • Bump the patch group with 3 updates by @dependabot[bot] in #182
  • Bump the compatible group with 6 updates by @dependabot[bot] in #183
  • Bump actions/labeler from 6.1.0 to 7.0.0 by @dependabot[bot] in #184
  • Bump the minor group with 3 updates by @dependabot[bot] in #185
  • Bump pydoclint from 0.9.0 to 0.9.1 by @dependabot[bot] in #187
  • build(deps-dev): bump setuptools from 82.0.1 to 83.0.0 by @dependabot[bot] in #188
  • build(deps-dev): bump types-markdown from 3.10.2.20260518 to 3.10.2.20260712 by @dependabot[bot] in #186
  • Add a FloatInt (float | int) type alias by @llucax in #189

Full Changelog: v1.3.0...v1.4.0