Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

## Summary

This release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective `ubuntu-slim` runner.
It also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.
The auto-dependabot workflow now uses a GitHub App installation token instead of `GITHUB_TOKEN` to fix merge queue and auto-merge failures.
Finally, it adds an automated repo-config migration workflow that runs migration scripts on Dependabot PRs.
This release reduces CI cost by moving lightweight GitHub Actions jobs to the new `ubuntu-slim` runner, fixes Dependabot auto-merge/merge-queue issues by switching to a GitHub App installation token, and introduces an automated repo-config migration workflow (including updating existing repos' version-branch protection defaults).

## Upgrading

Expand All @@ -16,7 +13,7 @@ Finally, it adds an automated repo-config migration workflow that runs migration
All upgrading should be done via the migration script or regenerating the templates.

```bash
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.15.0/cookiecutter/migrate.py | python3
```

But you might still need to adapt your code:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.14.0",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.15.0",
{%- if cookiecutter.type == "api" %}
# 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
Expand Down Expand Up @@ -104,7 +104,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.14.0",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -117,7 +117,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.14.0",
"frequenz-repo-config[{{cookiecutter.type}}] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -127,7 +127,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
{%- if cookiecutter.type != "api" %}
"pytest-mock == 3.14.0",
"pytest-asyncio == 1.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[actor] == 0.14.0",
"frequenz-repo-config[actor] == 0.15.0",
]
build-backend = "setuptools.build_meta"

Expand Down Expand Up @@ -61,7 +61,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[actor] == 0.14.0",
"frequenz-repo-config[actor] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -71,7 +71,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[actor] == 0.14.0",
"frequenz-repo-config[actor] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -81,7 +81,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
"pytest-mock == 3.14.0",
"pytest-asyncio == 1.1.0",
"async-solipsism == 0.8",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[api] == 0.14.0",
"frequenz-repo-config[api] == 0.15.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.
Expand Down Expand Up @@ -72,7 +72,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[api] == 0.14.0",
"frequenz-repo-config[api] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -83,7 +83,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[api] == 0.14.0",
"frequenz-repo-config[api] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -93,7 +93,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
]
dev = [
"frequenz-api-test[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[app] == 0.14.0",
"frequenz-repo-config[app] == 0.15.0",
]
build-backend = "setuptools.build_meta"

Expand Down Expand Up @@ -60,7 +60,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[app] == 0.14.0",
"frequenz-repo-config[app] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -70,7 +70,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[app] == 0.14.0",
"frequenz-repo-config[app] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -80,7 +80,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
"pytest-mock == 3.14.0",
"pytest-asyncio == 1.1.0",
"async-solipsism == 0.8",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[lib] == 0.14.0",
"frequenz-repo-config[lib] == 0.15.0",
]
build-backend = "setuptools.build_meta"

Expand Down Expand Up @@ -57,7 +57,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[lib] == 0.14.0",
"frequenz-repo-config[lib] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -67,7 +67,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[lib] == 0.14.0",
"frequenz-repo-config[lib] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -77,7 +77,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
"pytest-mock == 3.14.0",
"pytest-asyncio == 1.1.0",
"async-solipsism == 0.8",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
requires = [
"setuptools == 80.9.0",
"setuptools_scm[toml] == 8.1.0",
"frequenz-repo-config[model] == 0.14.0",
"frequenz-repo-config[model] == 0.15.0",
]
build-backend = "setuptools.build_meta"

Expand Down Expand Up @@ -61,7 +61,7 @@ dev-mkdocs = [
"mkdocs-material == 9.6.18",
"mkdocstrings[python] == 1.0.0",
"mkdocstrings-python == 2.0.1",
"frequenz-repo-config[model] == 0.14.0",
"frequenz-repo-config[model] == 0.15.0",
]
dev-mypy = [
"mypy == 1.9.0",
Expand All @@ -71,7 +71,7 @@ dev-mypy = [
]
dev-noxfile = [
"nox == 2025.5.1",
"frequenz-repo-config[model] == 0.14.0",
"frequenz-repo-config[model] == 0.15.0",
]
dev-pylint = [
# dev-pytest already defines a dependency to pylint because of the examples
Expand All @@ -81,7 +81,7 @@ dev-pylint = [
dev-pytest = [
"pytest == 8.4.1",
"pylint == 3.3.8", # We need this to check for the examples
"frequenz-repo-config[extra-lint-examples] == 0.14.0",
"frequenz-repo-config[extra-lint-examples] == 0.15.0",
"pytest-mock == 3.14.0",
"pytest-asyncio == 1.1.0",
"async-solipsism == 0.8",
Expand Down