From 82979b19810dc64fddf274ccea84183d9aa0168d Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Sun, 20 Aug 2023 13:03:06 +0200 Subject: [PATCH] Expanded a bit on the installation of the project. --- CONTRIBUTING.md | 118 +++++++++++++++++++++++++----------------------- 1 file changed, 61 insertions(+), 57 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a131898..71ba65a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,70 +1,74 @@ # Contribution guidelines +## Dev Setup -## Code style - -We defined to use the following formats: -- Whitespace Formatting by [Black](https://github.com/psf/black) -- Docstrings Style see the examples provided by [sphinx napoleon](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) Types in the docstrings are optional but should be consistent per module. -- Import Order by [isort](https://pycqa.github.io/isort/) -- Strict Typing of function headers see the examples provided by the [mypy](https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html) documentation. - -## Language - -We decided to use english on everything close to code but will write longer texts that are not close to the code in german. - -## Pre-Commit installation - -- clone the project -- install the following python package: - - `pre-commit` - -- execute the command `pre-commit install` to insert the git githook into your local repository. - - for more information read [Python Pre-Commit](https://pre-commit.com/) - - the following code format rules are so enforced: - - Whitespace formatierung: - - Python-[Black](https://github.com/psf/black) - - leading whitespace in all files - - Auto format: yaml, toml, ini - - Import norm by: - - [isort](https://pycqa.github.io/isort/) - - absolut module path - - Validierung: - - yaml, toml, json, xml - - Secret detection - - python normen ([pep8](https://peps.python.org/pep-0008/)) with [flake8](https://flake8.pycqa.org/en/latest/) - - type checking with ([mypy](https://github.com/python/mypy)) - -- Install [Python 3.11](https://www.python.org/downloads/release/python-3111/) -- Install Poetry -``` -pip install poetry -``` -- Install dependencies -``` -poetry install -``` +- [Install Python 3.11](https://www.python.org/downloads/release/python-3111/) +- [Install Poetry](https://python-poetry.org/docs/#installation) +- [Install GiT](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +- [Configure GiT](https://support.atlassian.com/bitbucket-cloud/docs/configure-your-dvcs-username-for-commits/) +- [Generate an SSH Key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) & [Add SSH Key to GitHub](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +- [Clone the Project (IDE Specific)](https://docs.github.com/de/repositories/creating-and-managing-repositories/cloning-a-repository) +- [Install the python Project](https://python-poetry.org/docs/basic-usage/#installing-dependencies) +- [Install pre-commit](https://pre-commit.com/#install) ## Setup ### Connection strings + Create a `secrets.json` in the root of this repo with the following structure (values to be replaces by desired config): + ```json { - "postgres": { - "username": "postgres", - "password": "postgres", - "host": "localhost", - "database": "postgres", - "port": 5432 - }, - "mongo": { - "username": "username", - "password": "password", - "host": "localhost", - "database": "transparenzregister", - "port": 27017 - } + "postgres": { + "username": "postgres", + "password": "postgres", + "host": "localhost", + "database": "postgres", + "port": 5432 + }, + "mongo": { + "username": "username", + "password": "password", + "host": "localhost", + "database": "transparenzregister", + "port": 27017 } +} ``` + Example usage see [connector.py](./src/aki_prj23_transparenzregister/utils/postgres/connector.py) + +## Code style + +We defined to use the following formats: + +- Whitespace Formatting by [Black](https://github.com/psf/black) +- Docstrings Style see the examples provided + by [sphinx napoleon](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) Types in the + docstrings are optional but should be consistent per module. +- Import Order by [isort](https://pycqa.github.io/isort/) +- Strict Typing of function headers see the examples provided by + the [mypy](https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html) documentation. + +## Language + +We decided to use english on everything close to code but will write longer texts that are not close to the code in +german. + +## Pre-Commit Usage + +- the following code format rules are so enforced: + - Whitespace formatting: + - Python-[Black](https://github.com/psf/black) + - leading whitespace in all files + - Auto format: yaml, toml, ini + - Import norm by: + - [isort](https://pycqa.github.io/isort/) + - absolut module path + - Validation: + - yaml, toml, json, xml + - Secret detection + - python norms ([pep8](https://peps.python.org/pep-0008/)) + with [ruff](https://github.com/astral-sh/ruff) + - type checking with ([mypy](https://github.com/python/mypy)) +- for more information read [Python Pre-Commit](https://pre-commit.com/)