Aller au contenu principal

Contribuer

Workflow git

main ← production stable, protégée
└── dev ← intégration, CI obligatoire
└── feat/ma-feature ← branche de travail
└── fix/mon-bugfix
└── docs/ma-page
  1. Créez votre branche depuis dev
  2. Développez avec le cycle TDD (voir ci-dessous)
  3. Ouvrez une PR vers dev
  4. CI doit passer (unit + build + docs)
  5. Merge vers main uniquement pour les releases

Commits conventionnels

Format : <type>(<scope>): <description>

TypeUsage
featNouvelle fonctionnalité
fixCorrection de bug
docsDocumentation uniquement
refactorRefactoring sans changement de comportement
testAjout ou modification de tests
choreMaintenance, dépendances, config
ciPipeline CI/CD

Exemples :

feat(import): add Trade Republic CSV parser
fix(budget): prevent division by zero when totalIncomeExpected is 0
docs(api): document processImportCSV pipeline
refactor(analytics): extract aggregateByMonth helper

Protocole TDD obligatoire

Tout code d'implémentation doit avoir un test rouge préalable :

1. RED → écrire le test, vérifier qu'il échoue pour la bonne raison
2. GREEN → code minimal qui fait passer le test
3. REFACTOR → améliorer sans casser, relancer les tests
npm run test:watch # mode watch pendant le développement
npm test # avant de pousser
npm run type-check # vérification TypeScript

ADR — Décisions techniques

Toute décision significative (choix de librairie, nouveau pattern, changement d'architecture) doit être documentée dans un ADR avant l'implémentation :

# Template disponible dans :
docs-site/docs/adr/_template.md

# Créer un ADR
cp docs-site/docs/adr/_template.md docs-site/docs/adr/adr-00N-titre.md
# → Éditer, puis ajouter dans docs-site/sidebars.ts et docs-site/docs/adr/intro.md

Ajouter une page de documentation

  1. Créez le fichier dans la section appropriée (docs-site/docs/<section>/)
  2. Ajoutez l'entrée dans docs-site/sidebars.ts
  3. Vérifiez le build : npm run docs:build (0 lien cassé, 0 orpheline)
  4. Pour les composants UI : générez les props via npm run docs:generate-props

Schéma DB — migrations

Tout changement de schéma Prisma doit passer par une migration versionnée :

# Modifier prisma/schema.prisma
# Puis :
npm run db:migrate # crée une migration dans prisma/migrations/

⚠️ Ne jamais modifier manuellement la base de données ou utiliser db push en production.

Règles qualité

  • Pas de any TypeScript explicite — utiliser unknown + type guard
  • Pas de console.log de debug dans le code commité
  • Pas de @ts-ignore sans commentaire explicatif
  • Float interdit pour les montants — toujours Decimal
  • Nouveaux composants UI → page de documentation dans docs-site/docs/design-system/components/

Voir aussi