Release types and version numbers

Overview

This topic describes how and when the software version numbers will be changed with releases.

The software version always changes with any release of Magento source code.

Development releases

In every development release (“pre-release” version), the same value of version number will be propagated in all Magento components and their dependencies.

Magento may update the x.y.z version in way prescribed by Semantic Versioning, but also could release the same x.y.z with different stability and/or index numbers, For example, 0.1.0-alpha1 -> 0.1.0-alpha2, 0.1.0-alpha3 or 2.0.0-alpha3 -> 2.1.0-beta1 -> 2.1.0-beta2

Previous Release Next Release
Component Version
"name": "magento/foo",
"version": 0.1.0-alpha87
"name": "magento/foo",
"version": 0.1.0-alpha88
Dependency in Other Components
"require": {
    "magento/foo": "0.1.0-alpha87"
}
"require": {
    "magento/foo": "0.1.0-alpha88"
}

Stable releases

In every stable release, the same value of version number is propagated in all components, but dependencies have a wildcard (*) pattern.

The x.y.z numbers will change according to Semantic Versioning policy provisions. For example, 1.0.0 -> 1.0.1 -> 1.1.0 -> 1.5.0 -> 1.5.1 -> 2.0.0 -> 2.1.0. Also, Magento may decide to change the “minor” version instead of the “patch” version.

Previous Release Next Release
Component Version
"name": "magento/foo",
"version": ~1.2

This is equivalent to >= 1.2 < 2.0.0.

"name": "magento/foo",
"version": 1.3.0
Dependency in Other Components
"require": {
    "magento/foo": "1.2.*"
}
"require": {
    "magento/foo": "1.3.*"
}