major.minor.patch) with additional labels to communicate the stability and readiness of each release clearly. Below are definitions and guidelines to help you understand and select appropriate releases for your use case.
Semantic Versioning
Semantic Versioning (semver) is a versioning convention structured asmajor.minor.patch.
- Major: Incompatible API changes and removal of deprecated APIs.
- Minor: New features, bug fixes, performance improvements.
- Patch: Bug fixes & performance improvements. Feature improvements may be included in some circumstances.
Release Labels
| Release Type | Example | API Stability |
|---|---|---|
| Experimental Feature | 4.10.0-experimental-hot-restart.0 | Highly Unstable |
| Preview | 4.10.0-preview.1 | Unstable |
| Release Candidate (RC) | 4.10.0-rc.3 | Stable |
| Generally Available | 4.10.0 | Stable |
Release Candidates (RC)
Release candidates have completed initial development and API definition. They are currently undergoing rigorous QA testing and review. While RCs are stable in terms of API, they have not yet received full QA approval.- If no critical issues are found, an RC will become the official release.
- Only use RCs in production after careful consideration and testing.
- RCs will only be supported in production when sanctioned by a Ditto support engineer.
Preview Releases
Preview releases offer early access to features and improvements that are approaching maturity but still undergoing development. These releases are intended for gathering user feedback and testing integration with existing workflows. API may change based on feedback and ongoing development.Experimental Feature Releases
Experimental feature releases introduce innovative or experimental functionality that is still in early stages of development. These features are exploratory and intended for early-stage feedback. They are highly unstable and likely to undergo significant changes or possibly removal based on evaluation.Synchronization Compatibility
Synchronization will remain backward-compatible with the previous major version. This means a previous major version can reliably synchronize with the next newest major version.- Local Mesh: A v4 SDK can successfully synchronize data with either v5 SDK or v3 SDK, but not both simultaneously on the same local mesh. This is because v3 and v5 are more than one version apart.
- Upgrading: Before you deploy the next major version of the SDK (e.g. v5), ensure all devices have been updated to the latest previous major (e.g. v4).
- Ditto Server: v4.0 and higher are supported.
| Client Version | Compatible with |
|---|---|
| v4.x.x | v3.x.x or v5.x.x |
| v5.x.x | v4.x.x |