Versioning
The JavaScript SDK follows semantic versioning while it remains repository- and platform-distributed.
Current release
Package: @opencloud/js
Version: 0.2.2
Module: /_opencloud/sdk/js/v0.2.2/index.js
Types: /_opencloud/sdk/js/v0.2.2/index.d.tsExact version paths are immutable. The platform retains independently hashed 0.2.0, 0.2.1, and 0.2.2 artifacts and serves them concurrently. Each deployment pins one installed version:
runtime:
javascriptSdk:
version: 0.2.0Runtime configuration advertises the SDK selected by the active deployment:
const runtime = await fetch("/_opencloud/config").then((r) => r.json());
const sdk = await import(runtime.javascriptSdk.module);
if (sdk.OPEN_CLOUD_JS_VERSION !== runtime.javascriptSdk.version) {
throw new Error("OpenCloud SDK/runtime mismatch");
}The legacy /_opencloud/client/v1/index.js path remains temporarily available but is not a version pin. New applications must use javascriptSdk.module.
SDK 0.2.1 fixes the Realtime browser-timer receiver issue. An application deliberately pinned to frozen 0.2.0 must keep its compatibility shim. SDK 0.2.2 adds bounded custom counter and gauge emission.
Iteration policy
- Patch releases fix behavior without changing public signatures.
- Minor releases add compatible APIs and may tighten malformed-response checks.
- Major releases can remove deprecated APIs.
- Publishing or promoting an SDK changes only the default resolved for a new deployment. It never moves an active release.
- A deployed app should import the exact version advertised by its deployment-specific runtime rather than guessing a “latest” path.
- An SDK upgrade creates a new application release and must pass the normal browser and runtime gates. Rollback restores the previous release's SDK pin.
The package is private and is not published to npm yet.