Version Numbers

A version number is made up of 4 parts, Major.Minor.Patch.Build and there are 2 version numbers used by MicroLite.

The Assembly Version is the version of the dll that the .NET runtime will use to link an assembly. MicroLite only ever specifies the Major and Minor values for this which makes it easier to do drop in replacements of bug fix builds without having to re-compile an application.

The Assembly File Version is an informational version number which does include the Patch value. This value will always match the version number in the NuGet pagkage.

So an example would be an Assembly Version of 2.0.0.0 and an Assembly File Version of 2.0.2.0

The Major version is increased when there are non backwards compatible change to the public API. This would be for example removing or renaming a class, interface, method or property which is publicly visible in the MicroLite assembly.

The Minor version is increased when there are backwards compatible enhancements or additions to the public API. This would be for example adding a new class, interface, method or property which is publicly visible in the MicroLite assembly. If any classes/methods are to be obsoleted in the next Major version, they will be marked obsolete in a Minor revision change with the replacement added. This allows a clean transition between Major versions where possible.

The Patch version is increased when there are backwards compatible bug fixes which do not change the public API at all.

What does this all mean?

If you are using MicroLite in your own application, you can safely assume the following:

  • Installing an update where the patch version has incremented will not require your code to change.
  • Installing an update where the minor version has incremented should not break your build, however there may be build warnings if anything has been obsoleted.
  • Installing an update where the major version has incremented may break your build depending on what’s changed and what features you are using.

If you have developed an extension, you can safely assume the following:

  • If you develop against version 2.0.0.0, you can depend on any version up to but not including version 3.0.0.0.
  • If you develop against version 2.1.0.0, you can depend on any version up to but not including version 3.0.0.0, but not any version below 2.1.0.0.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s