Frequenz Gridpool Library Release Notes
Summary
This release rounds out gridpool-cli for the assets config layout and adds
gridpool enterprise ownership to the config model. The CLI can now generate,
validate, patch, and query merged config files.
Upgrading
-
The legacy config layouts are no longer migrated on load: top-level microgrid
IDs andmeta-nested microgrid fields are gone. A file with noassetstable
now loads as empty and contributes nothing to a merge, rather than having its
top-level keys read as microgrid IDs. This lets a mixed list of files (some
carrying an[app]table for their own config, some anassetstable) be
passed toAssetsConfig.load_from_files/load_configs, which reads only the
assets-bearing ones. Rebuild any legacy-layout files withgenerate-config. -
generate-confignow writes theassets.microgridslayout and stamps
assets.version, instead of the legacy layout. Regenerate configs to get the
current format; generated files then load back without a migration. -
generate-config --inplacerefuses legacy-layout files (top-level or
meta-nested), which it would duplicate rather than edit. Rebuild those from
scratch.
New Features
-
gridpool-cli validate <files>checks config files offline and exits
non-zero on the first error, to gate config-repo CI. Each file must be valid
on its own, so a record names its own key and required fields; the files are
then checked merged, for the cross-record checks. -
gridpool-cliacceptsFREQUENZ_API_KEYandFREQUENZ_API_SECRETas a
fallback pair forASSETS_API_AUTH_KEYandASSETS_API_SIGN_SECRET. -
Gridpools are described under
assets.gridpools, each entry naming the
enterprise that owns the gridpool.AssetsConfig.find_enterprise(gridpool_id)
returns the configured owner.
gridpool-cli find-enterprise <gridpool_id> <files>prints it from the config.
AssetsConfig.checkenforces the one-enterprise-per-gridpool invariant: a
gridpool's microgrids may not disagree on it, and a declared enterprise must
match the inferred one. -
A config derived from the Assets API now carries each microgrid's
enterprise_id. -
generate-config --inplacerefreshes managed values while preserving
formatting;--fill-missingonly adds absent values. Generated patches are
validated before writing.
Bug Fixes
- Config files with validity periods now load under marshmallow 3, not only
marshmallow 4.tomllibyields nativedatetimeobjects, which marshmallow
3'sDateTimefield rejected.marshmallowis now a direct dependency so the
minimum-version test exercises this path.
What's Changed
- build(deps-dev): bump the patch group with 4 updates by @dependabot[bot] in #133
- build(deps-dev): bump nox from 2026.7.11 to 2026.8.17 in the minor group by @dependabot[bot] in #134
- build(deps-dev): bump setuptools from 83.0.0 to 84.0.0 by @dependabot[bot] in #137
- build(deps-dev): bump flake8-datetimez from 20.10.0 to 26.8.1 by @dependabot[bot] in #138
- feat(config)!: drop legacy layouts and support marshmallow 3 by @cwasicki in #132
Full Changelog: v0.7.1...v0.8.0