1.6 Versioning and compatibility
The version number is defined in InterfaceVersion::version_number
in osi_version.proto
as the field’s default value.
OSI uses Semantic Versioning.
- Major
-
A change in the major version makes the code and recorded proto messages incompatible.
Major changes include:
-
An existing field with a number changing its meaning. Example:
optional double field = 1;
changes torepeated double field = 1;
. -
Changing the definition of units or the interpretation of a field.
-
Deleting a field and reusing the field number.
-
Changing the technology from Protocol Buffers to FlatBuffers.
-
- Minor
-
A change in the minor version indicates there is still compatibility with previously recorded files. However, the code needs fixing.
Minor changes include:
-
Renaming a field without changing the field number.
-
Changing the names of messages.
-
Adding a new field in a message without changing the numbering of other fields.
-
- Patch
-
Both recorded files and code still have compatibility.
Patches include:
-
File or folder structure that does not affect integration of the code in other projects.
-
Changing or adding comments.
-
Clarifying text passages explaining the message content.
-