Release policies

SDK and Runtime releases

Versioning

SDK and Runtime releases are categorised as major, minor or patch using standard semantic versioning (major.minor.patch):

  • Major releases (for example: 13, 14) include new features and breaking changes for deprecations that we've warned about previously. For major releases, we provide an upgrade guide as well as release notes.
  • Minor releases (for example: 13.1, 14.1) include new features and no breaking changes. Minor releases don't require an upgrade guide, but we provide release notes.
  • Patch releases (for example: 12.0.1, 12.0.2) contain only bug fixes and no breaking changes. Patch releases don't require an upgrade guide. We typically provide release notes.

Each major version of the Worker SDK is only compatible with the same major version of the Runtime. For example, you can’t use version 15 of the Worker SDK with version 14 of the Runtime.

Some features might require you to use a specific minor version of the Worker SDK and the Runtime. For example, you might need version 15.3 of the Worker SDK and version 15.2 of the Runtime. You can find which versions you need in the release notes and documentation for those features.

Support window

We support the most recent minor version of the most recent two major versions of SpatialOS (for example: 13.2 and 14.2).

This support includes:

Runnability

For projects built using a minor version, we support deploying until the later of:

  • 9 months after the minor version's release
  • 3 months after the subsequent minor release.
    We support the last minor version of supported major versions indefinitely.

Bug fixes

We release bug fixes in patch releases on the most recent minor version of supported major versions.

Documentation, tutorials and starter projects

We maintain and update documentation, tutorial and starter projects for the most recent minor version of supported major versions. Older versions may remain hosted, but are frozen: we do not correct, update or republish them.

Breaking changes and deprecations

Minor versions of SpatialOS are backwards compatible with previous minor versions of the same major version.

This means that, for game code written against Improbable's public APIs on a given minor version, you'll be able to update to all subsequent minor versions (of the same major version) without code changes. For example, moving from 12.1 to 12.2, 12.3, 12.4...

Breaking changes (that is, non-backwards-compatible changes) only occur in major versions. We provide any necessary upgrade instructions in the accompanying upgrade guide or in release notes.

To prepare you for these changes, we will (whenever possible) deprecate the API at least one minor or major version before making the breaking change. We'll announce deprecations in the release notes and/or in compilation warnings.

SpatialOS CLI releases

We release the SpatialOS CLI separately from the SDKs. When a new CLI version is available, you'll see a message in the CLI saying that you can run spatial update to get the latest version.

We deprecate each SpatialOS CLI version 90 days after we release the next version. Once a version is deprecated, it's possible that commands won't work, or will behave unexpectedly. We recommend you update your CLI version as soon as you can when a new version is available.

Game engine support

Please refer to each GDK's setup documentation (Unreal/Unity) for the currently supported version.

Exceptions

Though we strive not to, we do reserve the right to make out-of-policy releases, deprecations, or breaking changes due to issues such as security risks, or fixes with exceptional technical burden.

Maturity stages

This section describes the maturity stages that we use to communicate the stage of development of features.

Understanding these stages can help you answer questions such as:

  • Can I rely on this feature for an external playtest of my game? Has another studio already used this feature in an external playtest?
  • Can I rely on this feature for day-to-day development? Are other studios using it, and will Improbable support me using it?
  • Is this feature still being developed, or is it already proven and unlikely to change significantly?
Stage
Summary
Recommended usage
Support level

Internal

We're in the process of making an initial version of this feature with an internal customer.

We're developing this feature with our internal customer but it's not ready for anyone else to try.

Not applicable.

Preview

A very small number of customers are using an initial version to help us shape this feature.

Ready to try. Take a look to understand where we’re going, and to provide feedback. Do not rely on this feature for your development.

There is no guarantee that this feature will progress from this stage. We might change it significantly or remove it based on customer feedback.

Supported for evaluations, but not for day-to-day development.

Development-ready

Used by one or more studios in day-to-day development and internal playtests.

Available for development. Requires further improvements and performance optimisations before we can recommend the feature for an external playtest.

Fully supported for development.

External playtest-ready*

Used in at least one external playtest.

We have validated this feature in an external playtest and are confident in its stability and performance.

Might not be cost-optimised at this stage.

Fully supported for external playtesting.

Launch-ready*

Used in at least one launched game.

We have validated this feature in a launched game and are confident in its stability and performance.

We can provide longer-term support guarantees on it.

Fully supported for a game launch.

Deprecated

We’re not currently working on or planning to work on features or fixes. It could be removed permanently, with notice.

Not recommended for public releases.

No support.

*This stage doesn't apply to tooling that you only use in development.

Updated about a year ago


Release policies


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.