Versionierung
CodeGuard folgt Semantic Versioning. Das gilt für die CLI, die VS Code Extension, die GitHub Action und das Analyse-Schema.
Versionsstruktur
Drei Zahlen MAJOR.MINOR.PATCH, optional mit Pre-Release-Suffix wie
-edge.3.
Was wir pro Stufe versprechen
Patch
- Nur Bugfixes oder rein interne Verbesserungen.
- Keine Schema-Änderungen, eine
.cgr, die aufX.Y.0läuft, läuft auch aufX.Y.5. - Kein Output-Format-Bruch, das JSON-Schema bleibt gleich.
- Eingebaute Regelpakete unverändert in Logik. Severity und Description dürfen sich verfeinern.
Patches sind drop-in.
Minor
- Neue Features additiv: neue eingebaute Regelpakete, neue Schema-Properties, neue CLI-Optionen.
- Kein Bruch bestehender Verträge. Bestehende
.cgr-Files und CLI-Aufrufe funktionieren weiter. - Neue eingebaute Regeln können neue Findings produzieren.
Major
- Breaking Changes erlaubt: Schema-Properties können wegfallen, Output-Formate können sich strukturell ändern, eingebaute Regeln können entfernt werden.
- Major-Upgrades sind ein bewusster Schritt mit Migration-Guide.
Versions-Pinning in CI
# Konservativ: exakt pinnen
- uses: bochmann-software/codeguard@v1
with:
version: 0.4.0
api-key: ${{ secrets.CODEGUARD_API_KEY }}
# Liberal: Major pinnen, neueste innerhalb des Majors
- uses: bochmann-software/codeguard@v1
with:
api-key: ${{ secrets.CODEGUARD_API_KEY }}
Empfehlung für die meisten Teams: Major pinnen, default-Version nutzen. Damit bekommt ihr automatische Bugfixes und Features ohne Breaking Changes.
Versions-Erkennung
codeguard --version
# CodeGuard 0.4.0
Im JSON-Output steht die Version im version-Feld:
{
"version": "0.4.0",
"findings": [...]
}
Schema-Versionierung
Das Analyse-Schema (Properties an TypeModel, MethodModel und weiteren
Modellen) folgt demselben SemVer-Vertrag:
- Patch: keine Schema-Änderungen.
- Minor: neue Properties additiv.
- Major: alte Properties können wegfallen.
Aktueller Stand
Die aktuelle Distributions-Version siehst du im Portal unter Downloads. Die unterstützten Versionen pro Channel stehen unter Channels.