Versioning Policy
This page outlines our approach to versioning, detailing how we increment versions, handle pre-release designations, automate versioning, and structure our release cycle. It also covers our support policy, upgrade recommendations, and how we communicate changes to ensure a smooth user experience.
Version Numbering Scheme
We follow a modified semantic versioning scheme in the format X.Y.Z[-designation], where:
Version Type | Increment Frequency | Characteristics | Example |
---|---|---|---|
X (Major Version) | Evaluated every two development cycles but only released if there are significant changes. | π¨ May introduce breaking changes. πΉ Requires explicit upgrade steps. | 1.0.0 β 2.0.0 |
Y (Minor Version) | Every development cycle | β
Maintains backward compatibility. β¨ Introduces new features and functionality. | 1.0.0 β 1.1.0 |
Z (Patch Version) | As needed, outside the regular cycle | π§ For hotfixes, security patches, and critical updates. β Maintains backward compatibility. | 1.1.0 β 1.1.1 |
Breaking Change Scenario
When a breaking change is necessary:
- π It will be scheduled for a major version release.
- π£ It will be documented in advance with migration guidance.
- β οΈ Deprecated features will emit warnings before removal.
Pre-Release Designations
We use the following pre-release designations when applicable:
Designation | Description | Characteristics | Example |
---|---|---|---|
-alpha.N | Early development builds. | β οΈ Potentially unstable, not for production use. π May contain incomplete features. | 1.1.0-alpha.1 |
-beta.N | Feature-complete builds undergoing testing. | β
Suitable for testing environments. π Feature-frozen, focusing on stability and bug fixes. | 1.1.0-beta.1 |
-rc.N | Release Candidates. | π Expected to be stable and production-ready. π§ Only critical bug fixes applied before the final release. | 1.1.0-rc.1 |
Examples
Potential Releases
1.0.0
β Initial stable release1.0.1
β Patch with bug fixes1.1.0-alpha.1
β Alpha for next minor1.1.0-beta.1
β Beta for next minor1.1.0-rc.1
β Release candidate1.1.0
β Stable minor release1.2.0
β Next minor release2.0.0
β New major version
Versioning Automation
To ensure an automated and predictable versioning process, we follow Semantic Versioning principles. This ensures that changes impact the correct version in a structured way.
How It Works
- π Identifies commits made since the last version.
- π’ Determines the new version based on predefined rules.
- π Automatically generates and publishes the new version.
Version Support Timeline
We maintain two support tiers:
-
Active Support (Current Major Version):
- π Receives feature enhancements, bug fixes, and security patches.
-
Security Support (Post Active Support):
- π Receives only critical security patches.
Important
Older versions do not receive further updates or support.
Upgrade Path Recommendations
- Minor version upgrades (
1.0.0 β 1.1.0
) should be straightforward and require minimal effort. - Major version upgrades (
1.2.0 β 2.0.0
) may require planning and testing. - π We provide upgrade guides for each major version.
Communication of Changes
For each release, we provide:
- π Release Notes detailing:
- π New features, improvements, and bug fixes.
- β οΈ Known issues and breaking changes (with migration paths).
- π Documentation Updates reflecting API, configuration, and behavioral changes.
- π’ Pre-Release Announcements for major versions in advance.
Versioning of Dependencies
- π Internal dependencies follow the same versioning scheme.
- π§ External dependencies are managed to maintain compatibility throughout a major version lifecycle.
Backward Compatibility Commitment
This versioning policy applies to all new releases. We commit to maintaining the described support windows for all future versions.
Releace Cycles
For more information about the release schedule, refer to the Release Cycle page.