Architektur-Regeln im Frontend prüfen (dependency-cruiser) #123
Labels
No labels
Kind
Bug
Kind
Enhancement
Kind
Maintenance
Priority
P1
Priority
P2
Priority
P3
Status
In Progress
Status
Need More Info
Status
Zur Abnahme
Änderungen Wettspielreglement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sffs-tt-basel/sffs-tt-issues#123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gegenstück zu #120 (Backend, ArchUnit) für die Frontends. Besprochen am 20.10.2026, Stand
main8ac1b58.Stand heute
lintnicht. Ein Lint-Fehler blockiert nichts.metrics.py: Komponenten, die selbst Daten laden (COMPONENT_FETCH_ALLOW). Er läuft nur bei/project-review, also nach dem Merge. Das ist dasselbe Muster wie im Backend vor #120.Vorschlag
dependency-cruiser. Ein Werkzeug für alle Workspaces einschliesslich Astro, eine Konfiguration in der Wurzel, als CI-Schritt neben „Schema-Drift“. Den Altbestand hält eine Baseline-Datei fest (
--ignore-known); anschlagen tut es nur bei neuen Verstössen.Kandidaten sind die Grenzen, die es heute schon gibt, nur ungeprüft:
packages/sharedimportiert nie aus einer App, und keine App importiert aus einer anderen.lib/spricht mit dem Backend.fetchundlib/apikommen incomponents/nicht vor. Das entspricht dem bestehenden Sweep.@sffs/api-types, nicht von Hand geschrieben (Regel in CLAUDE.md).Zur Wahl standen auch
eslint-plugin-boundariesbzw.no-restricted-imports(rot direkt im Editor, aber homepage und shared haben kein ESLint) und ArchUnitTS (wenig verbreitet).Für den Plan
lintzusätzlich in die CI kommt, ist eine eigene Frage.Abnahme
packages/sharedausportal/srcimportiert. Der Gegentest mit einem absichtlich eingebauten Verstoss ist rot.components/lib/apiimportiert und dafür kein Eintrag in der Baseline steht.