CodeGuard

Versionierung

SemVer für CLI, Extension, GitHub Action und Schema.

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 auf X.Y.0 läuft, läuft auch auf X.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.