Skip to content

Versionierung

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

CodeCharter 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 .ccr, 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 .ccr-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: 1.0.6
    api-key: ${{ secrets.CODECHARTER_API_KEY }}

# Liberal: Major pinnen, neueste innerhalb des Majors
- uses: bochmann-software/codeguard@v1
  with:
    api-key: ${{ secrets.CODECHARTER_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

codecharter --version
# CodeCharter 1.0.6

Im JSON-Output steht die Version im version-Feld:

{
  "version": "1.0.6",
  "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 seht ihr im Portal unter Downloads. Die unterstützten Versionen pro Channel stehen unter Channels.