Frequenz-repo-config

Latest version: v0.11.0

Safety actively analyzes 682251 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.9.0

Frequenz Repository Configuration Release Notes

Summary

This release brings support for `pytest` 8, a couple of bug fixes and many improvements to the cookiecutter template.

Upgrading

- Once you upgraded, you'll be able to upgrade to `pytest` 8, and indirectly to `sybil` 6, which includes types hints. If you do so, you should remove the `mypy` exception for `sybil` in the `pyproject.toml` file.

Search for the `tool.mypy.overrides` section and remove the `"sybil", "sybil.*"` enties from the `module` list.

Cookiecutter template

To upgrade without regenerating the project, you can follow these steps:

- Run the following command to add the new `pylint` ignore rules:

sh
sed '/ Checked by flake8/a\ "redefined-outer-name",\n "unused-import",' -i pyproject.toml


- It is recommended to update this rule in your repository to use the new bypass rule for the `Protect version branches` ruleset that allows maintainers to force-merge.

You can do this by re-importing the ruleset or manually:

Go to the repository settings -> **Rules** -> **Rulesets** -> **Protect version branches** -> **Bypass list** -> **Add bypass** -> Select **Maintain** role and change the dropdown bypass rule to use **Pull requests** instead of **Always**.

- The `labeler` action was upgraded to 5.0.0. This needs a new configuration file.

If you haven't diverged much from the default configuration (and you are not using exclusion rules), you can update the configuration file by running this script in the root of your repository:

python
import sys
lines = []
state = "looking"
with open(".github/labeler.yml", encoding="utf-8") as fin:
for line in fin:
if "changed-files:" in line:
sys.stderr.write("Already fixed, aborting...\n")
sys.exit(1)
match state:
case "looking":
if not line.startswith(("", " ", "\t")) and line.rstrip().endswith(":"):
line = f"{line} - changed-files:\n - any-glob-to-any-file:\n"
state = "in-label"
case "in-label":
if not line.lstrip().startswith("-"):
state = "looking"
else:
line = f" {line}"
lines.append(line)
with open(".github/labeler.yml", "w", encoding="utf-8") as fout:
fout.writelines(lines)


This will update the file in place, you can inspect the changes with `git diff`.

- For API projects, you can manually add instructions to update the `mkdocs.yml` when the `frequenz-api-common` dependency is updated.

sh
awk -i inplace '/^sed s..frequenz-api-common/ { print; print "sed '"'"'s|https://frequenz-floss.github.io/frequenz-api-common/v[0-9].[0-9]/objects.inv|https://frequenz-floss.github.io/frequenz-api-common/v'"'"'${ver_minor}'"'"'/objects.inv|'"'"' -i mkdocs.yml"; next }1' CONTRIBUTING.md

- Run the following command to fix the `test-installation` CI job when using git URLs in `pyproject.toml`:

sh
patch -p1 <<'EOF'
diff --git a/.github/containers/test-installation/Dockerfile b/.github/containers/test-installation/Dockerfile
index 772b2ae..2494545 100644
--- a/.github/containers/test-installation/Dockerfile
+++ b/.github/containers/test-installation/Dockerfile
-6,7 +6,12

FROM --platform=${TARGETPLATFORM} python:3.11-slim

-RUN python -m pip install --upgrade --no-cache-dir pip
+RUN apt-get update -y && \
+ apt-get install --no-install-recommends -y \
+ git && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/* && \
+ python -m pip install --upgrade --no-cache-dir pip

COPY dist dist
RUN pip install dist/*.whl && \
EOF

- If your repository uses submodules and do cross-arch tests, you need to update the `nox-cross-arch` job in the `.github/workflows/ci.yaml` workflow and add the option `submodules: true` to the `checkout` action, for example:

yaml
steps:
- name: Fetch sources
uses: actions/checkoutv4
with:
submodules: recursive


New Features

- Add support for `pytest` 8.

Cookiecutter template

- Some checks that are already performed by `flake8` are now disabled in `pylint` to avoid double reporting.
- The repository ruleset `Protect version branches` has been updated to allow repository maintainers to skip protection rules in PRs.
- The `labeler` action was upgraded to 5.0.0, which allows for more complex matching rules.
- Instruction were added to update the `mkdocs.yml` when the `frequenz-api-common` dependency is updated.

Bug Fixes

Cookiecutter template

- Fix the `test-installation` CI job when dependencies in `pyproject.toml` contain git URLs.
- Fix cross-arch testing for respositories with submodules.


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/206
* Make copyright year fakable in golden tests by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/212
* Make GitHub Pages configuration more accesible by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/214
* Add a few more checks to the `pylint` ignore list by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/208
* Allow repository maintainers to force-merge by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/213
* Upgrade to labeler 5.0.0 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/211
* Add missing instruction to update dependencies by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/223
* ci: Support using git for dependencies in `test-installation` by Marenz in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/222
* Update pytest and sybil by Marenz in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/221
* Fetch submodules when doing cross-arch tests by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/225
* Prepare release notes for v0.9.0 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/227


**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.8.0...v0.9.0

0.8.0

Frequenz Repository Configuration Release Notes

Summary

This is a minor release with some documentation improvements, new GitHub ruleset and a few bug fixes.

Upgrading

Cookiecutter template

You can follow these steps to upgrade without regenerating the whole project, if you kept the default project structure and configuration:

* Update the `frequenz-repo-config` dependencies in `pyproject.toml` to 0.8.0.

* Run in the root directory of your project:

sh
sed -i '/custom_templates: templates/d' mkdocs.yml
sed -i '/ "too-few-public-methods",/a \ "too-many-return-statements",' pyproject.toml
find -type f -exec sed -i 's/Freqenz/Frequenz/g' {} +
cat <<EOF >> .gitignore

Auto-generated python files from the protocol buffer compiler
py/**/*_pb2.py
py/**/*_pb2.pyi
py/**/*_pb2_grpc.py
py/**/*_pb2_grpc.pyi
EOF


* Optionally go to the GitHub project's settings and replace branch protection rules with the new rulesets. See the new [GitHub configuration guide](https://frequenz-floss.github.io/frequenz-repo-config-python/v0.8/user-guide/start-a-new-project/configure-github/#branches) for more details.

New Features

- New GitHub rulesets are provided with the recommended configuration to protect branches and tags.
- The documentation is restructured into a more organized, easier-to-navigate user guide.
- Documentation on how to configure the GitHub project and PyPI package is now provided.

Cookiecutter template

- The `pylint` check `too-many-return-statements` is now disabled by default.
- Generated protobuf files are now ignored by Git.

Bug Fixes

Cookiecutter template

* Fix typo: `Freqenz` -> `Frequenz`
* Fix `mkdocs.yml` to avoid specifying `custom_templates` for `mkdocstrings` as it is unused and is checked for existence in newer versions.
* Fix paths that are not translated properly from the python package name (198)
* Fix outdated `frequenz-repo-config` dependency


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/175
* Fix typos Freqenz -> Frequenz by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/183
* Add repository rulesets and a docs section to configure the GitHub repository by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/192
* Restructure the home page into a user guide by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/193
* Fix outdated configuration section name by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/195
* Remove `custom_templates` from `mkdocs.yml` by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/201
* Disable the pylint check `too-many-return-statements` by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/200
* docs: Improve mention of `cmd:skip-release-notes` label by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/197
* Properly translate paths from the python package name by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/199
* Ignore files generated from `proto` files by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/202
* docs: Improve `gh-pages` initialization by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/203
* Prepare for v0.8.0 release by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/204
* Add section on configuring PyPI to the user guide by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/205


**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.7.5...v0.8.0

0.7.5

Frequenz Repository Configuration Release Notes

Summary

This release upgrades `mike` to 2.0.0.

Upgrading

Cookiecutter template

There is no need to re-generate the cookiecutter template for this release. Instead you can upgrade the `mike` package in your `pyproject.toml` file and add the new `alias_type: redirect` option to the `plugins.mike` key in the `mkdocs.yml` file.

You should be able to do this by running the following commands:

sh
sed -i '/canonical_version: latest/ i\ alias_type: redirect' mkdocs.yml
sed -i 's/ "mike == .*",/ "mike == 2.0.0",/' pyproject.toml


Please make sure to check the diff and test if everything works as expected. After doing a `git diff` you should get something like:

diff
diff --git a/mkdocs.yml b/mkdocs.yml
index 3d0f82e..6adfbe8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
-93,6 +93,7 plugins:
- literate-nav:
nav_file: SUMMARY.md
- mike:
+ alias_type: redirect
canonical_version: latest
- mkdocstrings:
custom_templates: templates
diff --git a/pyproject.toml b/pyproject.toml
index 9a1604b..b183524 100644
--- a/pyproject.toml
+++ b/pyproject.toml
-47,7 +47,7 dev-formatting = ["black == 23.10.1", "isort == 5.12.0"]
dev-mkdocs = [
"black == 23.10.1",
"Markdown==3.5.1",
- "mike == 1.1.2",

0.7.4

Frequenz Repository Configuration Release Notes

Summary

This release fixes a bug in `mike` version sorting.

Upgrading

- `frequenz.repo.config.mkdocs.mike.`: The `sort_versions()` function now takes plain `str`s as arguments instead of `MikeVersionInfo` objects.

Cookiecutter template

There is no need to regenerate any templates with this release.

Bug Fixes

- CI / `mkdocs`: `mike` version sorting now properly sort pre-releases as older than stable releases for the same major and minor version.


What's Changed
* Fix `mike` version sorting by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/171


**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.7.3...v0.7.4

0.7.3

Frequenz Repository Configuration Release Notes

Summary

This release adds support for `pylint` 3, so downstream projects can upgrade their `pylint` version.

Upgrading

If upgrading `pylint` you might get a few new check errors.

Cookiecutter template

There is no need to regenerate any templates with this release.

Bug Fixes

- `mkdocs`: The `conftest` module is now properly hidden from the documentation again.


What's Changed
* Add support for pylint 3.0 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/169
* docs: Hide `conftest` at any level by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/170


**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.7.2...v0.7.3

0.7.2

Frequenz Repository Configuration Release Notes

Upgrading

Cookiecutter template

Instead of regenerating the templates, you can simply:

- Run this command to fix the typo and wrong `cli` package:

sh
sed -i 's/annothations/annotations/' docs/_css/style.css
sed -i 's/frequenz\.repo\.config\.cli\.version\.mkdocs\.sort/frequenz.repo.config.cli.version.mike.sort/' .github/workflows/ci.yaml


- Replace the comment after the copyright notice in `.github/containers/nox-cross-arch/arm64-ubuntu-20.04-python-3.11.Dockerfile` with:

Dockerfile
This Dockerfile is used to run the tests in arm64, which is not supported by
GitHub Actions at the moment.


Bug Fixes

Cookiecutter template

- docs: Fix typo in `docs/_css/style.css` ("annothations" -> "annotations")
- ci: Fix the description of the arm64 `Dockerfile`


What's Changed
* Fix minor issues in some comments by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/167
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/166


**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.7.1...v0.7.2

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.