@@ -118,11 +118,27 @@ else()
118118 endif ()
119119endif ()
120120
121- # Set the SOVERSION. This version should be incremented anytime the ABI
122- # changes. OTIO is currently using the minor version number for breaking
123- # changes, e.g. v0.15, v0.16.0, v0.17.0, so SOVERSION is set as a combination
124- # of OTIO_VERSION_MAJOR and OTIO_VERSION_MINOR. When OTIO reaches version 1.x.x
125- # then SOVERSION could be changed to track just OTIO_VERSION_MAJOR.
121+ # Set the SO version. The SO version must be incremented every time a change
122+ # occurs to the ABI that causes a backward incompatibility. Such changes
123+ # include, exhaustively:
124+ #
125+ # * a change to struct or class layout
126+ # * enum changes that would cause a renumbering of previously published enums
127+ # * a removal of a struct, class, enumeration, or function
128+ # * a change in parameters to a free standing function
129+ # * a removal of a global variable
130+ #
131+ # OTIO currently designates the minor version number for breaking changes,
132+ # e.g. v0.15, v0.16.0, v0.17.0, accordingly the SO version will be incremented
133+ # to match. So for example, the following OTIO versions would map to these
134+ # ABI versions:
135+ #
136+ # * v0.18.0 - 0.18
137+ # * v0.19.0 - 0.19
138+ # * v0.19.1 - 0.19 # No ABI changes with minor version changes
139+ # * v1.0.0 - 1.0
140+ # * v1.1.0 - 1.1
141+ #
126142set (OTIO_SOVERSION ${OTIO_VERSION_MAJOR} .${OTIO_VERSION_MINOR} )
127143
128144set (OTIO_RESOLVED_CXX_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} " )
0 commit comments