From c143d4e9b9f5f7430ae6d89c3ff4d15859af88b7 Mon Sep 17 00:00:00 2001 From: Julien Moura Date: Fri, 21 Apr 2023 19:03:01 +0200 Subject: [PATCH 1/4] Add pre-commit as dev dependency --- pyproject.toml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 04310a2..43bd480 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,13 +37,17 @@ dependencies = [ ] [project.optional-dependencies] -test = [ - "pytest >= 7.1.2", - "coverage >= 7.0.5" +dev = [ + "pre-commit>=3,<4" ] doc = [ "pdoc3 >= 0.10.0" ] +test = [ + "pytest >= 7.1.2", + "coverage >= 7.0.5" +] + [project.urls] "Homepage" = "https://rok4.github.io/core-python" From e611c28c0444298369a1329f84b0d89600095e40 Mon Sep 17 00:00:00 2001 From: Julien Moura Date: Fri, 21 Apr 2023 19:04:47 +0200 Subject: [PATCH 2/4] Add git hooks config for pre-commit --- .pre-commit-config.yaml | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..2cf8ed6 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,56 @@ +exclude: ".venv|__pycache__|tests/dev/|tests/fixtures/" +fail_fast: false +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-added-large-files + args: ["--maxkb=1024"] + - id: check-case-conflict + - id: check-toml + - id: check-yaml + - id: detect-private-key + - id: end-of-file-fixer + - id: fix-byte-order-marker + - id: fix-encoding-pragma + args: [--remove] + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: "v0.0.262" + hooks: + - id: ruff + args: ["--fix-only"] + + - repo: https://github.com/asottile/pyupgrade + rev: v3.3.1 + hooks: + - id: pyupgrade + args: + - "--py38-plus" + + - repo: https://github.com/psf/black + rev: 23.3.0 + hooks: + - id: black + + - repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + args: ["--profile", "black", "--filter-files"] + + - repo: https://github.com/pycqa/flake8 + rev: 6.0.0 + hooks: + - id: flake8 + args: + [ + "--select=E9,F401,F63,F7,F82,D103", + ] + +ci: + autoupdate_schedule: quarterly + skip: [] + submodules: false From 673aa88fb23d14d4f1e081daebd5e36e17534057 Mon Sep 17 00:00:00 2001 From: Julien Moura Date: Fri, 21 Apr 2023 19:08:14 +0200 Subject: [PATCH 3/4] Add contributing guidelines --- CONTRIBUTING.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..be103d2 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Directives de contribution + +Tout d'abord, merci d'envisager de contribuer à ce projet ! + +Il s'agit principalement de lignes directrices, et non de règles. Faites preuve de discernement, et n'hésitez pas à proposer des modifications à ce document dans une pull request. + +## Git hooks + +Nous utilisons les git hooks via [pre-commit](https://pre-commit.com/) pour appliquer et vérifier automatiquement certaines "règles". Veuillez l'installer avant de pousser un commit. + +Voir le fichier de configuration correspondant : `.pre-commit-config.yaml`. + +## Style de code + +Assurez-vous que votre code suit à peu près la PEP-8 [PEP-8](https://www.python.org/dev/peps/pep-0008/) et reste cohérent avec le reste du code : + +- formatage: [black](https://black.readthedocs.io/) est utilisé pour formater automatiquement le code sans débat. +- tri des imports: [isort](https://pycqa.github.io/isort/) est utilisé pour trier les imports. +- analyse statique: [flake8](https://flake8.pycqa.org/en/latest/) est utilisé pour identifier les écarts vis à vis de PEP-8 et maintenir un code source de qualité. + +## Branches + +### Branches spéciales + +- `master`: la branche principale. From 280593a79a09bacde83a47843b0c6cfbe7b866de Mon Sep 17 00:00:00 2001 From: Julien Moura Date: Fri, 21 Apr 2023 19:08:33 +0200 Subject: [PATCH 4/4] Add paragraph about how to develop and set git hooks --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 400645d..7245437 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Ces librairies facilitent la manipulation d'entités du projet ROK4 comme les Ti Installations système requises : -* debian : `apt install python3-rados python3-gdal` +- debian : `apt install python3-rados python3-gdal` Depuis [PyPI](https://pypi.org/project/rok4/) : `pip install rok4` Depuis [GitHub](https://github.com/rok4/core-python/releases/) : `pip install https://github.com/rok4/core-python/releases/download/x.y.z/rok4-x.y.z-py3-none-any.whl` @@ -33,6 +33,16 @@ except Exception as exc: print(exc) ``` +## Contribuer + +- Installer les dépendances de développement : + + ```sh + python3 -m pip install -e[dev] + ``` + +- Consulter les [directives de contribution](./CONTRIBUTING.md) + ## Compiler la librairie ```sh