Mis à jour le 2026-10-28
Développement
Setup, commandes et flux de contribution de ce dépôt.
Prérequis
- Node.js 24 ou plus récent
- pnpm 12 (épinglé via
packageManagerdans package.json)
Setup
pnpm install
Commandes
pnpm dev # turbo dev : app web avec HMR
pnpm type-check # turbo type-check sur tout le monorepo
pnpm lint # eslint (règles next + typescript), zéro warning
pnpm test # turbo test (vitest)
pnpm format:check # prettier sur tout le repo
pnpm build # build de production dans apps/web/.next
Tous les checks doivent passer avant le push : pnpm lint avec zéro
erreur, pnpm type-check avec zéro erreur, pnpm format:check sans
différence et un pnpm build réussi.
Flux de localisation
- Strings d'interface : modifiez
packages/i18n/messages/en.jsonpuis traduisez les six autres fichiers de langue. Gardez la structure de clés identique. - Docs : modifiez
packages/content/docs/en/<slug>.mdpuis mettez à jour les traductions. Les traductions manquantes retombent en anglais automatiquement. - Après avoir changé messages ou docs, lancez
pnpm buildet vérifiez chaque route de langue dans le navigateur.
Identité git
Les commits du dépôt sont créés avec l'identité du propriétaire du projet, et chaque commit porte le trailer de co-autorat :
Co-authored-by: Ella Mizuki
Protection de branche
main est protégée : push par les Maintainers, force push désactivé. Les
réécritures d'historique (comme ré-attribuer la paternité de commits)
nécessitent de retirer temporairement la protection, de faire le force
push et de la restaurer avec exactement les mêmes réglages.
Intégration continue
Aucun serveur de CI ne surveille ce dépôt. Lancez les portes de qualité
avant chaque push (pnpm type-check, pnpm lint, pnpm test,
pnpm format:check, pnpm build) ; Vercel construit le bundle de
production au déploiement, et un build cassé casse le déploiement.
Tests avant merge
La validation est :
- lint, typecheck, format:check et build ;
- passage navigateur à 375, 768, 1024, 1440 et 1920px avec zéro overflow horizontal, dans toutes les langues ;
- passage reduced motion : pas de shimmer ni de transitions actives, contenu visible ;
- la navigation par ancre dégage le header fixe (scroll padding) ;
- les routes docs résolvent dans toutes les langues, y compris le fallback anglais.