0004 — Projets Git indépendants dans projects/
Contexte
- Le dépôt hub concentre la documentation, les scripts et l'orchestration globale sans embarquer le code des projets.
- Le dossier
projects/sert uniquement de conteneur local pour héberger plusieurs projets distincts en parallèle. - Chaque projet maintient sa propre stack, son rythme d'évolution et son historique Git, potentiellement divergents les uns des autres.
Décision
- Chaque dossier de
projects/correspond à un dépôt Git autonome initialisé localement. - Le dépôt hub n'ajoute jamais le contenu de
projects/à l'index Git. - Refus explicite des sous-modules pour gérer ces projets.
- Rejet d'un monorepo englobant l'ensemble des projets.
Raisons
- Préserver l'isolation technique et organisationnelle de chaque projet.
- Laisser les cycles de vie évoluer indépendamment selon leurs besoins.
- Simplifier l'usage quotidien de Git en évitant les opérations transverses complexes.
- Écarter la complexité opérationnelle et la fragilité associées aux sous-modules.
- Permettre de publier, versionner ou archiver chaque projet sans coupler le hub.
Conséquences
Positives
- Modélisation très modulaire du portefeuille de projets.
- Gestion simple et lisible des dépendances et historiques propres à chaque dépôt.
- Flexibilité maximale pour choisir outils, workflows et cadences par projet.
- Compatibilité naturelle avec des environnements et stacks hétérogènes.
Négatives
- Multiplication des dépôts à suivre, configurer et héberger.
- Remotes distincts à créer et entretenir pour chaque projet.
- Absence d'une version globale synchronisée couvrant tous les projets.
Alternatives considérées
- Monorepo : rejeté pour éviter le couplage fort et les migrations groupées.
- Sous-modules : rejetés pour réduire la dépendance à une mécanique fragile.
- Inclusion directe dans le dépôt hub : rejetée car elle casserait l'isolation recherchée.
Statut
Accepté.