The version numbers of the DLLs are of the form "x.y.z.b". The following convention is used to describe compatibility with other versions, taken to mean similar things from the Unix world.

File Version and Assembly Version:
  • The first digit x is the Major version. This is increased whenever an incompatible interface change is made. This could mean an intential breakage in behaviour for an existing API, or the removal of a public API. Then the version fields y and z are set to zero.
  • The second digit "y" is the Minor version. This is increased whenever a compatible change is made that introduces a new interface. This indicates to the programmer that another DLL with the same major version, but a newer minor version should be compatible. It cannot be guaranteed that downgrading to an older DLL with the same major version, but a smaller minor version will work as new APIs have been added in between. The version field z is set to zero if the minor version is increased.
  • The third digit z is the Revision. This is increased whenever a bugfix occurs. No new interfaces have been introduced and no interfaces have been removed. Replacing a DLL with the same major and minor version should cause no intentional side effects.
  • The last digit b is the "Build" information. It is typically zero for a release build. This field may be used to identify differences between a version that has already been released and a debug build.

Product Version
  • This version field has nothing to do with API compatibility. It should be ignored.

Branching
  • If a branch needs to be made that introduces API changes, then the major version should be changed.

Last edited Sep 29, 2012 at 3:12 PM by jmcurl, version 1

Comments

No comments yet.