# Frequenz Repository Configuration
[![Build Status](https://github.com/frequenz-floss/frequenz-repo-config-python/actions/workflows/ci.yaml/badge.svg)](https://github.com/frequenz-floss/frequenz-repo-config-python/actions/workflows/ci.yaml)
[![PyPI Package](https://img.shields.io/pypi/v/frequenz-repo-config)](https://pypi.org/project/frequenz-repo-config/)
[![Docs](https://img.shields.io/badge/docs-latest-informational)](https://frequenz-floss.github.io/frequenz-repo-config-python/)
## Introduction
This is a highly opinionated set of tools and configurations to set up a Python
repository for [Frequenz](https://frequenz.com) projects.
It offers:
* [Cookiecutter] templates for scaffolding new projects
* Trivial build of `noxfile.py` with some predefined sessions that include all
common checks.
* Tools to build protobuf/grpc files as Python, including type information.
## Supported Platforms
The following platforms are officially supported (tested):
- **Python:** 3.11
- **Operating System:** Ubuntu Linux 20.04
- **Architectures:** amd64, arm64
## Quick Example
To start a new project, you should first [install
Cookiecutter](https://cookiecutter.readthedocs.io/en/stable/installation.html).
It is normally available in any Linux distribution, but some have a very old
version (for example, Ubuntu/Debian). You can [check which version your distro
has on Repology](https://repology.org/project/cookiecutter/versions). You need
**at least version 2.4.0**. To ensure you get an up-to-date version, you can
always use `pip` and install it in a `venv`:
```console
$ python -m venv cookiecutter
$ cd cookiecutter
$ . bin/activate
(venv) $ pip install cookiecutter
Collecting cookiecutter
...
```
Then simply run [Cookiecutter] where you want to create the new project. A new
directory will be created with the generated project name. For example:
```sh
cd ~/devel
cookiecutter gh:frequenz-floss/frequenz-repo-config-python --directory=cookiecutter
```
This command will prompt you for the project type, name, and other
configuration options, and it will generate the entire project for you.
It is recommended to use a released version, you can do that by adding the
option `--checkout <version>` to the command above. You can check which is the
latest version
[here](https://github.com/frequenz-floss/frequenz-repo-config-python/releases/latest).
After completing the project and fixing the `TODO`s, you can either amend the
previous commit using `git commit --amend` or create a new commit for the
changes using `git commit`.
## Documentation
For more detailed documentation, please check the [project's
website](https://frequenz-floss.github.io/frequenz-repo-config-python/).
## Contributing
If you want to know how to build this project and contribute to it, please
refer to the [Contributing Guide](CONTRIBUTING.md).
[Cookiecutter]: https://cookiecutter.readthedocs.io/en/stable
Raw data
{
"_id": null,
"home_page": "",
"name": "frequenz-repo-config",
"maintainer": "",
"docs_url": null,
"requires_python": "<4,>=3.11",
"maintainer_email": "",
"keywords": "config,frequenz,grpc,lib,library,mkdocs,nox,project,protobuf,python,repo-config,repository,setuptools,tool",
"author": "",
"author_email": "Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>",
"download_url": "https://files.pythonhosted.org/packages/94/3f/fa59d18e18521fb3fe3d52de35901e37d9c3c69f9c9f2a9d71bdd70b9bd1/frequenz-repo-config-0.9.1.tar.gz",
"platform": null,
"description": "# Frequenz Repository Configuration\n\n[![Build Status](https://github.com/frequenz-floss/frequenz-repo-config-python/actions/workflows/ci.yaml/badge.svg)](https://github.com/frequenz-floss/frequenz-repo-config-python/actions/workflows/ci.yaml)\n[![PyPI Package](https://img.shields.io/pypi/v/frequenz-repo-config)](https://pypi.org/project/frequenz-repo-config/)\n[![Docs](https://img.shields.io/badge/docs-latest-informational)](https://frequenz-floss.github.io/frequenz-repo-config-python/)\n\n## Introduction\n\nThis is a highly opinionated set of tools and configurations to set up a Python\nrepository for [Frequenz](https://frequenz.com) projects.\n\nIt offers:\n\n* [Cookiecutter] templates for scaffolding new projects\n* Trivial build of `noxfile.py` with some predefined sessions that include all\n common checks.\n* Tools to build protobuf/grpc files as Python, including type information.\n\n## Supported Platforms\n\nThe following platforms are officially supported (tested):\n\n- **Python:** 3.11\n- **Operating System:** Ubuntu Linux 20.04\n- **Architectures:** amd64, arm64\n\n## Quick Example\n\nTo start a new project, you should first [install\nCookiecutter](https://cookiecutter.readthedocs.io/en/stable/installation.html).\nIt is normally available in any Linux distribution, but some have a very old\nversion (for example, Ubuntu/Debian). You can [check which version your distro\nhas on Repology](https://repology.org/project/cookiecutter/versions). You need\n**at least version 2.4.0**. To ensure you get an up-to-date version, you can\nalways use `pip` and install it in a `venv`:\n\n```console\n$ python -m venv cookiecutter\n$ cd cookiecutter\n$ . bin/activate\n(venv) $ pip install cookiecutter\nCollecting cookiecutter\n...\n```\n\nThen simply run [Cookiecutter] where you want to create the new project. A new\ndirectory will be created with the generated project name. For example:\n\n```sh\ncd ~/devel\ncookiecutter gh:frequenz-floss/frequenz-repo-config-python --directory=cookiecutter\n```\n\nThis command will prompt you for the project type, name, and other\nconfiguration options, and it will generate the entire project for you.\n\nIt is recommended to use a released version, you can do that by adding the\noption `--checkout <version>` to the command above. You can check which is the\nlatest version\n[here](https://github.com/frequenz-floss/frequenz-repo-config-python/releases/latest).\n\nAfter completing the project and fixing the `TODO`s, you can either amend the\nprevious commit using `git commit --amend` or create a new commit for the\nchanges using `git commit`.\n\n## Documentation\n\nFor more detailed documentation, please check the [project's\nwebsite](https://frequenz-floss.github.io/frequenz-repo-config-python/).\n\n## Contributing\n\nIf you want to know how to build this project and contribute to it, please\nrefer to the [Contributing Guide](CONTRIBUTING.md).\n\n\n[Cookiecutter]: https://cookiecutter.readthedocs.io/en/stable\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Frequenz repository setup tools and common configuration",
"version": "0.9.1",
"project_urls": {
"Changelog": "https://github.com/frequenz-floss/frequenz-repo-config-python/releases",
"Documentation": "https://frequenz-floss.github.io/frequenz-repo-config-python/",
"Issues": "https://github.com/frequenz-floss/frequenz-repo-config-python/issues",
"Repository": "https://github.com/frequenz-floss/frequenz-repo-config-python",
"Support": "https://github.com/frequenz-floss/frequenz-repo-config-python/discussions/categories/support"
},
"split_keywords": [
"config",
"frequenz",
"grpc",
"lib",
"library",
"mkdocs",
"nox",
"project",
"protobuf",
"python",
"repo-config",
"repository",
"setuptools",
"tool"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96daa13cecc87b5254b93628cee15f9ce1ad7e7e76ba0b033569c8266dc445b9",
"md5": "11ecf86951a5945964cc40b35a864c45",
"sha256": "5b5aafc3dac5c690c807e8224d94db21dc249add2067a7a47519f1a1395cb846"
},
"downloads": -1,
"filename": "frequenz_repo_config-0.9.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "11ecf86951a5945964cc40b35a864c45",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.11",
"size": 39749,
"upload_time": "2024-02-26T15:19:13",
"upload_time_iso_8601": "2024-02-26T15:19:13.746819Z",
"url": "https://files.pythonhosted.org/packages/96/da/a13cecc87b5254b93628cee15f9ce1ad7e7e76ba0b033569c8266dc445b9/frequenz_repo_config-0.9.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "943ffa59d18e18521fb3fe3d52de35901e37d9c3c69f9c9f2a9d71bdd70b9bd1",
"md5": "240f1aab7cd9db891a7fc612a4ce0be2",
"sha256": "f5b5b4b39e53762be719b677859a9ed4931bc575eaf8778c8721a357868de32a"
},
"downloads": -1,
"filename": "frequenz-repo-config-0.9.1.tar.gz",
"has_sig": false,
"md5_digest": "240f1aab7cd9db891a7fc612a4ce0be2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.11",
"size": 35490,
"upload_time": "2024-02-26T15:19:15",
"upload_time_iso_8601": "2024-02-26T15:19:15.136732Z",
"url": "https://files.pythonhosted.org/packages/94/3f/fa59d18e18521fb3fe3d52de35901e37d9c3c69f9c9f2a9d71bdd70b9bd1/frequenz-repo-config-0.9.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-26 15:19:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "frequenz-floss",
"github_project": "frequenz-repo-config-python",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "frequenz-repo-config"
}