Files
ben-to/CONTRIBUTING.md
2026-07-21 16:50:58 +02:00

2.2 KiB
Raw Permalink Blame History

Contribuer à Ben-to

Workflow

  1. Ouvrir ou référencer une issue GitHub (comportement attendu, contexte, critères dacceptation).
  2. Créer une branche depuis main : feat/issue-123-courte-description, fix/issue-123-…, etc.
  3. Implémenter en respectant la structure feature-first (packages/features/*, packages/shared/*) et les règles du dépôt (.cursor/rules/).
  4. Scénarios Gherkin (specs/features/*.feature) : tout tag @int-* doit apparaître dans un fichier *.int.test.ts correspondant (voir npm run check:gherkin-scenarios).
  5. Imports explicites : pas de fichier barrel packages/**/src/index.ts ; utiliser les sous-chemins documentés dans les package.json exports et les alias Vite (@ben-to/.../domain, etc.).
  6. Avant la PR : npm run check:quality et npm run test:ci.
  7. Issue GitHub : la laisser ouverte jusquau merge de la PR. Inclure dans le message de commit (recommandé, dernière ligne) Closes #N / Fixes #N pour que GitHub ferme lissue automatiquement au merge ; éviter de fermer lissue manuellement avant la fusion.

Hook pre-commit (tests unitaires)

Après npm install, Husky installe un hook qui exécute vitest related sur les fichiers .ts / .tsx stagés (projet unit uniquement).

Contournement exceptionnel (hotfix documenté en PR) : git commit --no-verify.

Qualité et couverture

  • Les seuils de couverture Vitest sappliquent aux sources sous packages/features/** et packages/shared/** (voir vitest.config.ts). Le front web est couvert par les e2e, Axe et Lighthouse.
  • La CI publie un commentaire de synthèse sur les PR (couverture, audit npm, Axe, Lighthouse, timings navigation).

GitHub

  • Activez Code scanning avec CodeQL si vous voulez les résultats SARIF dans longlet Sécurité ; puis retirez upload: false dans .github/workflows/security.yml (voir docs/CODE_SCANNING.md).
  • Protégez la branche main : CI obligatoire, revues si vous travaillez en équipe.

Mobile Android

Les commandes mobile:* se lancent depuis la racine du monorepo (voir README.md). La CI exécute assembleDebug pour détecter les régressions Gradle/Capacitor.