-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Task
1 / 11 of 1 issue completed
Copy link
Description
Migration: democracy-api → democracy-development Monorepo
Motivation & Ziele
Die Migration von democracy-api in das democracy-development Monorepo zielt darauf ab, die Entwicklungs- und Deployment-Prozesse zu vereinheitlichen, Code-Sharing zu verbessern und die Wartbarkeit der DEMOCRACY-Plattform langfristig zu sichern.
Warum diese Migration notwendig ist
1. Verbesserte Code-Wiederverwendung
Aktuell existieren Duplikate und Abhängigkeiten zwischen democracy-api und anderen Services im Monorepo:
@democracy-deutschland/democracy-commonwird als externe NPM-Dependency (v0.2.12-alpha.3) referenziert, während im Monorepo der aktuelle Code direkt verfügbar ist@democracy-deutschland/bundestag.io-definitionsmuss bei Änderungen separat released werden, bevor democracy-api sie nutzen kann- TypeScript-Typen und Shared Logic können nicht direkt geteilt werden
2. Vereinfachte Dependency-Management
- Workspace-Dependencies: Direkte Referenzen auf Monorepo-Packages eliminieren versioning-Delays
- Konsistente Versionen: Shared Dependencies (TypeScript, ESLint, Testing-Tools) können zentral verwaltet werden
- Schnellere Entwicklungszyklen: Änderungen in common-Packages sind sofort in democracy-api verfügbar
3. Einheitliche CI/CD-Pipeline
- Aktuell: Separate GitHub Actions Workflows in beiden Repositories
- Nach Migration: Turborepo-basierte Pipeline mit intelligenter Changed-Detection
- Vorteil: Nur betroffene Services werden gebaut/getestet, kürzere Build-Zeiten
4. Vereinheitlichte Entwickler-Experience
- Single Checkout: Entwickler müssen nur ein Repository klonen
- Konsistente Tooling: Gleiche ESLint/TypeScript/Testing-Konfigurationen
- Atomic Changes: Cross-Service-Änderungen können in einem PR durchgeführt werden
5. Bessere Git-History & Code-Archäologie
- Cross-Repository-Änderungen sind aktuell schwer nachvollziehbar
- Monorepo ermöglicht Atomic Commits über Service-Grenzen hinweg
- Git-History von democracy-api bleibt vollständig erhalten (via Git Subtree)
6. Infrastruktur-Vorteile
- Shared Docker-Build-Logik: Reduziert Dockerfile-Duplikate
- Garden.io Integration: Einheitliche Kubernetes-Testumgebung
- Deployment-Koordination: Abhängige Services können zusammen deployed werden
Warum gerade jetzt?
- Node.js 20 Migration: democracy-api erfordert bereits Node.js >=20.9.0, Monorepo ist noch auf v18.18.2 → Idealer Zeitpunkt für Alignment
- ESLint v9 Migration: democracy-api nutzt noch Legacy-Config, Monorepo hat bereits ESLint v9 Flat Config → Migration kann kombiniert werden
- Aktive Entwicklung: democracy-api ist aktiv maintained (v0.2.78), Migration vor Code-Freeze ist einfacher
- Keine Breaking Changes in Arbeit: Stabiler Zeitpunkt ohne größere Feature-Branches
Detaillierter plan
https://github.com/demokratie-live/democracy-api/blob/main/MIGRATION-MONOREPO.md
Reactions are currently unavailable