MPI Version Numbering
Life Cycle Policy | MPI Release Types
| MPI Version Numbering |
The Major number indicates a fundamental change in the system architecture, severe technical changes, or major new functionality. Any type of change is possible for a major version release.
The Minor number signifies the addition of new modules, new features, expansion of existing features, or minor changes to the interface. The changes are limited for a minor version release. A minor release will support features that existed in a previous minor release.
Interface changes are kept to a minimum. They are only implemented when absolutely necessary to expand an existing feature or correct a problem. Interface changes will enable application compatibility issues to be discovered at compile time instead of at run time.
A new minor release may deprecate methods, structures, enumerations, or defines. An application will be required to include a "deprecated" header file to access the deprecated code.
The Release level indicates the relative maturity of the release. It follows an ordered progression:
Patch releases are interface and binary compatible with a Production or a previous patch release. Interface changes for methods, structures, or defines are not allowed. New members may be added to enumerations, as long as they don’t change the value of existing members. New macros, constants and functions can be introduced.
If an application uses an API which has become available in a particular release, it will no longer build or operate with previous versions.
New elements added to an existing enum type can cause backward compatibility issues. The problem occurs when a program contains a static list that has a one-to-one relationship to the elements in an enum. If new elements are added to the enum, then elements must also be added to the list. It is recommended that the length of such lists be verified at run-time.
Below is an example of a static list that is mapped to the elements of the MPIControlIoBit enum type. The example also shows how to verify that the length of the list is correct.
The Branch number identifies a branch from an existing version (Major.Minor.Release) or from another Branch. The Branch number is incremented for each instance of a Branch from an existing version (or from an existing Branch). The Release level definition is the same as defined in Major.Minor.Release.
The Branch.Release identifiers are always added as a pair. Every Branch REQUIRES a corresponding Release. Using Branch.Release makes it possible to trace back to any previous Branch.Release and eventually back to the starting Version. It provides a traceable history for infinitely expandable, multi-branched, multi-release trees.
Using this scheme, every software build/release is guaranteed to have a unique identifying value.
|| | Copyright © 2001-2021 Motion Engineering|