ADR-015: Semantic Versioning and API Versions

Status

Accepted

Adapts the platform’s ADR-020: Semantic Versioning and ADR-023: API Versioning.

Context

The platform’s api version is smarter.sh/v1, and its releases are versioned by semantic-release. The SDK is released on its own schedule, and must work with several platform releases.

Decision

The SDK is versioned by semantic-release from conventional commits, independently of the platform. It targets the smarter.sh/v1 api, which every manifest’s apiVersion names. Compatibility across platform releases comes from forward-compatible models (ADR-004) and contract tests (ADR-005), not from matching version numbers. client.version() reports the platform’s version.

Alternatives Considered

  • Release the SDK in lockstep with the platform.

Consequences

  • Positive:

    • The SDK can be fixed and released without a platform release.

  • Negative:

    • Compatibility must be tested, not assumed.