Versioning policy overview

Versioning policy overview

Magento uses software versioning to identify the compatibility of changes in the public code. By comparing two versions of the same component, you can tell whether it has any backward-incompatible changes in the public API or other significant code changes.

Versioning also helps:

  • track software dependencies. Managing dependencies can be a challenging task in a large, generously populated software environment like Magento, which ships with more than 100 core modules.

  • support compatibility verification and ease troubleshooting. Well known and tested combinations of Magento 2.x platform modules can reduce the number of combinations that require testing in your installation.

What is a public API?

Source code is considered part of the public API only if it is explicitly marked by the @api docblock tag. This designation indicates that the code can be used or customized by other components, such as formal interfaces and dependency injection points.

Do not mark private code with @api or changes to this private interface will trigger a version change.

For PHP code, compatibility of @api can be tracked on the level of structural elements (such as class signatures, interfaces, or methods). For other source code, compatibility is tracked only on the file level (for example, the file has been deleted or renamed).

Related topics

Supported versioning specifications and formats

Magento 2.0 software versions

Where is version information stored?

Changes to classes and method versions

Backward compatibility