core -- Add and apply black, flake8, isort to CI and pre-commit #621

Merged
delobell merged 0 commits from aureplop/linters into master 2018-10-06 16:10:37 +02:00
delobell commented 2018-10-05 13:22:48 +02:00 (Migrated from git.eleves.ens.fr)

Description

  • Ajout à la CI de :
    • black et isort, le build faile si l'un ou l'autre n'est pas content,
    • flake8, juste en check, cf TODO plus bas.
  • Ajout d'un hook de pre-commit (à installer, voir plus bas) :
    • black reformate le code des fichiers .py en staging area, s'il est disponible,
    • isort reformate le code des imports dans les fichiers .py en staging area, s'il est disponible,
    • flake8 ne fait que signaler ses erreurs et n'empêche pas de commit.

À savoir

  • black: "The uncompromising Python code formatter"
  • isort: "A Python utility / library to sort imports"

Pour installer le hook (dans le README):

ln -s ../../.pre-commit.sh .git/hooks/pre-commit

et installer les dépendances pip install black isort flake8 (ajouté à requirements-devel.txt).

Todos

  • Le wiki devrait être mis à jour.
  • Fix les erreurs flake8 (ou ajouter à setup.cfg > [flake8] > ignore), cf. logs du build de cette MR.
    Puis retirer --exit-zero de la CI.
    -> En fait non, flake8 a tendance à un peu trop l'ouvrir (déjà 2 ignore dans setup.cfg dus à des conflits avec pep8/black).
    Va rester en check-only.
  • Une fois mergé, mettre à jour les branches (MRs) existantes.
  • optionnel S'amuser à faire en sorte que le hook ne s'applique qu'aux modifs staged. Cf TODO dans .pre-commit.sh.

Fixes #200.

### Description - Ajout à la CI de : * black et isort, le build faile si l'un ou l'autre n'est pas content, * flake8, juste en check, cf TODO plus bas. - Ajout d'un hook de pre-commit (**à installer**, voir plus bas) : * black reformate le code des fichiers .py en staging area, s'il est disponible, * isort reformate le code des imports dans les fichiers .py en staging area, s'il est disponible, * flake8 ne fait que signaler ses erreurs et n'empêche pas de commit. ### À savoir - [black](https://github.com/ambv/black): "The uncompromising Python code formatter" - [isort](https://github.com/timothycrosley/isort): "A Python utility / library to sort imports" Pour installer le hook (dans le README): ln -s ../../.pre-commit.sh .git/hooks/pre-commit et installer les dépendances `pip install black isort flake8` (ajouté à `requirements-devel.txt`). ### Todos - [x] Le [wiki](https://git.eleves.ens.fr/cof-geek/gestioCOF/wikis/coding-style) devrait être mis à jour. - [x] Fix les erreurs flake8 (ou ajouter à setup.cfg > [flake8] > ignore), cf. logs du build de cette MR. Puis retirer --exit-zero de la CI. **-> En fait non**, flake8 a tendance à un peu trop l'ouvrir (déjà 2 ignore dans setup.cfg dus à des conflits avec pep8/black). Va rester en check-only. - [ ] Une fois mergé, mettre à jour les branches (MRs) existantes. - [ ] _optionnel_ S'amuser à faire en sorte que le hook ne s'applique qu'aux modifs staged. Cf TODO dans `.pre-commit.sh`. Fixes #200.
delobell commented 2018-10-05 18:44:11 +02:00 (Migrated from git.eleves.ens.fr)

restored source branch aureplop/linters

restored source branch `aureplop/linters`
delobell commented 2018-10-05 18:44:11 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • a760721d - core -- Add black & isort to CI + pre-commit
  • e28ddb13 - core -- Apply black + isort on whole project

Compare with previous version

added 2 commits <ul><li>a760721d - core -- Add black &amp; isort to CI + pre-commit</li><li>e28ddb13 - core -- Apply black + isort on whole project</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=951&start_sha=101e7633b33ff5ca434e2c97655c4877195de13f)
delobell commented 2018-10-05 18:44:12 +02:00 (Migrated from git.eleves.ens.fr)

deleted source branch aureplop/linters

deleted source branch `aureplop/linters`
delobell commented 2018-10-05 21:47:30 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • 5aa43e6d - wip

Compare with previous version

added 1 commit <ul><li>5aa43e6d - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=952&start_sha=e28ddb13f519dd42308f49736607cc3e4b3d776b)
delobell commented 2018-10-05 22:09:01 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • 48f5e57a - wip

Compare with previous version

added 1 commit <ul><li>48f5e57a - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=955&start_sha=5aa43e6d41e5f08a41094843bd60406b6dd63080)
delobell commented 2018-10-05 22:16:49 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • 62a209a8 - wip

Compare with previous version

added 1 commit <ul><li>62a209a8 - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=957&start_sha=48f5e57ab609e243279c2040623d76e528593aa3)
delobell commented 2018-10-05 22:38:25 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • dce94519 - wip

Compare with previous version

added 1 commit <ul><li>dce94519 - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=960&start_sha=62a209a8b9ab06328a1e437867537ca43b6e884f)
delobell commented 2018-10-05 23:13:23 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • c3e564a8 - wip

Compare with previous version

added 1 commit <ul><li>c3e564a8 - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=962&start_sha=dce94519a0b473df5caf80337cf7c25d45aba13d)
delobell commented 2018-10-05 23:16:33 +02:00 (Migrated from git.eleves.ens.fr)

added 3 commits

  • e1349e01 - core -- Add black & isort to CI + pre-commit, remove python cache
  • 8055124f - core -- Apply black + isort on whole project
  • e6b6f47a - wip

Compare with previous version

added 3 commits <ul><li>e1349e01 - core -- Add black &amp; isort to CI + pre-commit, remove python cache</li><li>8055124f - core -- Apply black + isort on whole project</li><li>e6b6f47a - wip</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=964&start_sha=c3e564a87a45789f34ec75dc459717ab4c194844)
delobell commented 2018-10-06 10:15:16 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • 5ef64555 - core -- Remove not working cache of py installed packages...
  • fbabb9e9 - core -- Add black,isort,flake8 to CI and pre-commit hook

Compare with previous version

added 2 commits <ul><li>5ef64555 - core -- Remove not working cache of py installed packages...</li><li>fbabb9e9 - core -- Add black,isort,flake8 to CI and pre-commit hook</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=967&start_sha=e6b6f47a572c061009b56ed632db5382ff03419f)
delobell commented 2018-10-06 11:55:31 +02:00 (Migrated from git.eleves.ens.fr)

added 12 commits

  • fbabb9e9...b39b6d6b - 10 commits from branch master
  • b2381091 - core -- Remove not working cache of py installed packages...
  • 4294bc7f - core -- Add black,isort,flake8 to CI and pre-commit hook

Compare with previous version

added 12 commits <ul><li>fbabb9e9...b39b6d6b - 10 commits from branch <code>master</code></li><li>b2381091 - core -- Remove not working cache of py installed packages...</li><li>4294bc7f - core -- Add black,isort,flake8 to CI and pre-commit hook</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=968&start_sha=fbabb9e9530789e8a58f04db6f2ff0b622fe2c62)
delobell commented 2018-10-06 12:36:54 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • ef3c6ccb - core -- Add black,isort,flake8 to CI and pre-commit hook
  • a14cd659 - Apply black + isort to all files

Compare with previous version

added 2 commits <ul><li>ef3c6ccb - core -- Add black,isort,flake8 to CI and pre-commit hook</li><li>a14cd659 - Apply black + isort to all files</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=970&start_sha=4294bc7f4695fa66af1fae5d84f0a66d60f0ec05)
delobell commented 2018-10-06 12:54:06 +02:00 (Migrated from git.eleves.ens.fr)

added 3 commits

  • 104e71dc - core -- Add black,isort,flake8 to CI and pre-commit hook
  • 1a0dfbbe - core -- Apply black + isort to all files
  • 4efc6223 - core -- Fix flake8 errors

Compare with previous version

added 3 commits <ul><li>104e71dc - core -- Add black,isort,flake8 to CI and pre-commit hook</li><li>1a0dfbbe - core -- Apply black + isort to all files</li><li>4efc6223 - core -- Fix flake8 errors</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=971&start_sha=a14cd6594e65d230c5dba21a990affdc065361d9)
delobell commented 2018-10-06 13:15:57 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • fdd2b352 - core -- Apply black + isort to all files
  • 402b5443 - core -- Fix flake8 errors

Compare with previous version

added 2 commits <ul><li>fdd2b352 - core -- Apply black + isort to all files</li><li>402b5443 - core -- Fix flake8 errors</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=973&start_sha=4efc6223840bfe1145921a9ac82eccb98f2d9b93)
delobell commented 2018-10-06 13:36:27 +02:00 (Migrated from git.eleves.ens.fr)

changed the description

changed the description
delobell commented 2018-10-06 13:36:27 +02:00 (Migrated from git.eleves.ens.fr)

added ~59 and removed ~30 labels

added ~59 and removed ~30 labels
delobell commented 2018-10-06 13:36:31 +02:00 (Migrated from git.eleves.ens.fr)

marked the checklist item Fix les erreurs flake8 (ou ajouter à setup.cfg > [flake8] > ignore), cf. logs du build de cette MR. as completed

marked the checklist item **Fix les erreurs flake8 (ou ajouter à setup.cfg > [flake8] > ignore), cf. logs du build de cette MR.** as completed
delobell commented 2018-10-06 13:37:16 +02:00 (Migrated from git.eleves.ens.fr)

unmarked as a Work In Progress

unmarked as a **Work In Progress**
delobell commented 2018-10-06 13:37:16 +02:00 (Migrated from git.eleves.ens.fr)

changed the description

changed the description
delobell commented 2018-10-06 14:15:36 +02:00 (Migrated from git.eleves.ens.fr)

marked the checklist item Le wiki devrait être mis à jour. as completed

marked the checklist item **Le [wiki](https://git.eleves.ens.fr/cof-geek/gestioCOF/wikis/coding-style) devrait être mis à jour.** as completed
delobell commented 2018-10-06 14:41:44 +02:00 (Migrated from git.eleves.ens.fr)

changed the description

changed the description
delobell commented 2018-10-06 16:04:45 +02:00 (Migrated from git.eleves.ens.fr)

added 3 commits

  • 61fbf0bc - typo
  • 9bc3355a - pre-commit hook: fix shellcheck's SC2086 & SC2181
  • fc4b852b - Merge branch 'Kerl/linters' into 'aureplop/linters'

Compare with previous version

added 3 commits <ul><li>61fbf0bc - typo</li><li>9bc3355a - pre-commit hook: fix shellcheck&#39;s SC2086 &amp; SC2181</li><li>fc4b852b - Merge branch &#39;Kerl/linters&#39; into &#39;aureplop/linters&#39;</li></ul> [Compare with previous version](https://git.eleves.ens.fr/cof-geek/gestioCOF/merge_requests/317/diffs?diff_id=980&start_sha=402b5443937a35a94deb4b138c257d42973a2a5f)
mpepin commented 2018-10-06 16:09:33 +02:00 (Migrated from git.eleves.ens.fr)

Ce serait effectivement mieux de ne tester que les fichiers qui ont changé… Mais on peut laisser une issue ouverte et remettre ça à plus tard si ça permet d'avancer

Ce serait effectivement mieux de ne tester que les fichiers qui ont changé… Mais on peut laisser une issue ouverte et remettre ça à plus tard si ça permet d'avancer
mpepin commented 2018-10-06 16:09:38 +02:00 (Migrated from git.eleves.ens.fr)

enabled an automatic merge when the pipeline for fc4b852bde succeeds

enabled an automatic merge when the pipeline for fc4b852bde3cf30d96b4c428f02901fa3282460d succeeds
mpepin commented 2018-10-06 16:10:36 +02:00 (Migrated from git.eleves.ens.fr)

mentioned in commit ec287c8a3b

mentioned in commit ec287c8a3bea16f8c77605a50ac94e6cfff62d90
mpepin commented 2018-10-06 16:10:37 +02:00 (Migrated from git.eleves.ens.fr)

merged

merged
delobell commented 2018-10-06 16:14:16 +02:00 (Migrated from git.eleves.ens.fr)

Ça ne teste que les fichiers changés mais ça "foire" si tu fais des git add partiels et/ou que t'oublies d'ajouter les modifs de black/isort à l'index...
Mais bon : "itérons"

Ça ne teste que les fichiers changés mais ça "foire" si tu fais des git add partiels et/ou que t'oublies d'ajouter les modifs de black/isort à l'index... Mais bon : "itérons"
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: DGNum/gestioCOF#621
No description provided.