This document provides a detailed explanation of the versioning and release strategy for the ZITADEL SDKs. Its goal is to provide a clear and predictable versioning scheme.
| Version Change | ZITADEL Compatibility | Type of Change | Example |
|---|---|---|---|
| MAJOR (e.g., 3.x -> 4.x) | Aligned with ZITADEL Core. Requires server upgrade. | Contains breaking changes. | v3.5.1 -> v4.0.0 |
| MINOR (e.g., 3.1 -> 3.2) | Compatible with the same ZITADEL major version. | New, non-breaking features added. | v3.1.4 -> v3.2.0 |
| PATCH (e.g., 3.1.0 -> 3.1.1) | Compatible with the same ZITADEL major version. | Backwards-compatible bug fixes. | v3.1.0 -> v3.1.1 |
Our SDKs follow a version alignment policy to ensure seamless compatibility with the ZITADEL core application. The MAJOR version number of the SDK directly corresponds to the MAJOR version of the ZITADEL instance it is designed to work with.
For example:
- Any SDK release in the
3.x.xseries is built for and tested against ZITADELv3. - When ZITADEL
v4is released, a corresponding4.0.0version of the SDK will be released.
This strategy prevents compatibility issues arising from breaking changes in the ZITADEL API.
The core ZITADEL project operates on a scheduled release cycle, with new major versions released quarterly. Our SDKs follow the same cadence for major releases.
- Major Releases: A new major version of the SDK is released in lock-step with each new major version of ZITADEL. This typically occurs at the end of each quarter.
- Minor and Patch Releases: Minor (
3.1.0) and patch (3.1.1) releases for the SDKs may occur at any time between major releases. These will include new non-breaking features and bug fixes for the SDK itself and will always maintain compatibility with the corresponding major version of ZITADEL.
To allow users time for upgrades, we provide support for the two most recent major versions of the SDK. This is often referred to as the "N-1" policy.
- Supported Versions: The current major release (
N) and the immediately preceding major release (N-1) are officially supported. - Unsupported Versions: Any version prior to
N-1is considered deprecated and unsupported.
For example, when SDK v4.x.x is released:
v4.x.xbecomes the current, fully supported version.v3.x.xbecomes the previous (N-1) version and will continue to receive critical backported fixes.v2.x.xand older versions become unsupported.
We strongly encourage users to stay on a supported version to ensure they have the latest security and stability fixes.
To facilitate testing before a final release, we may publish pre-release versions of the SDK, especially in advance of a new major version. These will be marked with standard SemVer suffixes like -alpha, -beta, or -rc (Release Candidate).
- Example:
4.0.0-rc.1would be the first release candidate for version4.0.0.
Pre-release versions are not intended for production use but are made available for early integration testing and feedback.
While new features are only added to the current major release line, we may backport critical fixes to a previous, still-supported major version.
- What gets backported: Critical security vulnerabilities and significant stability bugs.
- What does not get backported: New features, minor bug fixes, or performance improvements that are not critical.
This ensures that users who cannot immediately upgrade from a supported N-1 version can still receive the most important fixes.
All changes, including features, bug fixes, and breaking changes for every release, are documented in the CHANGELOG.md file at the root of the repository. We encourage you to review the changelog before upgrading.
When your organization plans to upgrade its ZITADEL instance across a major version (e.g., from v3 to v4), you must also update your application's dependencies to use the corresponding major version of this SDK. Attempting to use a v3 SDK with a v4 ZITADEL instance is unsupported and will likely result in errors.