Versioning schema
Adobe Commerce and Magento Open Source application and module releases have their own unique version number.
Application version format
A change in the version for the application indicates a patch or feature release. This version change does not reflect the nature of the changes in the code base.
Module version format
The version
field in a modules composer.json
file specifies the module version and consists of three numbers in the following format:
MAJOR.MINOR.PATCH
The format follows Semantic Versioning rules for any @api
annotated by code
:
- The MAJOR version increments when incompatible API changes are made.
- The MINOR version increments when backward-compatible functionality has been added or if the module’s customization points have changed.
- The PATCH version increments when backward-compatible bug fixes occur.
On an exceptional basis, breaking changes or additional patches or hotfixes may be released on a PATCH version to address security or compliance issues and high-impact quality issues.
Pre-release versions
For pre-release versions, the format is:
MAJOR.MINOR.PATCH-<alpha | beta | rc>n
alpha , beta or rc |
Stability indicators, as described in the version_compare() specification |
n |
An increment number to distinguish releases of the non-stable versions |
Adobe’s module versioning policy complies with the following specifications:
Where versioning is used
The application version can be found in the source code of any component or bundle inside the composer.json
file.
It can be declared as the version of the component:
1
2
"name": "acme/foo",
"version": 1.2.0
Or it can be used to declare a dependency on a particular version of a component:
1
2
3
4
"require": {
"acme/foo": "1.2.*",
"acme/bar": "2.2.0"
}
If you installed the application from GitHub without using Composer, the version
is not included. The Admin displays the version as Magento ver. dev-<GitHub-branch-name>
. In addition, modules inside the require
declaration list a version of *
. For example, "magento/framework": "*"
.
Related Topics
- Module version dependencies - Information about how your module can depend on the version of other modules.
- Codebase changes - Information on how changes in a module’s codebase affect versions.
- Backward compatible development - Information about MAJOR and MINOR changes and how they impact extension developers.