first commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Contribuer à Ben-to
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Ouvrir ou **référencer une issue** GitHub (comportement attendu, contexte, critères d’acceptation).
|
||||
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** jusqu’au merge de la PR. Inclure dans le **message de commit** (recommandé, dernière ligne) `Closes #N` / `Fixes #N` pour que GitHub ferme l’issue automatiquement au merge ; éviter de fermer l’issue 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 s’appliquent 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 l’onglet 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.
|
||||
Reference in New Issue
Block a user