Releases: frequenz-floss/frequenz-repo-config-python
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
v0.13.3
v0.13.2
Bug Fixes
- Fix
setuptools
dependency range so it is possible to use the latestsetuptools
version.
What's Changed
- Bump types-markdown from 3.7.0.20241204 to 3.7.0.20250322 by @dependabot in #376
- Clear release notes by @llucax in #381
- Bump pydoclint from 0.6.0 to 0.6.4 by @dependabot in #385
- Update types-setuptools requirement from <78,>=67.6.0 to >=67.6.0,<79 by @dependabot in #384
- Bump the patch group with 2 updates by @dependabot in #382
- Bump the minor group with 3 updates by @dependabot in #386
- Fix setuptools dependency by @llucax in #387
- Prepare release notes for v0.13.2 by @llucax in #388
Full Changelog: v0.13.1...v0.13.2
v0.13.1
Frequenz Repository Configuration Release Notes
Bug Fixes
Cookiecutter template
- Fix the repo-config version number that was outdated.
What's Changed
- Fix the outdated version number in the template by @llucax in #380
- Clear release notes and migration script by @llucax in #378
- Bump the patch group across 1 directory with 6 updates by @dependabot in #379
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Frequenz Repository Configuration Release Notes
Summary
This release improves dependabot groups, so it is less likely that breaking updates are grouped with non-breaking updates and upgrades the GitHub workflows to use more actions, run PR checks faster and use Ubuntu 24.04 instead of 20.04.
Upgrading
Cookiecutter template
- Branch protection rule Protect version branches was updated, please re-import it following the instructions.
Important
For api projects make sure to require the Check proto files with protolint status check too, which is not included by the provided ruleset by default.
All other 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.13.0/cookiecutter/migrate.py | python3
But you might still need to adapt your code:
- The new workflows will test using Python 3.12 too, if your code is not compatible with it, you might need to fix it, or you can just remove the Python 3.12 from the test matrix if you need a quick fix. For example, the
typing-extension
library is compatible with Python 3.12 from version 4.6.0, so you might need to upgrade it if you are using it. - Check the new dependabot configuration file if you customized the dependabot configuration for the
pip
ecosystem. - Add exclusions for any other dependency you have at v0.x.x or that breaks frequently, so dependabot PRs are easy to merge.
New Features
Cookiecutter template
-
Dependabot config now uses a new grouping that should make upgrades more smooth.
- We group patch updates as they should always work.
- We also group minor updates, as it works too for most libraries, typically except libraries that don't have a stable release yet (v0.x.x branch), so we make some exceptions for them.
- Major updates and dependencies excluded by the above groups are still managed, but they'll create one PR per dependency, as breakage is expected, so it might need manual intervention.
- Finally, we group some dependencies that are related to each other, and usually needs to be updated together.
-
The GitHub workflows is now split into PRs and CI workflows.
These new workflows also start using a new reusable
gh-action-nox
, native arm runners and Ubuntu 24.04, as Ubuntu 20.04 will be removed from GitHub runners by April's 1st. Python 3.12 is also added to the test matrix.The PR action is more lightweight, and only tests with one matrix (the most widely used), so PRs can be tested more quickly.
The push workflow does a more intense testing with all matrix combinations. This also runs for the merge queue, so before PRs are actually merged the tests will run for the complete matrix.
- The Python
Protect version branches
branch protection rule now request review to Copilot by default.
What's Changed
- Clear release notes and migration script by @llucax in #362
- Bump nox from 2024.10.9 to 2025.2.9 by @dependabot in #364
- Exclude frequenz-repo-config from dependabot grouping by @llucax in #368
- Update types-setuptools requirement from <76,>=67.6.0 to >=67.6.0,<78 by @dependabot in #374
- Bump setuptools from 75.8.0 to 78.1.0 by @dependabot in #377
- Bump the mkdocstrings group with 2 updates by @dependabot in #372
- Bump types-pyyaml from 6.0.12.20241230 to 6.0.12.20250326 by @dependabot in #373
- Use new split workflow Ubuntu 24.04 in workflows by @llucax in #369
Full Changelog: v0.12.3...v0.13.0
v0.12.3
Frequenz Repository Configuration Release Notes
Enhancements
- Add tips for Mac users in the upgrading section of the documentation.
- Add a final note letting the user know the script run finished in the migration script.
Bug Fixes
Cookiecutter template
- Fixed an outdated link to instructions on how to continue when the cookiecutter template generation finishes.
What's Changed
- Clear release notes by @llucax in #356
- Update link in cookiecutter end instructions by @llucax in #360
- Add notes to the upgrading section and a comment that the script finished by @TalweSingh in #358
New Contributors
- @TalweSingh made their first contribution in #358
Full Changelog: v0.12.2...v0.12.3
v0.12.2
Frequenz Repository Configuration Release Notes
Bug Fixes
- Update dependencies for templates and docs to the latest patch version.
What's Changed
Full Changelog: v0.12.1...v0.12.2
v0.12.1
Frequenz Repository Configuration Release Notes
Upgrading
Even if this is a patch release, it will require a dependency bump for mkdocstrings-python
to v1.14.6 or newer, but since these are only dev dependencies and things will break if you update the dependencies anyway, it seems like a reasonable trade-off.
Bug Fixes
- The new mkdocstrings-macros pluglet didn't work with the latest
mkdocstrings-python
version.
What's Changed
Full Changelog: v0.12.0...v0.12.1
v0.12.0
Frequenz Repository Configuration Release Notes
Summary
This release introduces a new MkDocs macros pluglet system that simplifies documentation setup and provides enhanced functionality for version information and code annotations. It also includes changes to how pytest warnings are handled in templates.
Upgrading
-
The
nox
defaultpytest
session doesn't pass-W=all -vv
topytest
anymore. You can use thepyproject.toml
file to configure default options forpytest
, for example:[tool.pytest.ini_options] addopts = "-W=all -Werror -Wdefault::DeprecationWarning -Wdefault::PendingDeprecationWarning -vv"
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.12.0/cookiecutter/migrate.py | python3
But you might still need to adapt your code:
-
pytest
now uses-Werror
by default (but still treat deprecations as normal warnings), so if your tests run with warnings, they will now be turned to errors, and you'll need to fix them. -
Projects using
docs/_scripts/macros.py
with customized scripts can use the new provided utility functions. See themkdocstrings_macros
documentation for the new features and setup.
New Features
- Two new modules were introduced to facilitate the configuration of
macros
for use within docstrings viamkdocstrings
:mkdocstrings_macros
andannotations
.
Cookiecutter template
pytest
now uses-Werror -Wdefault::DeprecationWarning -Wdefault::PendingDeprecationWarning
by default. Deprecations are still treated as warnings, as when testing with thepytest_min
session is normal to get deprecation warnings as we are using old versions of dependencies.
Bug Fixes
Cookiecutter template
- Fixed a compatibility issue in the macros doc script with
mkdocsstrings
0.28.
What's Changed
- Clear release notes by @llucax in #334
- Make
pytest
treat warnings as errors by @llucax in #335 - Bump the required group with 2 updates by @dependabot in #336
- Bump types-markdown from 3.7.0.20240822 to 3.7.0.20241204 by @dependabot in #339
- Bump the required group with 7 updates by @dependabot in #337
- Bump types-pyyaml from 6.0.12.20240917 to 6.0.12.20241230 by @dependabot in #338
- Fix
mypy
error with setuptools 7.6.8 type hints by @llucax in #347 - Bump the required group across 1 directory with 5 updates by @dependabot in #348
- Bump isort from 5.13.2 to 6.0.0 by @dependabot in #346
- Bump black from 24.10.0 to 25.1.0 by @dependabot in #345
- Move mkdocstrings-macros integration to a library by @llucax in #349
- Fix wrong argument in migration script by @llucax in #350
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Frequenz Repository Configuration Release Notes
Summary
This version accumulates a few improvements, and bumps the dependency of setuptools to use v75, which is compatible with PEP625, which is necessary to be able to keep uploading to PyPI, so you should upgrade to this version as soon as possible.
The migration script was also rewritten in Python, so it should be more compatible with different OSes.
Upgrading
- The
frequenz.repo.config.github.abort()
function now takes most arguments as keyword-only arguments. - The Queue PRs for v0.x.x GitHub ruleset was renamed to Queue PRs for the default branch and now targets the default branch. It also only have the merge queue restriction, all other restrictions were removed as they are already present in the Protect version branches ruleset. You might want to re-import this ruleset to your repositories.
Cookiecutter template
-
Run the migration script to incorporate the changes to the cookiecutter templates for this release.
-
API projects don't include the
google-common-protos
dependency by default, if you need that dependency you need to update your configuration inpyproject.toml
:[tool.frequenz-repo-config.protobuf] include_paths = ["submodules/api-common-protos", "submodules/frequenz-api-common/proto"]
(you need to adapt the list of include path to all the submodules you are including in your API)
New Features
- Added a new GitHub branch ruleset for Rust projects.
Cookiecutter template
- Group GitHub Actions dependabot updates.
- API projects don't include the
google-common-protos
dependency by default. - API projects updated the
grpcio
dependency to1.66.1
. - API projects updated the
frequenz-api-common
dependency to0.6
. - Bump most of the dependencies.
- Change
edit_uri
default branch to v0.x.x in mkdocs.yml. - Added a new default option
asyncio_default_fixture_loop_scope = "function"
forpytest-asyncio
as not providing a value is deprecated. - The migration script is now written in Python, so it should be (hopefully) more compatible with different OSes.
- Disable more
pylint
checks that are also checked bymypy
to avoid false positives. - Remove the redundant
--platform
from the testing dockerfile.
Bug Fixes
- Sybil now parses the
__init__.py
file as well. Previously it was disabled due to an upstream bug.
What's Changed
- Fix TODO typos for workflows/release-notes-checks by @daniel-zullo-frequenz in #291
- Reset release notes and migration script for the next release by @llucax in #292
- Group dependabot updates for GitHub Actions by @llucax in #293
- Bump types-pyyaml from 6.0.12.20240311 to 6.0.12.20240724 by @dependabot in #297
- Update types-setuptools requirement from <71,>=67.6.0 to >=67.6.0,<72 by @dependabot in #296
- Update setuptools requirement from <71,>=67.6.0 to >=67.6.0,<72 by @dependabot in #295
- Bump the required group with 5 updates by @dependabot in #294
- Bump the required group with 4 updates by @dependabot in #300
- Update setuptools requirement from <72,>=67.6.0 to >=67.6.0,<73 by @dependabot in #301
- Pin protobuf related dependencies by @llucax in #309
- Bump the required group across 1 directory with 10 updates by @dependabot in #310
- Bump types-pyyaml from 6.0.12.20240724 to 6.0.12.20240808 by @dependabot in #307
- Update setuptools requirement from <73,>=67.6.0 to >=67.6.0,<75 by @dependabot in #306
- Fix the labeler configuration example by @llucax in #304
- Update types-setuptools requirement from <72,>=67.6.0 to >=67.6.0,<75 by @dependabot in #308
- Update setuptools requirement from <75,>=67.6.0 to >=67.6.0,<76 by @dependabot in #314
- Bump the required group with 4 updates by @dependabot in #312
- Update sybil requirement from <7,>=6.1.1 to >=6.1.1,<9 by @dependabot in #315
- Change edit_uri default branch to v0.x.x in mkdocs.yml by @cwasicki in #311
- Update types-setuptools requirement from <75,>=67.6.0 to >=67.6.0,<76 by @dependabot in #313
- Bump types-pyyaml from 6.0.12.20240808 to 6.0.12.20240917 by @dependabot in #316
- Bump SDK dependency to 1.0.0rc901 by @llucax in #317
- Add
asyncio_default_fixture_loop_scope = "function"
option by @llucax in #318 - Add GitHub branch ruleset for Rust by @llucax in #320
- Sybil: Parse init by @Marenz in #321
- Bump the required group with 7 updates by @dependabot in #322
- Bump the required group with 2 updates by @dependabot in #325
- Bump setuptools-scm[toml] from 7.1.0 to 8.1.0 by @dependabot in #326
- Update sybil requirement from <9,>=6.1.1 to >=6.1.1,<10 by @dependabot in #327
- Port the migration script to Python by @llucax in #329
- Disable more pylint checks that are also checked by mypy by @llucax in #330
- Bump dependencies in the template by @llucax in #331
- Remove the redundant
--platform
from theDockerfile
by @llucax in #332 - Prepare for the v0.11.0 release by @llucax in #333
New Contributors
- @daniel-zullo-frequenz made their first contribution in #291
Full Changelog: v0.10.0...v0.11.0