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

32 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](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](README.md)). La CI exécute `assembleDebug` pour détecter les régressions Gradle/Capacitor.