views:

63

answers:

3

I have been developing some software and want to give it version numbers.

How do I do this?

How is it that some software gets two versions like 1.3v1.1

or some have 3 numbers - 4.0.1

What is the method behind all this?

Thanks.

+5  A: 

Wikipedia has a pretty extensive answer that might be a good place to start

Stedy
great, thanks !
Tommy
actually that article is not written very well but I do have a better idea now, thanks.
Tommy
+2  A: 

The usual method I have seen is X.Y.Z, which generally corresponds to major.minor.patch:

  • Major version numbers change whenever there is something significant, a large or potentially backward-incompatible change to a software package.
  • Minor version numbers change when a new, minor feature is introduced, or when a set of smaller features is rolled out.
  • Patch numbers change when a new build of the software is released to customers. This is normally for small bugfixes or the like.

Other variations use build numbers as an additional identifier, so you may have a large number for X.Y.Z.build if you have many revisions that are tested between releases. A couple packages I use are identified by year/month or year/release, so a release now might be 2010.9 or 2010.3 for the 3rd release of this year.

There are many variants on versioning, it comes down to personal preference.

For the "1.3v1.1" that may be two different internal products, something that would be a shared library / codebase that is rev'd differently from the main product. That may indicate version 1.3 for the main product, and version 1.1 of the internal library / package.

Maelstrom
great insight, thanks for the knowledge.
Tommy
+3  A: 

You might find the Semantic Versioning Specification useful.

Nick Pierpoint