From 865c145e7b90a67f85e23d8ae407947559c10dc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 12:13:07 +0000 Subject: [PATCH 01/18] Bump the required group with 3 updates Bumps the required group with 3 updates: [mkdocs-material](https://github.com/squidfunk/mkdocs-material), [pylint](https://github.com/pylint-dev/pylint) and [pytest](https://github.com/pytest-dev/pytest). Updates `mkdocs-material` from 9.5.21 to 9.5.25 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.21...9.5.25) Updates `pylint` from 3.1.0 to 3.2.2 - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.1.0...v3.2.2) Updates `pytest` from 8.2.0 to 8.2.1 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.2.0...8.2.1) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pylint dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required ... Signed-off-by: dependabot[bot] --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9395aa4e..aa57d2f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ dev-mkdocs = [ "mike == 1.1.2", "mkdocs-gen-files == 0.5.0", "mkdocs-literate-nav == 0.6.1", - "mkdocs-material == 9.5.21", + "mkdocs-material == 9.5.25", "mkdocstrings[python] == 0.25.1", "frequenz-repo-config[api] == 0.9.2", ] @@ -57,12 +57,12 @@ dev-mypy = [ ] dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[api] == 0.9.2"] dev-pylint = [ - "pylint == 3.1.0", + "pylint == 3.2.2", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] dev-pytest = [ - "pytest == 8.2.0", + "pytest == 8.2.1", "frequenz-repo-config[extra-lint-examples] == 0.9.2", ] dev = [ From f7d262ffa2a91fcaf0f7b858ffe33a385f482c37 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Tue, 11 Jun 2024 12:03:28 +0200 Subject: [PATCH 02/18] Be a bit more explicit about when some fields can be missing Signed-off-by: Leandro Lucarella --- proto/frequenz/api/common/v1/microgrid/microgrid.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/proto/frequenz/api/common/v1/microgrid/microgrid.proto b/proto/frequenz/api/common/v1/microgrid/microgrid.proto index 698658eb..4729188c 100644 --- a/proto/frequenz/api/common/v1/microgrid/microgrid.proto +++ b/proto/frequenz/api/common/v1/microgrid/microgrid.proto @@ -51,9 +51,15 @@ message Microgrid { // The delivery area where the microgrid is located, as identified by a // specific code. + // + // If a microgrid is not connected to the grid (it is an island) it does not + // belong to any delivery area and this field will be missing, but it could + // be missing for other reasons as well. frequenz.api.common.v1.grid.DeliveryArea delivery_area = 4; // Physical location of the microgrid, in geographical co-ordinates. + // + // If the location is not known, this field will be missing. frequenz.api.common.v1.Location location = 5; // The current status of the microgrid. From 60d8ad037947bb446df9dbffa0a560445376ba8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 06:24:56 +0000 Subject: [PATCH 03/18] Bump brettcannon/check-for-changed-files from 1.2.0 to 1.2.1 Bumps [brettcannon/check-for-changed-files](https://github.com/brettcannon/check-for-changed-files) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/brettcannon/check-for-changed-files/releases) - [Commits](https://github.com/brettcannon/check-for-changed-files/compare/4170644959a21843b31f1181f2a1761d65ef4791...871d7b8b5917a4f6f06662e2262e8ffc51dff6d1) --- updated-dependencies: - dependency-name: brettcannon/check-for-changed-files dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/release-notes-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-notes-check.yml b/.github/workflows/release-notes-check.yml index 31cfa7a7..82882db0 100644 --- a/.github/workflows/release-notes-check.yml +++ b/.github/workflows/release-notes-check.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Check for a release notes update if: github.event_name == 'pull_request' - uses: brettcannon/check-for-changed-files@4170644959a21843b31f1181f2a1761d65ef4791 # v1.2.0 + uses: brettcannon/check-for-changed-files@871d7b8b5917a4f6f06662e2262e8ffc51dff6d1 # v1.2.1 with: file-pattern: "RELEASE_NOTES.md" prereq-pattern: "{proto,py}/**" From dbb9c42a32e1e9e298cf88f31218696bb559bcfb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 12:20:44 +0000 Subject: [PATCH 04/18] Bump the required group with 6 updates Bumps the required group with 6 updates: | Package | From | To | | --- | --- | --- | | [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.1.0` | | [pydoclint](https://github.com/jsh9/pydoclint) | `0.4.1` | `0.5.3` | | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.25` | `9.5.27` | | [mypy](https://github.com/python/mypy) | `1.10.0` | `1.10.1` | | [pylint](https://github.com/pylint-dev/pylint) | `3.2.2` | `3.2.5` | | [pytest](https://github.com/pytest-dev/pytest) | `8.2.1` | `8.2.2` | Updates `flake8` from 7.0.0 to 7.1.0 - [Commits](https://github.com/pycqa/flake8/compare/7.0.0...7.1.0) Updates `pydoclint` from 0.4.1 to 0.5.3 - [Release notes](https://github.com/jsh9/pydoclint/releases) - [Changelog](https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsh9/pydoclint/compare/0.4.1...0.5.3) Updates `mkdocs-material` from 9.5.25 to 9.5.27 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.25...9.5.27) Updates `mypy` from 1.10.0 to 1.10.1 - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.10.0...v1.10.1) Updates `pylint` from 3.2.2 to 3.2.5 - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.2.2...v3.2.5) Updates `pytest` from 8.2.1 to 8.2.2 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.2.1...8.2.2) --- updated-dependencies: - dependency-name: flake8 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: pydoclint dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: mypy dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pylint dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required ... Signed-off-by: dependabot[bot] --- pyproject.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aa57d2f2..1df0c0a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,10 +34,10 @@ email = "floss@frequenz.com" [project.optional-dependencies] dev-flake8 = [ - "flake8 == 7.0.0", + "flake8 == 7.1.0", "flake8-docstrings == 1.7.0", "flake8-pyproject == 1.2.3", # For reading the flake8 config from pyproject.toml - "pydoclint == 0.4.1", + "pydoclint == 0.5.3", "pydocstyle == 6.3.0", ] dev-formatting = ["black == 24.4.2", "isort == 5.13.2"] @@ -45,24 +45,24 @@ dev-mkdocs = [ "mike == 1.1.2", "mkdocs-gen-files == 0.5.0", "mkdocs-literate-nav == 0.6.1", - "mkdocs-material == 9.5.25", + "mkdocs-material == 9.5.27", "mkdocstrings[python] == 0.25.1", "frequenz-repo-config[api] == 0.9.2", ] dev-mypy = [ - "mypy == 1.10.0", + "mypy == 1.10.1", "grpc-stubs == 1.53.0.5", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[api] == 0.9.2"] dev-pylint = [ - "pylint == 3.2.2", + "pylint == 3.2.5", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] dev-pytest = [ - "pytest == 8.2.1", + "pytest == 8.2.2", "frequenz-repo-config[extra-lint-examples] == 0.9.2", ] dev = [ From 2ec866e085258725b357733e6339f61fca57cac7 Mon Sep 17 00:00:00 2001 From: Flora Date: Tue, 6 Aug 2024 09:46:50 +0200 Subject: [PATCH 05/18] Add energy metric information Signed-off-by: Flora --- RELEASE_NOTES.md | 2 ++ .../api/common/v1/metrics/metric_sample.proto | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 47678ddd..e892811b 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -8,3 +8,5 @@ This release adds a new component category `COMPONENT_CATEGORY_HVAC` to the API. - A new component category `COMPONENT_CATEGORY_HVAC` has been added to the API to represent HVAC (Heating, Ventilation, and Air Conditioning) systems. + +- Additional information for energy metric diff --git a/proto/frequenz/api/common/v1/metrics/metric_sample.proto b/proto/frequenz/api/common/v1/metrics/metric_sample.proto index af37d611..dd9bc533 100644 --- a/proto/frequenz/api/common/v1/metrics/metric_sample.proto +++ b/proto/frequenz/api/common/v1/metrics/metric_sample.proto @@ -63,6 +63,20 @@ message MetricValueVariant { } // List of supported metrics. +// +// !!! note +// AC energy metrics information: +// +// * This energy metric is reported directly from the component, and not a +// result of aggregations in our systems. If a component does not have this +// metric, this field cannot be populated. +// +// * Components that provide energy metrics reset this metric from time to +// time. This behaviour is specific to each component model. E.g., some +// components reset it on UTC 00:00:00. +// +// * This energy metric does not specify the timestamp since when the energy +// was being accumulated, and therefore can be inconsistent. enum Metric { // Default value. METRIC_UNSPECIFIED = 0; From c2b8f5660288c15b7e503533a9118741de057e6b Mon Sep 17 00:00:00 2001 From: "Mathias L. Baumann" Date: Wed, 31 Jul 2024 15:01:55 +0200 Subject: [PATCH 06/18] Change `PaginationParams` to make `page_size` and `page_token` mutually exclusive Signed-off-by: Mathias L. Baumann --- RELEASE_NOTES.md | 7 ++++-- .../v1/pagination/pagination_params.proto | 25 +++++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e892811b..4d51a710 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,9 +2,12 @@ ## Summary -This release adds a new component category `COMPONENT_CATEGORY_HVAC` to the API. +Update of the `PaginationParams` struct. -## New Features +## Upgrading + +- `PaginationParams` has been changed so that the `page_size` and `page_token` + fields are now mutually exclusive. - A new component category `COMPONENT_CATEGORY_HVAC` has been added to the API to represent HVAC (Heating, Ventilation, and Air Conditioning) systems. diff --git a/proto/frequenz/api/common/v1/pagination/pagination_params.proto b/proto/frequenz/api/common/v1/pagination/pagination_params.proto index a21bffa7..8129236e 100644 --- a/proto/frequenz/api/common/v1/pagination/pagination_params.proto +++ b/proto/frequenz/api/common/v1/pagination/pagination_params.proto @@ -11,16 +11,21 @@ package frequenz.api.common.v1.pagination; // A message defining parameters for paginating list requests. // It can be appended to a request message to specify the desired page of -// results and the maximum number of results per page. For initial requests -// (requesting the first page), the page_token should not be provided. For -// subsequent requests (requesting any page after the first), the -// next_page_token from the previous responses PaginationInfo must be supplied. -// The page_size should only be specified in the initial request and will be -// disregarded in subsequent requests. +// results and the maximum number of results per page. message PaginationParams { - // The maximum number of results to be returned per request. - optional uint32 page_size = 1; + oneof params { + // The maximum number of results to return in a single page. The service may + // return fewer results than requested. If unspecified, the service may + // choose a reasonable default. + // May only be specified in the first request. + uint32 page_size = 1; - // The token identifying a specific page of the list results. - optional string page_token = 2; + // A token identifying a page of results to return. This should be the value + // of the `next_page_token` field in the previous response's PaginationInfo. + // For the first request, this field should be omitted. + // + // To avoid keeping remembering the page_size across requests, service + // implementations may choose to encode the page_size in the page_token. + string page_token = 2; + } } From daa28b0dead48bed2bbb3b602b602a07cb34dd7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:12:14 +0000 Subject: [PATCH 07/18] Bump the required group across 1 directory with 10 updates Bumps the required group with 10 updates in the / directory: | Package | From | To | | --- | --- | --- | | [flake8](https://github.com/pycqa/flake8) | `7.1.0` | `7.1.1` | | [pydoclint](https://github.com/jsh9/pydoclint) | `0.5.3` | `0.5.7` | | [black](https://github.com/psf/black) | `24.4.2` | `24.8.0` | | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.27` | `9.5.34` | | [mkdocstrings[python]](https://github.com/mkdocstrings/mkdocstrings) | `0.25.1` | `0.26.1` | | [frequenz-repo-config[api]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.10.0` | | [mypy](https://github.com/python/mypy) | `1.10.1` | `1.11.2` | | [pylint](https://github.com/pylint-dev/pylint) | `3.2.5` | `3.2.7` | | [pytest](https://github.com/pytest-dev/pytest) | `8.2.2` | `8.3.3` | | [frequenz-repo-config[extra-lint-examples]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.10.0` | Updates `flake8` from 7.1.0 to 7.1.1 - [Commits](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1) Updates `pydoclint` from 0.5.3 to 0.5.7 - [Release notes](https://github.com/jsh9/pydoclint/releases) - [Changelog](https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsh9/pydoclint/compare/0.5.3...0.5.7) Updates `black` from 24.4.2 to 24.8.0 - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.4.2...24.8.0) Updates `mkdocs-material` from 9.5.27 to 9.5.34 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.27...9.5.34) Updates `mkdocstrings[python]` from 0.25.1 to 0.26.1 - [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases) - [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.25.1...0.26.1) Updates `frequenz-repo-config[api]` from 0.9.2 to 0.10.0 - [Release notes](https://github.com/frequenz-floss/frequenz-repo-config-python/releases) - [Changelog](https://github.com/frequenz-floss/frequenz-repo-config-python/blob/v0.10.0/RELEASE_NOTES.md) - [Commits](https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.9.2...v0.10.0) Updates `mypy` from 1.10.1 to 1.11.2 - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.10.1...v1.11.2) Updates `pylint` from 3.2.5 to 3.2.7 - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.2.5...v3.2.7) Updates `pytest` from 8.2.2 to 8.3.3 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.2.2...8.3.3) Updates `frequenz-repo-config[extra-lint-examples]` from 0.9.2 to 0.10.0 - [Release notes](https://github.com/frequenz-floss/frequenz-repo-config-python/releases) - [Changelog](https://github.com/frequenz-floss/frequenz-repo-config-python/blob/v0.10.0/RELEASE_NOTES.md) - [Commits](https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.9.2...v0.10.0) --- updated-dependencies: - dependency-name: flake8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pydoclint dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: mkdocstrings[python] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: frequenz-repo-config[api] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: mypy dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: pylint dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required - dependency-name: frequenz-repo-config[extra-lint-examples] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required ... Signed-off-by: dependabot[bot] --- pyproject.toml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e0c3deb8..142de318 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "setuptools == 68.1.0", "setuptools_scm[toml] == 7.1.0", - "frequenz-repo-config[api] == 0.9.2", + "frequenz-repo-config[api] == 0.10.0", # We need to pin the protobuf, grpcio and grpcio-tools dependencies to make # sure the code is generated using the minimum supported versions, as older # versions can't work with code that was generated with newer versions. @@ -49,36 +49,36 @@ email = "floss@frequenz.com" [project.optional-dependencies] dev-flake8 = [ - "flake8 == 7.1.0", + "flake8 == 7.1.1", "flake8-docstrings == 1.7.0", "flake8-pyproject == 1.2.3", # For reading the flake8 config from pyproject.toml - "pydoclint == 0.5.3", + "pydoclint == 0.5.7", "pydocstyle == 6.3.0", ] -dev-formatting = ["black == 24.4.2", "isort == 5.13.2"] +dev-formatting = ["black == 24.8.0", "isort == 5.13.2"] dev-mkdocs = [ "mike == 1.1.2", "mkdocs-gen-files == 0.5.0", "mkdocs-literate-nav == 0.6.1", - "mkdocs-material == 9.5.27", - "mkdocstrings[python] == 0.25.1", - "frequenz-repo-config[api] == 0.9.2", + "mkdocs-material == 9.5.34", + "mkdocstrings[python] == 0.26.1", + "frequenz-repo-config[api] == 0.10.0", ] dev-mypy = [ - "mypy == 1.10.1", + "mypy == 1.11.2", "grpc-stubs == 1.53.0.5", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] -dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[api] == 0.9.2"] +dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[api] == 0.10.0"] dev-pylint = [ - "pylint == 3.2.5", + "pylint == 3.2.7", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] dev-pytest = [ - "pytest == 8.2.2", - "frequenz-repo-config[extra-lint-examples] == 0.9.2", + "pytest == 8.3.3", + "frequenz-repo-config[extra-lint-examples] == 0.10.0", ] dev = [ "frequenz-api-common[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]", From 15dfe90e18ff986e628e6d98528783791a3c3f70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 06:10:58 +0000 Subject: [PATCH 08/18] Bump yoheimuta/action-protolint from 1.1.0 to 1.3.0 Bumps [yoheimuta/action-protolint](https://github.com/yoheimuta/action-protolint) from 1.1.0 to 1.3.0. - [Release notes](https://github.com/yoheimuta/action-protolint/releases) - [Commits](https://github.com/yoheimuta/action-protolint/compare/a7c658b971a0874e120e046edb6fd137fdbc92a7...e62319541dc5107df5e3a5010acb8987004d3d25) --- updated-dependencies: - dependency-name: yoheimuta/action-protolint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 61ae5803..c87e8ad2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -37,7 +37,7 @@ jobs: # Only use hashes here, as we are passing the github token, we want to # make sure updates are done consciously to avoid security issues if the # action repo gets hacked - uses: yoheimuta/action-protolint@a7c658b971a0874e120e046edb6fd137fdbc92a7 # v1.1.0 + uses: yoheimuta/action-protolint@e62319541dc5107df5e3a5010acb8987004d3d25 # v1.3.0 with: fail_on_error: true filter_mode: nofilter From b95abff4dbd2394ab907b857b7f7b4c1a557a0af Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Thu, 12 Sep 2024 12:35:29 +0200 Subject: [PATCH 09/18] Bump the protolint version to 0.50.5 The old versio doesn't seem to be available any more, it gives a 404. Signed-off-by: Leandro Lucarella --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c87e8ad2..a76f8b24 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -43,7 +43,7 @@ jobs: filter_mode: nofilter github_token: ${{ secrets.github_token }} protolint_flags: proto/ - protolint_version: "0.45.0" + protolint_version: "0.50.5" reporter: github-check nox: From 0d410cadf976e468a357c0deb144f09154695aa6 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Thu, 12 Sep 2024 11:39:47 +0200 Subject: [PATCH 10/18] Fix documentation comment for `COMPONENT_CATEGORY_UNSPECIFIED` Signed-off-by: Leandro Lucarella --- RELEASE_NOTES.md | 1 + .../api/common/v1/microgrid/components/components.proto | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 0759e318..00ce3d0f 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -15,3 +15,4 @@ Update of the `PaginationParams` struct. ## Bug Fixes - Fix a dependency issue by pinning the `grpcio` version and related libraries. +- Fixed a wrong documentation comment for `COMPONENT_CATEGORY_UNSPECIFIED`. diff --git a/proto/frequenz/api/common/v1/microgrid/components/components.proto b/proto/frequenz/api/common/v1/microgrid/components/components.proto index c21251d1..8b9520ff 100644 --- a/proto/frequenz/api/common/v1/microgrid/components/components.proto +++ b/proto/frequenz/api/common/v1/microgrid/components/components.proto @@ -24,8 +24,7 @@ import "google/protobuf/timestamp.proto"; // Enumrated component categories. enum ComponentCategory { - // An unknown component categories, useful for error handling, and marking - // unknown components in a list of components with otherwise known categories. + // The component category is unspecified. This should not be used. COMPONENT_CATEGORY_UNSPECIFIED = 0; // The point where the local microgrid is connected to the grid. From bdbc676d427716d28898f1616d052f196bf47c64 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 11 Sep 2024 09:28:46 +0200 Subject: [PATCH 11/18] Fix `conftest.py` location in `MANIFEST.in` The `conftest.py` file was wrongly included in the binary distribution. Signed-off-by: Leandro Lucarella --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index c15e5b3d..6ddf1541 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,7 +6,7 @@ exclude CODEOWNERS exclude CONTRIBUTING.md exclude mkdocs.yml exclude noxfile.py -exclude src/conftest.py +exclude py/conftest.py recursive-exclude .github * recursive-exclude benchmarks * recursive-exclude docs * From e5f4edc755ca6c585bbb92c6985f8d0192c82a86 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 11 Sep 2024 09:29:48 +0200 Subject: [PATCH 12/18] Move `conftest.py` to the package root This is mostly to make it easier to navigate to the root of the package. Signed-off-by: Leandro Lucarella --- MANIFEST.in | 2 +- py/{ => frequenz/api/common}/conftest.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename py/{ => frequenz/api/common}/conftest.py (100%) diff --git a/MANIFEST.in b/MANIFEST.in index 6ddf1541..9dc76cd5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,7 +6,7 @@ exclude CODEOWNERS exclude CONTRIBUTING.md exclude mkdocs.yml exclude noxfile.py -exclude py/conftest.py +exclude py/frequenz/api/common/conftest.py recursive-exclude .github * recursive-exclude benchmarks * recursive-exclude docs * diff --git a/py/conftest.py b/py/frequenz/api/common/conftest.py similarity index 100% rename from py/conftest.py rename to py/frequenz/api/common/conftest.py From 5dff177dc45ada91ee5ecf049716cac85024a502 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 11 Sep 2024 10:14:27 +0200 Subject: [PATCH 13/18] Bump the `protobuf` and `grpcio` versions The `protobuf` version 4.25.x will go out of support soon(ish), on 31 Mar 2025. Since we don't need to keep compatibility to any legacy code, we can bump it in advance as a preparation. https://protobuf.dev/support/version-support/#python Signed-off-by: Leandro Lucarella --- pyproject.toml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 142de318..d5942462 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,9 +10,9 @@ requires = [ # sure the code is generated using the minimum supported versions, as older # versions can't work with code that was generated with newer versions. # https://protobuf.dev/support/cross-version-runtime-guarantee/#backwards - "protobuf == 4.25.3", - "grpcio-tools == 1.51.1", - "grpcio == 1.51.1", + "protobuf == 5.28.0", + "grpcio-tools == 1.66.1", + "grpcio == 1.66.1", ] build-backend = "setuptools.build_meta" @@ -33,13 +33,14 @@ classifiers = [ ] requires-python = ">= 3.11, < 4" dependencies = [ - # We can't widen beyond 6 because of protobuf cross-version runtime guarantees + # We can't widen beyond the current value unless we bump the minimum + # requirements too because of protobuf cross-version runtime guarantees: # https://protobuf.dev/support/cross-version-runtime-guarantee/#major - "protobuf >= 4.25.3, < 6", # Do not widen beyond 6! + "protobuf >= 5.28.0, < 7", # Do not widen beyond 7! # We couldn't find any document with a spec about the cross-version runtime # guarantee for grpcio, so unless we find one in the future, we'll assume # major version jumps are not compatible - "grpcio >= 1.51.1, < 2", # Do not widen beyond 2! + "grpcio >= 1.66.1, < 2", # Do not widen beyond 2! ] dynamic = ["version"] From cf667ca0ff17e2acebd0ee87d68efc0c3d672431 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 27 Sep 2024 13:59:02 +0200 Subject: [PATCH 14/18] Improve the `Lifetime` message documentation Make the specification of what `Lifetime` message is used for as clear and precise as possible. Signed-off-by: Leandro Lucarella --- .../api/common/v1/microgrid/lifetime.proto | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/proto/frequenz/api/common/v1/microgrid/lifetime.proto b/proto/frequenz/api/common/v1/microgrid/lifetime.proto index 8fb32123..82d62193 100644 --- a/proto/frequenz/api/common/v1/microgrid/lifetime.proto +++ b/proto/frequenz/api/common/v1/microgrid/lifetime.proto @@ -15,14 +15,27 @@ import "google/protobuf/timestamp.proto"; // a microgrid asset, such as a component, connection, sensor, or any other // entity with a limited operational lifetime. // -// !!! warning "Permanent Deletion" -// The `end_timestamp` indicates that the asset has been permanently removed -// from the system. +// It is normally used to track the historical evolution of assets, and it +// determines the validity period for the asset's data. // +// If the `start_timestamp` is not set, the asset is considered to be in +// operation since the beginning of the system's operational history. +// +// If the `end_timestamp` is not set, the asset is considered to be in +// operation indefinitely into the future. +// +// If the Lifetime message is completely missing, it means both timestamps are +// not set, which means the asset is considered to be in operation since the +// beginning of the system's operational history and indefinitely into the +// future. message Lifetime { // The timestamp when the asset became operationally active. + // If not set, the asset is considered to be in operation since the beginning + // of the system's operational history. google.protobuf.Timestamp start_timestamp = 1; // Optional timestamp when the asset's operational activity ceased. + // If not set, the asset is considered to be in operation indefinitely into + // the future. google.protobuf.Timestamp end_timestamp = 2; } From a16fe9cee6fd261d868b408eb39be3db0a54897e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 12:52:07 +0000 Subject: [PATCH 15/18] Bump the required group with 3 updates Bumps the required group with 3 updates: [pydoclint](https://github.com/jsh9/pydoclint), [mkdocs-material](https://github.com/squidfunk/mkdocs-material) and [pylint](https://github.com/pylint-dev/pylint). Updates `pydoclint` from 0.5.7 to 0.5.9 - [Release notes](https://github.com/jsh9/pydoclint/releases) - [Changelog](https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsh9/pydoclint/compare/0.5.7...0.5.9) Updates `mkdocs-material` from 9.5.34 to 9.5.39 - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.34...9.5.39) Updates `pylint` from 3.2.7 to 3.3.1 - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.2.7...v3.3.1) --- updated-dependencies: - dependency-name: pydoclint dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch dependency-group: required - dependency-name: pylint dependency-type: direct:production update-type: version-update:semver-minor dependency-group: required ... Signed-off-by: dependabot[bot] --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d5942462..fcc05b45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ dev-flake8 = [ "flake8 == 7.1.1", "flake8-docstrings == 1.7.0", "flake8-pyproject == 1.2.3", # For reading the flake8 config from pyproject.toml - "pydoclint == 0.5.7", + "pydoclint == 0.5.9", "pydocstyle == 6.3.0", ] dev-formatting = ["black == 24.8.0", "isort == 5.13.2"] @@ -61,7 +61,7 @@ dev-mkdocs = [ "mike == 1.1.2", "mkdocs-gen-files == 0.5.0", "mkdocs-literate-nav == 0.6.1", - "mkdocs-material == 9.5.34", + "mkdocs-material == 9.5.39", "mkdocstrings[python] == 0.26.1", "frequenz-repo-config[api] == 0.10.0", ] @@ -73,7 +73,7 @@ dev-mypy = [ ] dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[api] == 0.10.0"] dev-pylint = [ - "pylint == 3.2.7", + "pylint == 3.3.1", # For checking the noxfile, docs/ script, and tests "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]", ] From d9d22cbee8631814af29353a7c35a0bc58e48863 Mon Sep 17 00:00:00 2001 From: camille-bouvy-frequenz Date: Wed, 2 Oct 2024 17:38:24 +0200 Subject: [PATCH 16/18] Generalize Energy message documentation for broader market use Signed-off-by: camille-bouvy-frequenz --- proto/frequenz/api/common/v1/market/energy.proto | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/proto/frequenz/api/common/v1/market/energy.proto b/proto/frequenz/api/common/v1/market/energy.proto index 1dfe9564..9157f1e6 100644 --- a/proto/frequenz/api/common/v1/market/energy.proto +++ b/proto/frequenz/api/common/v1/market/energy.proto @@ -1,4 +1,4 @@ -// Frequenz definitions of energy for electricity trading. +// Frequenz definitions of energy. // // Copyright 2023 Frequenz Energy-as-a-Service GmbH // @@ -14,11 +14,11 @@ import "frequenz/api/common/v1/types/decimal.proto"; // Represents a single unit of electricity. // // !!! note -// In these trading orders, the unit of energy is denominated in MWh -// (Megawatt-hours) as opposed to MW (Megawatts). MWh is a unit of energy -// representing total output over a period, while MW is a unit of power that -// represents the rate of energy production or consumption. +// The unit of energy is denominated in MWh, which is a unit of energy +// representing total output over a period.(Megawatt-hours). This differs +// from MW (Megawatts), a unit of power representing the rate of energy +// production or consumption. message Energy { - // Represents energy unit in Megawatthours (MWh). + // Energy unit in Megawatthours (MWh). frequenz.api.common.v1.types.Decimal mwh = 1; } From f30840d9a6178197f2c9b57e848d03150f12082b Mon Sep 17 00:00:00 2001 From: camille-bouvy-frequenz Date: Wed, 2 Oct 2024 17:46:53 +0200 Subject: [PATCH 17/18] Add Power message to represent Power in MW Signed-off-by: camille-bouvy-frequenz --- .../frequenz/api/common/v1/market/power.proto | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 proto/frequenz/api/common/v1/market/power.proto diff --git a/proto/frequenz/api/common/v1/market/power.proto b/proto/frequenz/api/common/v1/market/power.proto new file mode 100644 index 00000000..a77308e7 --- /dev/null +++ b/proto/frequenz/api/common/v1/market/power.proto @@ -0,0 +1,30 @@ +// Frequenz definitions of power. +// +// Copyright 2024 Frequenz Energy-as-a-Service GmbH +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. + +syntax = "proto3"; + +package frequenz.api.common.v1.market; + +import "frequenz/api/common/v1/types/decimal.proto"; + +// Represents a single unit of power. +// +// !!! note +// The power unit is denominated in MW (Megawatts), which is a unit of +// power representing the rate of energy production or consumption at any +// given moment. This differs from MWh (Megawatt-hours), which measures +// the total amount of energy delivered or consumed over a period. +// +// Example: +// A power plant running at 10 MW for 1 hour generates 10 MWh of energy. +// +// This message standardizes the representation of power in MW across all +// market applications. +message Power { + // Power amount in Megawatts (MW). + frequenz.api.common.v1.types.Decimal mw = 1; +} From d7bc47f0b05460ffee6fcd3579e5bdea1a36c321 Mon Sep 17 00:00:00 2001 From: camille-bouvy-frequenz Date: Wed, 2 Oct 2024 17:48:06 +0200 Subject: [PATCH 18/18] Update Release Notes Signed-off-by: camille-bouvy-frequenz --- RELEASE_NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 00ce3d0f..d0012ff2 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,6 +12,10 @@ Update of the `PaginationParams` struct. - Additional information for energy metric +- Generalize Energy message documentation for broader market use + +- Add Power message to represent Power in MW + ## Bug Fixes - Fix a dependency issue by pinning the `grpcio` version and related libraries.