What is the reasoning behind SEDRIS version
numbering and how does this affect software compatibility?
Each of the five SEDRIS technology components, DRM, EDCS, SRM, API and
STF, contain a version number. These version numbers are composed of three
dot-separated numbers. With the numbers referred to as major, minor,
and maintenance, respectively. Thus for an API version 3.1.0, the
version number represents major version 3, minor version 1, and maintenance
Along with each technology component, each software implementation of
the technology component gets a version number as well. Thus, for example,
with Release 3.1.1, the STF had a version number of 3.1.0 (with the final
0 usually ommitted), but the STF implementation was version number of 3.1.1.
- The major version number is incremented if changes involve a
major usage paradigm shift or redesign. This design change requires a redesign
of user software or the architecture of user software. For example, the
introduction of Stores for memory management, or the split of the <Synthetic
Environment> into the API construct SE_Transmittal and an SE_Object
of DRM class <Transmittal Root>.
- The minor version number is incremented if there is any interface
change. This change is associated with changes to the existing functions
such as their signature or names, as well as name changes in types. It
also could account for some minor functionality change. This type of upgrade
typically requires minor changes in user software, but no redesign is necessary.
Renames are a typical example of this change.
- The maintenance version number is incremented when there are
bug fixes, added functions, performance enhancements, or added functionality.
This upgrade is, in general, confined within the body of the code to fix
bugs, enhance performance, and add new functionality (these do not impact
the use of the existing functions). In some cases, it could account for
minor API additions; for instance, adding a function. This type of upgrade
does not require modification of user software.
Therefore, if the major and minor version numbers for a given SDK match
the major and minor version numbers of another SDK, then the two SDKs are compatible. Thus,
for example, an SRM SDK 4.1.1 is compatible with a SEDRIS SDK 4.1.0.
Return to: Top of this