From 61105a4dc49b1d6ad3cf2a21f30c15e5162d1d49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:48:58 +0000 Subject: [PATCH 1/4] build(deps-dev): bump frequenz-repo-config Bumps the repo-config group with 1 update in the / directory: [frequenz-repo-config](https://github.com/frequenz-floss/frequenz-repo-config-python). Updates `frequenz-repo-config` from 0.18.0 to 0.19.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.x.x/RELEASE_NOTES.md) - [Commits](https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: frequenz-repo-config dependency-version: 0.19.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: repo-config ... Signed-off-by: dependabot[bot] --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index daac3c5..44cc366 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "setuptools == 84.0.0", "setuptools_scm[toml] == 10.3.4", - "frequenz-repo-config[lib] == 0.18.0", + "frequenz-repo-config[lib] == 0.19.0", ] build-backend = "setuptools.build_meta" @@ -65,7 +65,7 @@ dev-mkdocs = [ "mkdocs-material == 9.7.7", "mkdocstrings[python] == 1.0.6", "mkdocstrings-python == 2.0.7", - "frequenz-repo-config[lib] == 0.18.0", + "frequenz-repo-config[lib] == 0.19.0", ] dev-mypy = [ "mypy == 2.3.1", @@ -73,7 +73,7 @@ dev-mypy = [ # For checking the noxfile, docs/ script, and tests "frequenz-core[dev-mkdocs,dev-noxfile,dev-pytest]", ] -dev-noxfile = ["nox == 2026.8.17", "frequenz-repo-config[lib] == 0.18.0"] +dev-noxfile = ["nox == 2026.8.17", "frequenz-repo-config[lib] == 0.19.0"] dev-pylint = [ # dev-pytest already defines a dependency to pylint because of the examples # For checking the noxfile, docs/ script, and tests @@ -82,7 +82,7 @@ dev-pylint = [ dev-pytest = [ "pytest == 9.1.1", "pylint == 4.0.8", # We need this to check for the examples - "frequenz-repo-config[extra-lint-examples] == 0.18.0", + "frequenz-repo-config[extra-lint-examples] == 0.19.0", "pytest-mock == 3.16.0", "pytest-asyncio == 1.4.0", "async-solipsism == 0.9", From e0551c94ff9e1fadfa17806bee9810e01611e85b Mon Sep 17 00:00:00 2001 From: "frequenz-auto-dependabot[bot]" <261417025+frequenz-auto-dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:49:28 +0000 Subject: [PATCH 2/4] Apply migration from 0.18.0 to 0.19.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit === v0.19.0 ========================================================= Script URL: https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.19.0/cookiecutter/migrate.py ======================================================================== Enabling exhaustive match checks for mypy... Updated pyproject.toml: enabled exhaustive-match ======================================================================== ======================================================================== Removing default `-vv` from pytest addopts... Skipped pyproject.toml: no addopts in [tool.pytest.ini_options], nothing to remove ======================================================================== Removing the dummy DCO merge-queue workflow... Removed .github/workflows/dco-merge-queue.yml ======================================================================== Pinning the DCO check in the 'Protect version branches' ruleset... Ruleset 'Protect version branches' is already up to date ======================================================================== ======================================================================== Updating pinned build dependencies... Updated pyproject.toml: bumped setuptools_scm[toml] to 10.2.1 ======================================================================== ======================================================================== Enabling asyncio debug mode for pytest... Updated pyproject.toml: enabled asyncio debug mode under [tool.pytest.ini_options] ======================================================================== ======================================================================== Updating the release instructions in CONTRIBUTING.md... Updated CONTRIBUTING.md: refreshed the release instructions ======================================================================== ✅ Migration script finished successfully ✅ The migration completed successfully. Applied-by: frequenz-floss/gh-action-dependabot-migrate --- .github/workflows/dco-merge-queue.yml | 14 -------------- CONTRIBUTING.md | 20 +++++++++++++++++--- pyproject.toml | 4 +++- 3 files changed, 20 insertions(+), 18 deletions(-) delete mode 100644 .github/workflows/dco-merge-queue.yml diff --git a/.github/workflows/dco-merge-queue.yml b/.github/workflows/dco-merge-queue.yml deleted file mode 100644 index 7a4260d..0000000 --- a/.github/workflows/dco-merge-queue.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Based on https://github.com/hyperledger/besu/pull/5207/files -name: DCO -on: - merge_group: - -# Drop all token permissions: this workflow only runs a local echo command. -permissions: {} - -jobs: - DCO: - runs-on: ubuntu-slim - if: ${{ github.actor != 'dependabot[bot]' }} - steps: - - run: echo "This DCO job runs on merge_queue event and doesn't check PR contents" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index abb8942..f8d94ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,7 @@ Or you can use `nox`: nox -R -s pytest -- tests/test_*.py ``` -The same appliest to `pylint` or `mypy` for example: +The same applies to `pylint` or `mypy` for example: ```sh nox -R -s pylint -- tests/test_*.py @@ -121,12 +121,19 @@ These are the steps to create a new release: 1. Get the latest head you want to create a release from. + If you use milestones, check that the milestone for this release has no open + issues left, and move whatever won't make it to a later milestone. + 2. Update the `RELEASE_NOTES.md` file if it is not complete, up to date, and - remove template comments (``) and empty sections. Submit a pull request if an update is needed, wait until it is merged, and update the latest head you want to create a release from to get the new merged pull request. + This can't be left for later: the notes published with the release are read + from the `RELEASE_NOTES.md` committed at the tagged commit, not from the tag + message. + 3. Create a new signed tag using the release notes and a [semver](https://semver.org/) compatible version number with a `v` prefix, for example: @@ -135,6 +142,10 @@ These are the steps to create a new release: git tag -s --cleanup=whitespace -F RELEASE_NOTES.md v0.0.1 ``` + The signature is not optional: the *Protect released tags* ruleset rejects + unsigned tags. It also forbids updating or deleting a released tag, so make + sure you are tagging the commit you want. + 4. Push the new tag. 5. A GitHub action will test the tag and if all goes well it will create @@ -153,4 +164,7 @@ These are the steps to create a new release: Commit the new release notes and create a PR (this step should be automated eventually too). -7. Celebrate! +7. If you use milestones, close the milestone for this release, and create the + next one if it doesn't exist yet. + +8. Celebrate! diff --git a/pyproject.toml b/pyproject.toml index 44cc366..1c86335 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [build-system] requires = [ "setuptools == 84.0.0", - "setuptools_scm[toml] == 10.3.4", + "setuptools_scm[toml] == 10.2.1", "frequenz-repo-config[lib] == 0.19.0", ] build-backend = "setuptools.build_meta" @@ -167,11 +167,13 @@ filterwarnings = [ "once::PendingDeprecationWarning", ] testpaths = ["tests", "src"] +asyncio_debug = true asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" required_plugins = ["pytest-asyncio", "pytest-mock"] [tool.mypy] +enable_error_code = ["exhaustive-match"] explicit_package_bases = true namespace_packages = true # This option disables mypy cache, and it is sometimes useful to enable it if From 4e32dbeb4588646a8bf3d19e6970ef4894f02023 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 2 Oct 2026 12:03:13 +0000 Subject: [PATCH 3/4] Restore the setuptools_scm build pin to 10.3.4 The 0.19.0 migration sets the `setuptools_scm[toml]` build dependency to the template's 10.2.1, even though it was already pinned to the newer 10.3.4 here, so applying it as-is would downgrade it. Signed-off-by: Leandro Lucarella --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1c86335..40fdab7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [build-system] requires = [ "setuptools == 84.0.0", - "setuptools_scm[toml] == 10.2.1", + "setuptools_scm[toml] == 10.3.4", "frequenz-repo-config[lib] == 0.19.0", ] build-backend = "setuptools.build_meta" From 14ba3c9e6bae6d6dec6e736a98310b31c7a2f8ab Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 2 Oct 2026 12:03:26 +0000 Subject: [PATCH 4/4] tests: Ignore protobuf gencode version warnings This brings the `filterwarnings` list in line with the 0.19.0 `frequenz-repo-config` template, which the migration doesn't do for existing repositories. This repository doesn't use protobuf, so the entry has no effect today, but keeping the list identical to the template makes future template updates easier to compare and apply. Signed-off-by: Leandro Lucarella --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 40fdab7..96cc8b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -165,6 +165,12 @@ filterwarnings = [ "error", "once::DeprecationWarning", "once::PendingDeprecationWarning", + # We ignore warnings about protobuf gencode version being one version older + # than the current version, as this is supported by protobuf, and we expect to + # have such cases. If we go too far, we will get a proper error anyways. + # We use a raw string (single quotes) to avoid the need to escape special + # characters as this is a regex. + 'ignore:Protobuf gencode version .*exactly one major version older.*:UserWarning', ] testpaths = ["tests", "src"] asyncio_debug = true