Olares versioning
The Olares versioning and release process is designed to provide clear version definitions and stable upgrade paths. This document outlines Olares' versioning rules, release types, branch management practices, and upgrade guidelines.
Versioning rules
Olares primarily follows the Semantic versioning specification, which defines versions in format Major.Minor.Patch[-PreReleaseVersion]
. For example, 1.11.0-rc.0
represents a release candidate for version 1.11.0
.
Versions are ordered as follows:1.0.0-alpha
< 1.0.0-alpha.1
< 1.0.0-alpha.beta
< 1.0.0-beta
< 1.0.0-beta.2
< 1.0.0-beta.11
< 1.0.0-rc.1
< 1.0.0
Release types
Olares offers three types of releases: Stable, Release Candidate (RC), and Daily build.
Stable releases
Stable releases are thoroughly tested versions suitable for production environments. The official installation script (https://olares.sh
) always defaults to the latest stable version.
- Release cadence: Monthly
- Examples:
v1.10.5
,v1.11.0
,v1.11.1
,v1.12.0
Release Candidate (RC) releases
RC releases are pre-release versions for testing before a stable release. RC releases may go through several iterations before being promoted to stable.
- Release cadence: Based on testing status
- Examples:
v1.11.0.rc.0
,v1.11.0.rc.1
Daily build releases
Daily build releases, or daily builds are automatically generated from the main
branch every day at 2:00 AM (UTC+8), with the build date embedded in the version name. These versions reflect the latest code changes and are intended for development and testing purposes. Daily builds are often unstable and not suitable for production use.
- Release cadence: Daily
- Examples:
v1.12.0-20241201
Release branch management
During the 1.x
phase, Olares follows a structured monthly release cadence:
At the end of each month, a release branch (e.g.,
release-1.11
) is created from themain
branch.An initial RC version (e.g.,
v1.11.0.rc.0
) is released from the new release branch. Additional RC versions may follow as testing progresses.The
main
branch transitions to the next version (e.g., fromv1.11
tov1.12
).Issues identified in the stable version are addressed through patch releases (e.g.,
v1.11.1
), based on the corresponding release branch.
Developers can submit pull requests (PRs) to both the main
branch and the relevant release branch as needed.
Upgrade policies and compatibility
Olares is in a rapid development phase with frequent feature additions and changes. To ensure stability and avoid unexpected issues, Olares follows a controlled upgrade policy:
Upgrades within the same minor version:
Upgrading within the same minor version (e.g.,
1.4.0
to1.4.2
) is fully supported. These updates typically include bug fixes or small improvements that do not affect compatibility.Upgrades across minor versions:
Upgrading from one minor version to another (e.g.,
1.4.x
to1.5.x
) involves more significant changes, such as new features or architectural updates. Because these changes may not be backward-compatible, automatic upgrades are not supported. Instead, users must manually uninstall the existing version before installing the newer version.
The type of release you are using also determines what upgrades are possible:
- Stable: You can only upgrade to newer stable releases, ensuring maximum reliability and stability.
- RC: You can upgrade to newer RC versions or stable releases as they become available.
- Daily build: You can upgrade to newer daily build, RC, or stable releases.
Future upgrade policy
In the next major release, Olares plans to fully support seamless automatic upgrades for all versions within the same major version.