AxiomCore
Reference & Appendix

Versioning and deprecation

Distinguish tool, source-schema, artifact, package, release, protocol, and documentation versions before upgrading an AxiomCore system.

AxiomCore has several independent compatibility boundaries. A version change in one does not automatically upgrade the others.

Version boundaries

BoundaryWhere to inspect itCurrent contract
Axiom CLIaxiom --versionPre-stable tool release. Pin the exact version used by CI and release jobs.
Acore source schemaTop-level axiom value and imported modulesLanguage/schema compatibility; do not infer CLI compatibility from a source version alone.
Contract releaseproject.version, Cloud release, or pinned pull referenceImmutable project/version bytes after release. The current CLI accepts letters, numbers, ., _, -, and +; it does not require semantic versioning.
.axiom envelopeArtifact header and manifestRuntime/package compatibility, including minimum runtime requirements where present.
Package dependencyDependency manifest and committed lockExact package identity, version/source, digest, and proof selected for a consumer.
.axiomapp and UI hostApplication and host manifestsTarget, build mode, host version, graph revision, and runtime protocol compatibility.
Machine-readable outputschema_version in the individual JSON outputCompatibility for that command's JSON shape, not for every CLI output.
DocumentationCurrent site and repository revisionDocuments the current reviewed implementation; historical versioned docs are not published today.

Choose release identifiers deliberately

Use a monotonically understandable scheme such as 0.8.2 or 2026.09.16.1, but treat that as team policy rather than compiler-enforced SemVer. A Cloud project/version pair is immutable: the same bytes can be retried, while different bytes must use a different version.

Do not overwrite an accepted artifact to make a version appear unchanged. Create a new version, preserve the old artifact and lock, and review:

axiom diff previous.acore candidate.acore --format semantic
axiom test candidate.acore
axiom build candidate.acore

The current semantic classifier is review evidence, not a universal proof of consumer compatibility. Field projection, authorization, validation, default, error, stream, cache, and target behavior still require owner review.

Deprecate before removing

Acore accepts @deprecated metadata on supported declarations. Use it to record intent near the authored surface:

@deprecated { replacement = "currentName" }
legacyName = "compatibility-value"

A useful deprecation change includes:

  1. the replacement and migration path;
  2. the first release carrying the notice;
  3. known consumers or an explicit statement that discovery is incomplete;
  4. a test proving old and new behavior during the overlap; and
  5. a later, separately reviewed removal diff.

There is no platform-wide deprecation duration guarantee today. Teams must set and communicate their own removal window. An annotation also does not force an arbitrary runtime or generated client to display a warning; verify the selected toolchain's output.

Upgrade safely

Upgrade one boundary at a time where practical:

  1. record the current CLI, extractor, runtime, host, and client versions;
  2. preserve the accepted source, artifacts, and dependency locks;
  3. update the chosen tool or dependency and resolve deliberately;
  4. inspect semantic and lock changes;
  5. run local contract/security tests and real consumer tests; and
  6. promote a new immutable release only after the rollback input is retained.

Use the release and upgrade workflow for the artifact lifecycle and the support matrix for the current maturity of each integration.

On this page