Zum Inhalt springen

MonoSpecs Multi-Repository-Verwaltungshandbuch

Seite bearbeiten

MonoSpecs ist der Multi-Repository-Verwaltungsansatz von HagiCode. Es verfolgt und verwaltet Unterrepositorys monospecs.yamlund es funktioniert für jedes Projekt, das einen Ort zum Koordinieren mehrerer unabhängiger Repositorys benötigt.

Konfigurationsdatei

monospecs.yaml ist der Kern der gesamten Managementlösung und definiert:

  • Liste und Speicherort der Unterrepositorys
  • Git-URL für jedes Repository
  • Anzeigename und Symbol
  • Integrationsverhalten mit OpenSpec

Unterschiede zu regulären Repositories

FunktionReguläres RepositoryVon MonoSpecs verwaltetes Projekt
OpenSpec-StandortStammverzeichnisse openspec/Stammverzeichnis des Haupt-Repositorys openspec/
Umfang ändernBeschränkt auf das aktuelle RepositoryKann mehrere Unterrepositorys umfassen
Unterrepository-ReinheitSpezifikationen gemischt mit CodeDie Spezifikationen sind im Haupt-Repository festgelegt, Unter-Repositorys sind sauberer
Auto-Commit archivierenErfordert manuelle Spezifikations-Commitscommit_when_archive: true Überträgt Spezifikationen automatisch an das Haupt-Repository
  • Einheitliche Verwaltung: Verwalten Sie alle Unterrepositorys in einer Konfigurationsdatei
  • Automatisierungsunterstützung: Stellt Repository-Metadaten für Skripte und Tools bereit
  • KI-Freundlichkeit: Die strukturierte Konfiguration hilft AI Agent, Repository-Beziehungen zu verstehen
  • OpenSpec-Integration: Nahtlose Integration in den Change-Management-Workflow
  • Sauberere Unterrepositorys: Spezifikationen werden im Hauptrepo gespeichert, Unterrepositorys enthalten nur tatsächlichen Code

Verwenden Sie MonoSpecs zuerst in Szenarien wie diesen:

1. Kollaborative Multi-Repository-Entwicklung Wenn ein Projekt in mehrere unabhängige Repositorys aufgeteilt wird:

  • Frontend-Anwendung, Backend-Dienst und Desktop-App werden separat entwickelt
  • Versionen und Abhängigkeiten über Repositorys hinweg müssen koordiniert werden
  • Dokumentation und Hilfsprojekte getrennt vom Hauptcode

2. Hilfsprojektmanagement Verwenden Sie MonoSpecs, um Folgendes zu verwalten:

  • Dokumentationsprojekt
  • Offizielle Website
  • Erstellen Sie Tools und Skripte
  • Jedes Repository unterhält seine eigene Versionskontrolle

3. Entwicklung Repository-übergreifender Funktionen Eine Funktion, die Änderungen über mehrere Repositorys hinweg erfordert:

  • Änderungen in welchen Repositorys müssen nachverfolgt werden
  • Übertragen Sie Spezifikationen automatisch an das richtige Ziel-Repository
  • Koordinieren Sie Versionsaktualisierungen und Abhängigkeiten

Befolgen Sie diese Schritte, um die MonoSpecs-Initialisierung abzuschließen:

Erstellen Sie ein Leerzeichen git Ordner in Ihrem Haupt-Repository (Hinweis: Dies ist git, nicht repos/ - das ist die MonoSpecs-Konvention):

Terminal-Fenster
mkdir git
cd git
git init
cd ..

Erstellen Sie die monospecs.yaml Konfigurationsdatei in Ihrem Haupt-Repository-Stammverzeichnis:

version: "1.0"
commit_when_archive: true
repositories:
- path: "repos/frontend"
url: "https://github.com/your-org/frontend.git"
displayName: "Frontend App"
icon: "🌐"
- path: "repos/backend"
url: "https://github.com/your-org/backend.git"
displayName: "Backend Service"
icon: "⚙️"

Konfigurationselemente:

KonfigurationselementTypErforderlichBeschreibung
versionZeichenfolgeJaVersion der Konfigurationsdatei
commit_when_archiveBoolescher WertNeinOb Spezifikationen beim Archivieren automatisch festgeschrieben werden sollen (kein Sub-Repo-Code festschreiben)
repositoriesArrayJaRepository-Konfigurationsliste
repositories[].pathZeichenfolgeJaRepository-Pfad (relativ zum Projektstamm)
repositories[].urlZeichenfolgeJaGit-Repository-URL
repositories[].displayNameZeichenfolgeNeinAnzeigename des Repositorys
repositories[].iconZeichenfolgeNeinRepository-Symbol (Emoji)

Fügen Sie alle Unterrepositorys zum hinzu repos/ Verzeichnis. Dieses Verzeichnis muss von der Git-Versionskontrolle des Haupt-Repositorys ausgeschlossen sein, um die Verfolgung von Unter-Repository-Inhalten zu vermeiden:

# Exclude all sub-repositories
repos/

3. Fügen Sie das übergeordnete Repository zu HagiCode hinzu

Abschnitt betitelt „3. Fügen Sie das übergeordnete Repository zu HagiCode hinzu“

Wenn Sie die HagiCode-Desktopanwendung verwenden, öffnen Sie die App und fügen Sie Ihr Haupt-Repository als Projekt hinzu. Klicken Sie auf dem Startbildschirm auf die Schaltfläche „Projekt hinzufügen“ oder „+“, wählen Sie Ihren Haupt-Repository-Ordner aus und Sie sehen alle Unter-Repositorys und deren Statusinformationen.

Benutzen Sie die monospecs.yaml Konfiguration, um alle konfigurierten Unterrepositorys in die zu klonen repos/ Verzeichnis:

Dadurch werden alle Unterrepositorys basierend auf den in der Konfigurationsdatei angegebenen URLs geklont.

version: "1.0"
commit_when_archive: true
repositories:
# ... repository configurations

Jedes Unter-Repository kann Folgendes haben:

  • OpenSpec-Änderungsordner (openspec/)
  • Unabhängig .git/ Verzeichnis
  • Optional AGENTS.md für die AI Agent-Konfiguration

Beim Hinzufügen eines neuen Unter-Repositorys zum monospecs.yaml repositories Array:

repositories:
- path: "repos/new-service"
url: "https://github.com/HagiCode-org/new-service.git"
displayName: "New Service"
icon: "🆕"

Wenn sich Repository-URLs oder Metadaten ändern:

  1. Bearbeiten monospecs.yaml um entsprechende Einträge zu aktualisieren
  2. Überprüfen Sie, ob die YAML-Syntax korrekt ist
  3. Wenn Sie Änderungen synchronisieren, aktualisieren Sie die lokale Repository-Konfiguration manuell

Die AGENTS.md Die Datei enthält Repository-spezifische Anleitungen für den AI Agent:

Technische Stack-Informationen

  • Framework und Build-Tools
  • Codekonventionen und Benennungspraktiken
  • Versionsverwaltung und Bereitstellungskonfiguration

Projektspezifische Verhaltensweisen

  • Konfigurationserweiterungen und besondere Anforderungen
  • OpenSpec-Integrationsmuster
  • Anforderungen an die Repository-übergreifende Koordination

Benutzen AGENTS.md ermöglicht dem KI-Agenten:

  • Verstehen Sie Repository-Beziehungen und -Abhängigkeiten
  • Generieren Sie Code und Refactoring über mehrere Repositorys hinweg
  • Sorgen Sie für Konsistenz bei der Versionskontrolle und den Konfigurationen

Unabhängig davon, ob Sie ein von MonoSpecs verwaltetes Projekt oder ein reguläres Repository verwalten, können Sie den OpenSpec-Workflow von HagiCode verwenden:

Reguläres Repository:

  • OpenSpec im Root openspec/ Verzeichnis
  • Änderungen wirken sich nur auf das aktuelle Repository aus

MonoSpecs verwaltetes Projekt:

  • OpenSpec liest monospecs.yaml Konfiguration
  • Nach Sub-Repository verfolgte Änderungen
  • Spezifikationen werden automatisch auf korrekte Ziele festgelegt

Wann commit_when_archive: true:

  • Spezifikationen werden automatisch in das Haupt-Repository übertragen
  • Der Code der Unterrepositorys wird nicht festgeschrieben (bleibt separat)
  • Vereinfacht die Spezifikationsverwaltung – für Unterrepositorys sind keine manuellen Spezifikations-Commits erforderlich

Unterrepositorys behalten eine unabhängige Versionskontrolle bei:

  • Übertragen Sie tatsächliche Codeänderungen in ihre eigenen Repositorys
  • Spezifikationen werden separat festgeschrieben (vom Haupt-Repository bei der Archivierung).
  • Verwenden Sie Kebab-Case (Kleinbuchstaben und Bindestriche) für Repository-Pfade
  • Verwenden Sie einfache, beschreibende Anzeigenamen auf Chinesisch
  • Verwenden Sie relevante Emojis als Symbole
  • Halten Sie es prägnant und beschreibend
  • Verwenden Sie für ähnliche Repositorys eine einheitliche Benennung
  • Wählen Sie Symbole aus, die den Zweck des Repositorys darstellen

Konfiguration mit tatsächlichem Status synchronisieren

  • Überprüfen Sie regelmäßig monospecs.yaml spiegelt die tatsächliche Repository-Struktur wider
  • Aktualisieren oder entfernen Sie Einträge, wenn Repositorys hinzugefügt oder entfernt werden
  • Testen Sie Änderungen, um die Gültigkeit der Konfiguration sicherzustellen

Versionskontrolle für die Konfiguration

  • Verfolgen Sie Änderungen an Konfigurationsdateien mit Git
  • Dokumentieren Sie die Gründe für größere Konfigurationsänderungen
  • Markieren Sie Konfigurationsdateiversionen für ein einfaches Rollback

Wenn die monospecs.yaml Datei wurde nicht im Projektstammverzeichnis gefunden:

  1. Überprüfen Sie, ob die Datei am richtigen Speicherort vorhanden ist
  2. Stellen Sie sicher, dass Sie sich im richtigen Arbeitsverzeichnis befinden
  3. Überprüfen Sie den Namen der Konfigurationsdatei auf Tippfehler

Häufige Probleme mit der YAML-Syntax:

  • Falsche Einrückung (Leerzeichen verwenden, keine Tabulatoren)
  • Fehlende oder zusätzliche Anführungszeichen um Zeichenfolgen
  • Ungültige Datentypen (Strings benötigen Anführungszeichen, Zahlen nicht)
  • Fehlende Pflichtfelder (z.B path oder url)

Wenn ein neu hinzugefügtes Repository nicht angezeigt wird:

  1. Überprüfen Sie die path ist richtig in monospecs.yaml
  2. Stellen Sie sicher, dass das Repository erfolgreich geklont wurde
  3. Überprüfen Sie, ob das Repository am erwarteten Speicherort vorhanden ist

Wenn das Klonen des Repositorys fehlschlägt:

  1. Überprüfen Sie die Netzwerkverbindung
  2. Überprüfen Sie, ob die Git-Repository-URL korrekt ist
  3. Suchen Sie nach Authentifizierungsproblemen
  4. Überprüfen Sie den Status des Docker-Containers
  5. Überprüfen Sie die Verfügbarkeit von Speicherplatz

Ausführlichere Informationen finden Sie in der MonoSpecs-Dokumentation und im HagiCode-Repository nach Konfigurationsbeispielen.