Skip to content

Versions and migration ​

What is versioned ​

VersionWherePolicy
Packages and cratesnpm / crates.iosemver; 0.x minor releases may break APIs, documented in the changelog
Worker protocolPROTOCOL_VERSIONchecked when an engine starts; SDK and engine WebAssembly ship together in @dotloomjs/sdk
Renderer bindingRENDER_PROTOCOLchecked when the renderer module loads
.dotl containermanifest.formatVersionreaders reject unknown majors
Document schemadocument.json schemaolder schemas are migrated step by step; newer majors are rejected with a clear error
Scene contractSCENE_FORMAT_VERSIONbinary deltas carry it; custom renderers check it
Plugin typestypeVersion per entitytype migrations upgrade old instances; newer instances open read-only

Upgrading ​

  1. Read the changelog for the new version.
  2. Update @dotloomjs/sdk and @dotloomjs/react together (they are released together).
  3. Files written by older versions open and are migrated in memory; saving writes the current schema. Keep a copy if older applications must still read them.
  4. Plugins declare the SDK range they support (sdk: '^1.0.0'); an incompatible range is reported when the plugin is registered.

Deprecations ​

APIs are marked @deprecated in the type declarations and rustdoc at least one minor release before removal.

MIT OR Apache-2.0