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