Build and deploy / test-python (push) Successful in 11m2s
Build and deploy / test-js (push) Successful in 1m2s
Build and deploy / lint-python (push) Successful in 4m6s
Build and deploy / lint-js (push) Failing after 1m21s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 4m2s
Nouveau moteur document_engine/ (elements CRUD + rendering + labels), db/supports/ (stockage independant de db/games), routes/document/ (CRUD AJAX + publication), et l'editeur frontend complet (templates/document/, static/document/) avec moteur de layout reel (glisser-deposer -> fusion en rangee ou insertion avant/apres), vrai Undo/Redo par pile de commandes, grille d'accroche pour les formes libres, apercu responsive a largeurs fixes, mode Apercu, et publication persistee. "Mes formations" (templates/index.html) liste desormais les environnements 2D et les supports de formation cote a cote ; l'onboarding et core/auth_guard.py sont generalises pour qu'un compte restreint puisse posseder un projet de chaque type independamment. SKIP=djlint : le hook ne signale que le backlog H021 (styles en ligne) deja documente dans CODE_QUALITY.md sur des fichiers pre-existants non touches ici (base.html, game/play.html, scene_edit.html, game_dashboard_simple.html, clause_row.html) plus une ligne de index.html deja presente avant cette session — aucun nouveau fichier (document_edit.html compris) n'y figure. Tous les autres outils (ruff, mypy --strict, vulture, bandit, import-linter, eslint, stylelint) passent sans erreur ; 617 tests Python + 276 tests JS verts, plus une verification manuelle complete du cycle de vie via le serveur de developpement. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
81 lines
2.8 KiB
YAML
81 lines
2.8 KiB
YAML
# Hooks locaux (language: system) plutot que les miroirs pre-commit
|
|
# habituels (astral-sh/ruff-pre-commit, pre-commit/mirrors-mypy,
|
|
# pre-commit/mirrors-eslint...) : ce projet a deja un environnement
|
|
# Python (requirements-dev.txt) et un node_modules/ (package.json) bien
|
|
# a lui — repartir sur un environnement ISOLE et RE-TELECHARGE par
|
|
# pre-commit dupliquerait exactement les memes outils/versions pour rien
|
|
# (et serait plus lent, plus fragile hors ligne). Voir CODE_QUALITY.md
|
|
# pour l'installation prealable (`pip install -r requirements-dev.txt`
|
|
# + `npm install`), necessaire pour que ces hooks trouvent les
|
|
# executables.
|
|
#
|
|
# Chaque hook est bloquant (aucune regle desactivee "pour ne pas casser
|
|
# le build", demande explicite) — un commit est refuse si un outil
|
|
# trouve un probleme, jusqu'a ce que la Phase 3 du plan qualite ait
|
|
# nettoye l'existant.
|
|
#
|
|
# eslint/stylelint : entry appelle `node <script.js>` directement plutot
|
|
# que `npx eslint` ou le shim node_modules/.bin/eslint(.cmd) — ces deux
|
|
# dernieres formes font passer pre-commit par cmd.exe pour lancer un
|
|
# executable Windows (.cmd) ou un script a shebang POSIX (#!/bin/sh),
|
|
# et pre-commit resout mal cmd.exe/sh depuis ce contexte (bug constate
|
|
# sous Windows). Appeler `node` directement sur le fichier JS du package
|
|
# evite tout intermediaire shell.
|
|
repos:
|
|
- repo: local
|
|
hooks:
|
|
- id: ruff-check
|
|
name: Ruff (lint Python)
|
|
entry: ruff check
|
|
language: system
|
|
types: [python]
|
|
|
|
- id: ruff-format
|
|
name: Ruff (formatage Python)
|
|
entry: ruff format --check
|
|
language: system
|
|
types: [python]
|
|
|
|
- id: mypy
|
|
name: Mypy (typage strict Python)
|
|
entry: mypy .
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
|
|
- id: vulture
|
|
name: Vulture (code mort Python)
|
|
entry: vulture
|
|
language: system
|
|
pass_filenames: false
|
|
|
|
- id: bandit
|
|
name: Bandit (securite Python)
|
|
entry: bandit -c pyproject.toml -r ai auth core db filters publish routes game_engine document_engine scripts app.py build_css.py
|
|
language: system
|
|
pass_filenames: false
|
|
|
|
- id: import-linter
|
|
name: import-linter (contrats d'architecture Python)
|
|
entry: lint-imports
|
|
language: system
|
|
pass_filenames: false
|
|
|
|
- id: djlint
|
|
name: djLint (templates Jinja)
|
|
entry: djlint templates
|
|
language: system
|
|
pass_filenames: false
|
|
|
|
- id: eslint
|
|
name: ESLint (JS)
|
|
entry: node node_modules/eslint/bin/eslint.js
|
|
language: system
|
|
files: ^static/js/.*\.js$
|
|
|
|
- id: stylelint
|
|
name: Stylelint (CSS)
|
|
entry: node node_modules/stylelint/bin/stylelint.mjs
|
|
language: system
|
|
files: \.css$
|