Skip to content

Versioning

SemVer for CLI, extension, GitHub Action, and schema.

CodeCharter follows Semantic Versioning. This applies to the CLI, the VS Code extension, the GitHub Action, and the analysis schema.

Version structure

Three numbers MAJOR.MINOR.PATCH, optionally with a pre-release suffix such as -edge.3.

What we guarantee per level

Patch

  • Bug fixes or purely internal improvements only.
  • No schema changes — a .ccr file that runs on X.Y.0 also runs on X.Y.5.
  • No output format breakage; the JSON schema stays the same.
  • Built-in rule packages unchanged in logic. Severity and description may be refined.

Patches are drop-in replacements.

Minor

  • New features added additively: new built-in rule packages, new schema properties, new CLI options.
  • No breaking changes to existing contracts. Existing .ccr files and CLI invocations continue to work.
  • New built-in rules may produce new findings.

Major

  • Breaking changes permitted: schema properties may be removed, output formats may change structurally, built-in rules may be removed.
  • Major upgrades are a deliberate step accompanied by a migration guide.

Version pinning in CI

# Conservative: pin exactly
- uses: bochmann-software/codeguard@v1
  with:
    version: 1.0.6
    api-key: ${{ secrets.CODECHARTER_API_KEY }}

# Liberal: pin to major, use latest within that major
- uses: bochmann-software/codeguard@v1
  with:
    api-key: ${{ secrets.CODECHARTER_API_KEY }}

Recommendation for most teams: pin to the major version and use the default version. This gets you automatic bug fixes and features without breaking changes.

Version detection

codecharter --version
# CodeCharter 1.0.6

The JSON output includes the version in the version field:

{
  "version": "1.0.6",
  "findings": [...]
}

Schema versioning

The analysis schema (properties on TypeModel, MethodModel, and other models) follows the same SemVer contract:

  • Patch: no schema changes.
  • Minor: new properties added additively.
  • Major: existing properties may be removed.

Current state

You can see the current distribution version in the portal under Downloads. The supported versions per channel are listed under Channels.