Releases: frequenz-floss/frequenz-repo-config-python
v0.16.0
Frequenz Repository Configuration Release Notes
Summary
This is a maintenance, template-only, bugfix release.
Upgrading
Cookiecutter template
All upgrading should be done via the migration script or regenerating the templates.
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.16.0/cookiecutter/migrate.py | python3Bug Fixes
Cookiecutter template
- Added a migration step for api repositories to fix
mkdocs.ymlwhen the previousmkdocstrings-pythonv2 migration moved onlypaths: ["src"]underhandlers.python.optionsbut notpaths: ["py"]. - Fixed runners for jobs that require Docker and where wrongly converted to
ubuntu-slimin v0.15.0, changing them back toubuntu-24.04to avoid Docker-related failures. The template and the migration script were both updated to reflect this change. - Updated the repo-config migration workflow template and migration script so existing repositories also add the
merge_grouptrigger and skip the job unless the event ispull_request_target, allowing the workflow to be used as a required merge-queue check. - Added a migration step to remove the copilot review request from the Protect version branch protection rules. This was also done by v0.15.0 in theory, but the migration step was wrong and didn't update it properly.
What's Changed
- Fix mkdocs python path for API repos by @llucax in #534
- migrate: Update runners for Docker jobs by @llucax in #536
- ci: Trigger repo-config migration in merge queue by @llucax in #537
- migrate: Fix version ruleset copilot removal by @llucax in #535
- Prepare for the v0.16.0 release by @llucax in #538
Full Changelog: v0.15.1...v0.16.0
v0.15.1
Frequenz Repository Configuration Release Notes
Note
This is a bugfix release for v0.15.0. This release was never published to PyPI, so we keep the entire release notes for v0.15.0 here (updated to the new changes) to make it easier for users to upgrade from v0.14.0 to v0.15.x.
The only change with respect to v0.15.0 is using the appropriate job runner for the publish-to-pypi job in ci.yaml. v0.15.0 updated it to ubuntu-slim but that didn't work because it requires Docker, and it is not installed on the ubuntu-slim runner.
Summary
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
Cookiecutter template
All upgrading should be done via the migration script or regenerating the templates.
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.15.0/cookiecutter/migrate.py | python3But you might still need to adapt your code:
New Features
Cookiecutter template
-
Migrated lightweight workflow jobs to use the new
ubuntu-slimrunner for cost savings.
The following jobs now useubuntu-slim:ci.yaml:protolint,nox-all,test-installation-all,create-github-releaseci-pr.yaml:protolintauto-dependabot.yaml:auto-mergerelease-notes-check.yml:check-release-notesdco-merge-queue.yml:DCOlabeler.yml:Label
-
Migrated the
publish-to-pypijob inci.yamlfromubuntu-latesttoubuntu-24.04to get reproducible builds. -
Added the
flake8-datetimezplugin to theflake8session. This plugin prevents accidental use of naivedatetimeobjects by flagging calls that create or return datetimes without timezone information. -
The CI workflow now uses a simpler matrix.
-
Added
repo-config-migration.yamlworkflow that automatically runs the migration script, commits changes, posts results, and auto-approves/merges only when no migration commit is created.The workflow handles multi-version jumps by running each intermediate migration in sequence. The migration script output is posted as a PR comment and in the job summary. PRs with migration commits stay open for manual approval and merge. PRs that need manual intervention fail the job until a human completes the steps and signals resolution by removing the
tool:repo-config:migration:intervention-pendinglabel or adding thetool:repo-config:migration:intervention-donelabel. -
The
auto-dependabot.yamlworkflow now skips repo-config group PRs, which are handled by the new migration workflow instead. -
Updated the default "Protect version branches" ruleset to require the new
Migrate Repo Configstatus check, which is added by the migration workflow to PRs that need manual intervention. This prevents merging PRs that require manual migration steps until those steps are completed and the check passes. Also removed the required code-owner approval and automatic Copilot review request.
Bug Fixes
Cookiecutter template
-
Switched
project.licenseto SPDX expressions and addedproject.license-files. This removes deprecated setuptools license metadata and avoids build warnings. -
Fixed auto-dependabot workflow failing to trigger merge queue CI or complete auto-merge. The workflow now uses a GitHub App installation token (via
actions/create-github-app-token) instead ofGITHUB_TOKEN, which was suppressing subsequent workflow runs by design. Workflow permissions have been reduced to the minimum needed for the workflow (contents: readandpull-requests: write). -
Fix dependabot group patterns for repo-config and mkdocstrings.
What's Changed
Full Changelog: v0.15.0...v0.15.1
v0.15.0
Frequenz Repository Configuration Release Notes
Summary
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
Cookiecutter template
All upgrading should be done via the migration script or regenerating the templates.
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.15.0/cookiecutter/migrate.py | python3But you might still need to adapt your code:
New Features
Cookiecutter template
-
Migrated lightweight workflow jobs to use the new
ubuntu-slimrunner for cost savings.
The following jobs now useubuntu-slim:ci.yaml:protolint,nox-all,test-installation-all,create-github-release,publish-to-pypici-pr.yaml:protolintauto-dependabot.yaml:auto-mergerelease-notes-check.yml:check-release-notesdco-merge-queue.yml:DCOlabeler.yml:Label
-
Added the
flake8-datetimezplugin to theflake8session. This plugin prevents accidental use of naivedatetimeobjects by flagging calls that create or return datetimes without timezone information. -
The CI workflow now uses a simpler matrix.
-
Added
repo-config-migration.yamlworkflow that automatically runs the migration script, commits changes, posts results, and auto-approves/merges only when no migration commit is created.The workflow handles multi-version jumps by running each intermediate migration in sequence. The migration script output is posted as a PR comment and in the job summary. PRs with migration commits stay open for manual approval and merge. PRs that need manual intervention fail the job until a human completes the steps and signals resolution by removing the
tool:repo-config:migration:intervention-pendinglabel or adding thetool:repo-config:migration:intervention-donelabel. -
The
auto-dependabot.yamlworkflow now skips repo-config group PRs, which are handled by the new migration workflow instead. -
Updated the default "Protect version branches" ruleset to require the new
Migrate Repo Configstatus check, which is added by the migration workflow to PRs that need manual intervention. This prevents merging PRs that require manual migration steps until those steps are completed and the check passes. Also removed the required code-owner approval and automatic Copilot review request.
Bug Fixes
Cookiecutter template
-
Switched
project.licenseto SPDX expressions and addedproject.license-files. This removes deprecated setuptools license metadata and avoids build warnings. -
Fixed auto-dependabot workflow failing to trigger merge queue CI or complete auto-merge. The workflow now uses a GitHub App installation token (via
actions/create-github-app-token) instead ofGITHUB_TOKEN, which was suppressing subsequent workflow runs by design. Workflow permissions have been reduced to the minimum needed for the workflow (contents: readandpull-requests: write). -
Fix dependabot group patterns for repo-config and mkdocstrings.
What's Changed
- CONTRIBUTING.md: Document cookiecutter workflow by @llucax in #493
- Clear release notes by @llucax in #491
- Add AGENTS.md by @llucax in #494
- Use
ubuntu-slimfor lightweight jobs by @llucax in #496 - Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #498
- Replace deprecated setuptools options by @llucax in #503
- Bump setuptools from 80.9.0 to 80.10.2 in the minor group by @dependabot[bot] in #500
- Improve migration script results reporting by @llucax in #507
- template: Add flake8-datetimez by @llucax in #506
- Use GitHub app credentials for auto-dependabot by @llucax in #508
- Fix dependabot-auto-approve version by @llucax in #510
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #497
- Bump the patch group across 1 directory with 4 updates by @dependabot[bot] in #509
- Fix dependabot repo-config and mkdocstrings groups by @llucax in #512
- Bump frequenz-floss/gh-action-setup-python-with-deps from 1.0.1 to 1.0.2 in the compatible group by @dependabot[bot] in #513
- Bump mkdocs-material from 9.7.1 to 9.7.2 in the patch group by @dependabot[bot] in #514
- Bump nox from 2025.11.12 to 2026.2.9 by @dependabot[bot] in #515
- Update types-setuptools requirement from <81,>=67.6.0 to >=67.6.0,<83 by @dependabot[bot] in #516
- Bump black from 25.12.0 to 26.1.0 by @dependabot[bot] in #501
- Simplify CI job matrix by @llucax in #511
- Bump setuptools from 80.10.2 to 82.0.0 by @dependabot[bot] in #517
- Fix tests by adding dependency constraint by @llucax in #528
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #522
- Only apply ubuntu-slim to publish-to-pypy for public repos by @llucax in #525
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #521
- Bump the patch group with 3 updates by @dependabot[bot] in #523
- Bump frequenz-floss/dependabot-auto-approve from 1.4.0 to 1.5.0 in the compatible group by @dependabot[bot] in #520
- Bump isort from 7.0.0 to 8.0.1 by @dependabot[bot] in #524
- Add repo-config auto-migration workflow by @llucax in #519
- Improve "Protect version branches" ruleset by @llucax in #529
- Prepare for the v0.15.0 release by @llucax in #530
Full Changelog: v0.14.0...v0.15.0
v0.14.0
Frequenz Repository Configuration Release Notes
Summary
This release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.
Upgrading
Cookiecutter template
All upgrading should be done via the migration script or regenerating the templates.
curl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3But you might still need to adapt your code, just have a look at the script output for further instructions.
New Features
mkdocsstrings-pythonv2 is now supported.
Cookiecutter template
- Dependencies have been updated.
- New warning ignores for protobuf gencode versions in pytest.
- Added Dependabot auto-merge workflow using
frequenz-floss/dependabot-auto-approveaction.
Bug Fixes
Cookiecutter template
- mkdocstrings: Move
pathskey to the right section inmkdocs.yml. - Fix invalid YAML syntax in Dependabot workflow template.
What's Changed
- Bump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by @dependabot[bot] in #410
- Bump the patch group with 2 updates by @dependabot[bot] in #408
- Bump the minor group with 2 updates by @dependabot[bot] in #409
- Improve filtering of warnings in pytest by @llucax in #411
- Fix mkdocsstrings config by @llucax in #412
- Merge v0.13.x into v0.x.x by @llucax in #420
- Bump the patch group with 3 updates by @dependabot[bot] in #424
- Bump the minor group with 2 updates by @dependabot[bot] in #423
- Update templates dependencies by @llucax in #431
- Bump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by @dependabot[bot] in #430
- Bump mypy from 1.16.1 to 1.17.1 in the minor group by @dependabot[bot] in #428
- Bump the mkdocstrings group across 1 directory with 2 updates by @dependabot[bot] in #432
- Bump the patch group across 1 directory with 3 updates by @dependabot[bot] in #433
- Bump the compatible group with 2 updates by @dependabot[bot] in #426
- Bump mkdocstrings-python from 1.17.0 to 1.18.2 in the mkdocstrings group by @dependabot[bot] in #440
- Bump types-pyyaml from 6.0.12.20250516 to 6.0.12.20250822 by @dependabot[bot] in #439
- Bump actions/download-artifact from 4 to 5 in the artifacts group by @dependabot[bot] in #438
- Bump types-colorama from 0.4.15.20240311 to 0.4.15.20250801 by @dependabot[bot] in #436
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #437
- Bump pydoclint from 0.6.6 to 0.6.11 by @dependabot[bot] in #434
- Bump setuptools-scm[toml] from 8.3.1 to 9.2.0 by @dependabot[bot] in #435
- Bump the minor group with 5 updates by @dependabot[bot] in #452
- Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 by @dependabot[bot] in #454
- Bump the patch group across 1 directory with 4 updates by @dependabot[bot] in #455
- Bump actions/labeler from 5.0.0 to 6.0.1 by @dependabot[bot] in #450
- Bump pydoclint from 0.6.11 to 0.7.3 by @dependabot[bot] in #453
- Support pylint 4 by @Marenz in #457
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #459
- Bump isort from 6.0.1 to 7.0.0 by @dependabot[bot] in #464
- Bump nox from 2025.5.1 to 2025.10.16 in the minor group by @dependabot[bot] in #462
- Add Dependabot auto-merge workflow and migration script by @Marenz in #466
- Fix invalid YAML formatting in Dependabot workflow template by @Marenz in #469
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #476
- Bump the patch group across 1 directory with 3 updates by @dependabot[bot] in #478
- Add support for
mkdocstrings-pythonv2 by @llucax in #481 - Merge v0.13.8 into v0.x.x by @llucax in #480
- Bump the minor group with 7 updates by @dependabot[bot] in #488
- Bump pytest from 9.0.1 to 9.0.2 in the patch group by @dependabot[bot] in #487
- Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #475
- Bump pydoclint from 0.7.3 to 0.8.3 by @dependabot[bot] in #477
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #460
- Prepare for release v0.14.0 by @llucax in #490
- Update mypy-protobuf requirement from <4,>=3.0.0 to >=3.0.0,<5 by @dependabot[bot] in #489
Full Changelog: v0.13.8...v0.14.0
v0.13.8
Frequenz Repository Configuration Release Notes
New Features
mkdocs-gen-filesv0.6 is now supported.
What's Changed
Full Changelog: v0.13.7...v0.13.8
v0.13.7
Frequenz Repository Configuration Release Notes
New Features
- Pytest v9.x is now supported.
What's Changed
Full Changelog: v0.13.6...v0.13.7
v0.13.6
v0.13.5
Frequenz Repository Configuration Release Notes
Bug Fixes
-
Fixed some typos in the docs.
-
Fixed wrong comparison for
mikeversions when versions were equal. -
Fixed version regex escaping of
.. This means that a version like v0x1e1 were accepted as valid semver versions. Now this version is not considered a semver version anymore. -
setuptools.grpc_tools: Fix wrong passing of include paths when passed via:- Command-line: Now extra white-spaces and empty strings are removed, before they were passed to
protoc -I. pyproject.toml: Now an empty array/list can be passed to override the default paths, before this resulted in an empty string being passed toprotoc -I.
- Command-line: Now extra white-spaces and empty strings are removed, before they were passed to
What's Changed
- Clear release notes by @llucax in #405
- Fix typos in documentation by @llucax in #416
- setuptools: Fix passing empty include paths by @llucax in #418
- Fix missing comparison for equal versions by @llucax in #415
Full Changelog: v0.13.4...v0.13.5
v0.13.4
Frequenz Repository Configuration Release Notes
Summary
This release just widens the setuptools dependency to allow for version 80.x.
What's Changed
- Clear release notes by @llucax in #393
- Widen setuptools upper bound to < 81 by @llucax in #401
- Bump setuptools from 79.0.0 to 80.1.0 by @dependabot in #400
- Bump pydoclint from 0.6.4 to 0.6.6 by @dependabot in #397
- Bump types-pyyaml from 6.0.12.20250326 to 6.0.12.20250402 by @dependabot in #398
- Update types-setuptools requirement from <80,>=67.6.0 to >=67.6.0,<81 by @dependabot in #399
- Bump the patch group across 1 directory with 4 updates by @dependabot in #402
- Bump the minor group with 4 updates by @dependabot in #404
Full Changelog: v0.13.3...v0.13.4