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é.