The SDK consists of various components, tools, and language interfaces released under a common versioning scheme. Below, we explain how the overall SDK and its individual components are versioned, along with the associated compatibility promises.
We use a dual versioning approach: Calendar Versioning (CalVer) for the overarching SDK releases, and Semantic Versioning (SemVer) for the individual components contained within the SDK.
The SDK is distributed as a bundled release using Calendar Versioning (see calver.org). The SDK version number reflects the release date (e.g., 26.06 or 2026.11), serving as an identifier for a tested and validated snapshot of all included components at that point in time. Updating the SDK means updating your environment to this validated collection of components.
While the SDK bundle uses CalVer, the individual software components, tools, and libraries inside it follow Semantic Versioning (SemVer) (see semver.org). Each component's release is identified by a major, minor, and patch number, separated by dots (e.g., 1.2.1).
While the core components follow strict Semantic Versioning, interface-specific maintenance fixes may introduce an optional fourth digit without implying any change to the underlying API:
1.0.0 to 1.0.0.1)..0 during regular Major, Minor, or Patch releases (e.g., a release is written as 1.0.0, never 1.0.0.0).As your project evolves, and you update to newer SDK releases, your existing code should continue to work seamlessly. Because compatibility is dictated by the APIs, our compatibility guarantees apply to the Semantic Versioning of the individual components, rather than the CalVer of the SDK bundle.
We provide clear compatibility guarantees for all component releases sharing the same SemVer major version number.
Source compatibility means that an application developed against one component release can be compiled against other releases of that component within the same major version without source code changes.
We aim to maintain source compatibility with previous releases of the same major version. An application developed against a component's API 1.0.0 is expected to compile when built with any other 1.x.y release of that component (though deprecation warnings for outdated features may be shown).
Note: Parts marked as experimental are excluded from this promise.
Binary compatibility means that an application compiled against one component release can run with another compatible release of that component without recompilation.
We guarantee backward binary compatibility (ABI stability) within the same major version of a component. An application compiled against component version 1.0.0 will run with any newer 1.x.y release — however, an application compiled against a newer release is not guaranteed to run with older component versions.
Note: This promise applies under the condition that the same toolchain (compiler) and system environment are used for both versions.