The SHANE VERSIONING SYSTEM (SVS)
========================================================================
This document was created on the 10th of August 2004
========================================================================

Shane Land believes version numbering on software is a mess at the moment, 
and it's something that needs to be sorted out.  The entire way that 
versions are conceptualised is a bit flaky, and not enough thought goes 
towards making life easy for the end user.  Linux development has not been 
helpful in this regard.

Okay, let's take it from the top.  One can expect that logically 1.0 is the
first release of a software.  1.1 is an update to that release.  2.0 is a
new generation of the safe software.  This makes sense.  We can add
complexity to this model by saying that 1.0.0 is generation 1, update 0,
bugfix 0.  This allows differentation between updates and bugfixes (which is
especially useful if you may want to charge for updates, but feel obliged to
provide bugfixes).  Shane Land previously used the 1.0.0 format for OpenGEM 
(http://gem.shaneland.co.uk).

Linux, with 2.4.x being a useable Kernel, 2.5.x being a developer Kernel,
and 2.6.x being the next stable release a bit less coherent.  To label a 
developer release like a normal release is very confusing.  You can do 
something else.
  Eg 2.4.1 = normal release
     2.5.0dev = development release
     2.5.0dev8 = 8th development release
     2.5.0 = first release of new software for public

We believe this is a lot easier to understand.

For Shane Land's new generation of software we are introducing a whole new 
numbering scheme though, and one that reflects the network-centric release 
method that we have these days.  We are not sure that we will have 
generational updates exactly.  WeI intend to make an evolutionary evolving 
software instead.  In other words, we want it to progress, but we don't 
think progression will be fixed to generation lines. 
Example (using GEMini):

GEMini Release 0.1 = first development release
GEMini Release 0.28 = twenty-eight development release
GEMini Release 1 = first end user release
GEMini Release 28 = twenty-eight user release

We would intend each release to simply be a combination of bug-fixes and 
updates.  There would be no fixed amount of progress for each release. 
People would simply update their software to the latest release after 
install. 

We think this system is easier to follow than any other currently being 
used, and it's more reflective of the network-centric development we have 
these days.

How do I use the Shane Versioning System (SVS)?:

Prerelease numbering:
AnySoftware 0.1 = first release
AnySoftware 0.28 = twenty-eight release

Postrelease  numbering:
AnySoftware 1 = first release
AnySoftware 28 = twenty-eight release

Developer and Release Candidate versions:
AnySoftware 2dev = development version of AnySoftware 2 
(effectively a BETA)
AnySoftware 2devRC1 = development version of AnySoftware 2 
(release candidate)
Alternative method
AnySoftware 2dev = development version of AnySoftware 2 
(effectively a BETA)
AnySoftware 2RC1 = release candidate one of AnySoftware 2



For more information about SVS please visit these pages again shortly, 
or email us at shane@shaneland.co.uk

Please note that the SVS concept and name is the intellectual copyright 
of Shane Martin Coughlan, though it is free for use by anyone who wants 
to make understanding software easier. Please notify people of its origins 
on Shane Land if you do use it. 