Determinismus
CodeGuard garantiert: gleicher Source-Code-Stand, gleiche Regelmenge, gleiche CodeGuard-Version ergeben exakt die gleichen Findings, unabhängig von Rechner, Tageszeit, Systemlast oder Locale-Einstellungen.
Was den Output ändern kann
Drei Faktoren und nur drei:
- Source-Code ändert sich.
- Regelmenge ändert sich. Eine
.cgr-Datei dazu, raus oder geändert. - CodeGuard-Version ändert sich. Mit neuen Versionen können sich eingebaute Regeln verfeinern oder neue Schema-Properties dazukommen.
Für reproduzierbare Builds: pinnt eure CodeGuard-Version im CI. Siehe Versionierung.
Wie wir das durchsetzen
- Keine Zufallszahlen im kritischen Pfad. Sortierungen sind explizit und deterministisch.
- Keine
DateTime.UtcNow-Aufrufe in der Analyse selbst. Die Findings enthalten keine vom Lauf abhängigen Timestamps. - Keine Filesystem-Reihenfolge. Verzeichnis-Listings werden vor der Verarbeitung sortiert.
- Keine AI im kritischen Pfad. Kein LLM-Endpoint, keine Heuristik die sich zwischen Aufrufen ändert.
Konsequenz für euren Workflow
Wenn lokal grüne Builds in der CI rot sind, liegt es immer an einem der drei Faktoren oben. Typische Ursachen:
- Lokale und CI-CodeGuard-Versionen auseinandergelaufen.
.codeguard/-Konfig nicht eingecheckt.- Neue Regel hinzugefügt, lokal aber nicht refreshed.
Siehe Lokal andere Findings als in CI für die Debug-Schritte.