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 3 of 5

0.7.1

Frequenz Repository Configuration Release Notes

New Features

Cookiecutter template

- Show a link to the documentation in PyPI.

What's Changed
* Add link to documentation on PyPI by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/164


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

0.7.0

Frequenz Repository Configuration Release Notes

Summary

This release focuses on improving the documentation generation and the CI. In particular it brings a new versioning scheme for the documentation that supports multiple development branches and exposes pre-releases.

Upgrading

Cookiecutter template

- The recommended `cookiecutter` version was bumped to 2.4.0 to avoid some buggy old versions.

- `mkdocs`

- The script `docs/mkdocstrings_autoapi.py` was moved to `docs/_scripts/mkdocstrings.py`.
- Note that now code annotations will be numbered. This is useful to hint about the order one should read the annotations.
- The following files were renamed to keep the documentation directory clean for documentation files:

- `docs/css` -> `docs/_css`
- `docs/overrides` -> `docs/_overrides`
- `logo.png` -> `docs/_img/logo.png`

- You might need to remove old `mike` version aliases. Probably removing `next` should be enough:

bash
mike delete -p next


You can use `mike list` to list all versions and aliases.

- CI

- You can now make your branch protection rule only require the "Test with nox" CI job to pass. All the matrix expansions will merge into it, so there is no need to change branch protection rules if matrix elements are added or removed.
- Dependabot now will check for updates monthly and on a random day and time.

- The `src/conftest.py` file was moved to `src/<project_path>/conftest.py`.

This is to leave the `src` directory free of any files, so it is easier to navigate using auto-completion and GitHub file browser.

New Features

- `frequenz_repo_config.version`: New module to get the version information for a repository.
- `frequnz_repo_config.github`: New module to interact with GitHub.
- `frequenz.repo_config.mkdocs.mike`: New module to manage `mike` versions and aliases.
- `frequenz.repo_config.cli`: New package to implement CLI commands.

- `frequenz.repo.config.cli.version.mike.info`: New command to print GitHub Action variables with for the current `mike` version.
- `frequenz.repo.config.cli.version.mike.sort`: New command to sort `mike` versions file (`versions.json`).

Cookiecutter template

- `mkdocs`

- New markdown extensions: [`def_list` / `task_list`](https://squidfunk.github.io/mkdocs-material/reference/lists/) and [`footnotes`](https://squidfunk.github.io/mkdocs-material/reference/footnotes/).
- New [`mkdocs-macros`](https://mkdocs-macros-plugin.readthedocs.io/en/latest/) extension.
- Show inherited attributes in the documentation.
- Make code annotations numbered. This is useful to hint about the order one should read the annotations.
- Add a navigation footer to show previous and next pages. This is specially useful when reading the documentation in a mobile device since the navigation bar is hidden.
- Updated dependencies.
- The hooking of `mkdocstrings` to `macros` plugins is moved to a separate function to avoid the noise in the `define_env()` function.
- Improve formatting of signatures to show the types.
- We use a new `mike` versioning scheme:

- Versions now have a title with the full tag name for tags and includes the (short) commit SHA for branches so users can know exactly which version they are reading.
- Pre-releases are now published too as `vX.Y-pre`. They have aliases to point to the latest pre-release in a major (`vX-pre`) and the absolute latest pre-release (`latest-pre`).
- All branches are now published with their own version as `vX.Y-dev`. They have aliases to point to the latest version in a major (`vX-dev`) and the absolute latest version (`latest-dev`). This means the old `next` becomes `latest-dev`.

- CI

- Add CI job to test package installation on multiple platforms (amd64 and arm64).
- Add CI job to run the tests in arm64.
- Add a CI job to *join* all `nox` runs, so only one branch protection rule needs to be used.
- Dependabot now will check for updates monthly and on a random day and time. This is to avoid all repositories updating at the same time.

- Add a section about cross-arch testing to `CONTRIBUTING.md`.

Bug Fixes

Cookiecutter template

- `mkdocs`

- Fixed mermaid diagrams not rendering in the documentation.
- `mypy` ignores for `cookiecutter` have been removed. They should have never be there as generated projects don't use `cookiecutter`.
- `mypy` overrides now are applied to API projects too.
- Now the `latest` `mike` version will point to the highest stable version available, not the latest version published.

- Dependabot branches are now not tested for `push` events, as they are already tested by `pull` events.


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/139
* Several fixes and improvements by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/141
* Move cookiecutter filters to a Jinja2 extension by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/143
* Make dependabot update monthly by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/144
* Add a navigation footer to show previous and next pages by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/148
* [ci] [cross-arch] Allow creating venvs with python 3.11 by tiyash-basu-frequenz in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/151
* Don't run cookiecutter tests in arm64 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/155
* Don't test the push event for dependabot branches by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/154
* Move `src/confest.py` to `src/frequenz/repo/conftest.py` by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/146
* Improve `mike` versions by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/150
* Keep versions up to date in the docs by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/162

New Contributors
* tiyash-basu-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/151

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

0.7.0rc.1

Frequenz Repository Configuration Release Notes

Summary

This release focuses on improving the documentation generation and the CI. In particular it brings a new versioning scheme for the documentation that supports multiple development branches and exposes pre-releases.

Upgrading

Cookiecutter template

- The recommended `cookiecutter` version was bumped to 2.4.0 to avoid some buggy old versions.

- `mkdocs`

- The script `docs/mkdocstrings_autoapi.py` was moved to `docs/_scripts/mkdocstrings.py`.
- Note that now code annotations will be numbered. This is useful to hint about the order one should read the annotations.
- The following files were renamed to keep the documentation directory clean for documentation files:

- `docs/css` -> `docs/_css`
- `docs/overrides` -> `docs/_overrides`
- `logo.png` -> `docs/_img/logo.png`

- You might need to remove old `mike` version aliases. Probably removing `next` should be enough:

bash
mike delete -p next


You can use `mike list` to list all versions and aliases.

- CI

- You can now make your branch protection rule only require the "Test with nox" CI job to pass. All the matrix expansions will merge into it, so there is no need to change branch protection rules if matrix elements are added or removed.
- Dependabot now will check for updates monthly and on a random day and time.

- The `src/conftest.py` file was moved to `src/<project_path>/conftest.py`.

This is to leave the `src` directory free of any files, so it is easier to navigate using auto-completion and GitHub file browser.

New Features

- `frequenz_repo_config.version`: New module to get the version information for a repository.
- `frequnz_repo_config.github`: New module to interact with GitHub.
- `frequenz.repo_config.mkdocs.mike`: New module to manage `mike` versions and aliases.
- `frequenz.repo_config.cli`: New package to implement CLI commands.

- `frequenz.repo.config.cli.version.mike.info`: New command to print GitHub Action variables with for the current `mike` version.
- `frequenz.repo.config.cli.version.mike.sort`: New command to sort `mike` versions file (`versions.json`).

Cookiecutter template

- `mkdocs`

- New markdown extensions: [`def_list` / `task_list`](https://squidfunk.github.io/mkdocs-material/reference/lists/) and [`footnotes`](https://squidfunk.github.io/mkdocs-material/reference/footnotes/).
- New [`mkdocs-macros`](https://mkdocs-macros-plugin.readthedocs.io/en/latest/) extension.
- Show inherited attributes in the documentation.
- Make code annotations numbered. This is useful to hint about the order one should read the annotations.
- Add a navigation footer to show previous and next pages. This is specially useful when reading the documentation in a mobile device since the navigation bar is hidden.
- Updated dependencies.
- The hooking of `mkdocstrings` to `macros` plugins is moved to a separate function to avoid the noise in the `define_env()` function.
- Improve formatting of signatures to show the types.
- We use a new `mike` versioning scheme:

- Versions now have a title with the full tag name for tags and includes the (short) commit SHA for branches so users can know exactly which version they are reading.
- Pre-releases are now published too as `vX.Y-pre`. They have aliases to point to the latest pre-release in a major (`vX-pre`) and the absolute latest pre-release (`latest-pre`).
- All branches are now published with their own version as `vX.Y-dev`. They have aliases to point to the latest version in a major (`vX-dev`) and the absolute latest version (`latest-dev`). This means the old `next` becomes `latest-dev`.

- CI

- Add CI job to test package installation on multiple platforms (amd64 and arm64).
- Add CI job to run the tests in arm64.
- Add a CI job to *join* all `nox` runs, so only one branch protection rule needs to be used.
- Dependabot now will check for updates monthly and on a random day and time. This is to avoid all repositories updating at the same time.

- Add a section about cross-arch testing to `CONTRIBUTING.md`.

Bug Fixes

Cookiecutter template

- `mkdocs`

- Fixed mermaid diagrams not rendering in the documentation.
- `mypy` ignores for `cookiecutter` have been removed. They should have never be there as generated projects don't use `cookiecutter`.
- `mypy` overrides now are applied to API projects too.
- Now the `latest` `mike` version will point to the highest stable version available, not the latest version published.

- Dependabot branches are now not tested for `push` events, as they are already tested by `pull` events.


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/139
* Several fixes and improvements by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/141
* Move cookiecutter filters to a Jinja2 extension by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/143
* Make dependabot update monthly by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/144
* Add a navigation footer to show previous and next pages by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/148
* [ci] [cross-arch] Allow creating venvs with python 3.11 by tiyash-basu-frequenz in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/151
* Don't run cookiecutter tests in arm64 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/155
* Don't test the push event for dependabot branches by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/154
* Move `src/confest.py` to `src/frequenz/repo/conftest.py` by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/146
* Improve `mike` versions by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/150
* Keep versions up to date in the docs by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/162

New Contributors
* tiyash-basu-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/151

**Full Changelog**: https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.6.2...v0.7.0-rc.1

0.6.2

Frequenz Repository Configuration Release Notes

Bug Fixes

- Update the version used in the documentation.

Cookiecutter template

- Update the generated version in dependencies.
- Exclude `benchmarks/` directory from source distribution.
- Use the native `navigation.indexes` extension from `mkdocs-material` instead of the `section-indexes` plugin.

The plugin had some issues when failing to keep up to date.


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/130
* Bug fixes for v0.6.2 by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/137


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

0.6.1

Frequenz Repository Configuration Release Notes

Bug Fixes

Cookiecutter template

- Fix typo in dependabot's configuration for grouping.


What's Changed
* Fix dependabot grouping by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/129


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

0.6.0

Frequenz Repository Configuration Release Notes

Summary

This release replaces [`darglint`](https://github.com/terrencepreilly/darglint) (not maintained anymore) with [`pydoclint`](https://github.com/jsh9/pydoclint) which brings performance and checks improvements. It also adds basic `flake8` checks and `mypy` fixes.

Upgrading

- `flake8` basic checks are enabled now. Most are already covered by `pylint`, but there are a few differences, so you might need to fix your code if `flake8` find some issues.

- `darglint`:

* Replaced by `pydoclint`, `pydoclint` can find a few more issues than `darglint`, so your code might need adjusting.

* It is recommended to remove the `darglint` configuration file `.darglint` and the `darglint` `pip` package, if it is kept installed, it will make `flake8` run extremely slowly even if not used: `pip uninstall darglint`) and rebuild you `nox` *venvs* if you use `-R`.

- If you are upgrading without regenerating the cookiecutter templates, you'll need to adjust the dependencies accordingly.

- `nox`: The `Config.package_args()` method was removed.

- `mypy`

* Options must be specified in the `pyproject.toml` file, including the option `packages` specifying the package containing the source code of the project. The documentation was updated to suggest the recommended options.

* Dependencies on *stubs* for running the type check need to be specified manually in the `pyproject.toml` file, so they can be pinned (before they were installed automatically by `mypy`.

* The `mypy` `nox` session runs `mypy` 2 times, one without options to check the package including the sources, and one with the paths of development paths (`tests`, `benchmarks`, etc.).

To migrate existing projects:

1. Add the recommended options (previously specified in the default options object):

toml
[tool.mypy]
explicit_package_bases = true
namespace_packages = true
packages = ["<package.name>"] For example: "frequenz.repo.config" for this package
strict = true


2. Find out which *stubs* were previously installed automatically by `mypy`:

sh
python -m venv tmp_venv
. tmp_venv/bin/activate
pip install -e .[dev-mypy]
mypy --install-types
deactivate


3. Look at the list of packages it offers to install and answer "no".

4. Search for the latest package version for those packages in https://pypi.org/project/<package-name>/

5. Edit the `pyproject.toml` file to add those dependencies in `dev-mypy`, for example:

toml
[project.optional-dependencies]
dev-mypy = [
"mypy == 1.5.1",
"types-setuptools == 68.1.0.0",
...


Cookiecutter template

- CI: The `nox` job now uses a matrix to run the different `nox` sessions in parallel. If you use branch projection with the `nox` job you need to update the rules to include each matrix job.

- See the general upgrading section.

New Features

- `flake8` is now used to check the files.

- `darlint` was replaced by `pydoclint`, which is way faster and detect more issues.

- `nox`: The `Config.path_args()` method now accepts two optional arguments to control with paths to include.

Cookiecutter template

- Now dependabot updates will be done weekly and grouped by *required* and *optional* for minor and patch updates (major updates are still done individually for each dependency).

- ci: Add debug information when installing pip packages.

The output of `pip freeze` is printed to be able to more easily debug different behaviours between GitHub workflow runs and local runs.

- `mypy`: Add a commented out `no-incremental` option, which makes the run slower but prevents some issues with `mypy` giving different results on different runs.

- See the general new features section.


What's Changed
* Clear release notes by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/123
* Group dependabot updates by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/126
* ci: Add env and pip debug information by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/127
* Improve comment about updating dependencies by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/125
* Replace `darglint` with `pydoclint` by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/124
* Improve how `mypy` is run by llucax in https://github.com/frequenz-floss/frequenz-repo-config-python/pull/128


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

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.