1

There are many different version schemes, and it seems like every major software company uses a different scheme, but I would like to know which scheme is best for mISV.

Also, if you can, I would like you to write which scheme do you use in your company, pros and cons of such scheme, and why you have chosen that scheme.

Related Questions

Deciding on version numbers
How to do version numbers?
How do you know what version number to use?
What is your preferred style of product version number and why? (this answers my second question)
Versioning Style Guide
Semantic Versioning (this is probably the best versioning scheme for components, not sure about applications for end-users)

Hints

This is a list of hints I've found on the internet:

Community
  • 1
  • 1
Paya
  • 5,124
  • 4
  • 45
  • 71

2 Answers2

2

mISV programs can be characterize by a high release rate, and at least by a high build rate (up to several builds a day).

In that context, it can be interesting to monitor:

  • a build Id (which can be the SVN id or a Git or Mercurial SHA1)
  • a classic Major.Minor.Build version

For the team, you can communicate in term of build id, while in term of release management for the client, a more classic version schemes is in order.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • I want to use Git as a VCS, but I would also like to integrate Git's "revision number" (like you can with SVN) in the version scheme. Is there any way how to achieve the same effect you get with SVN revisions? I know Git works differently, I'm just looking for some way to push the Git's info into the version. – Paya Jun 08 '11 at 12:07
  • @Paja: are you talking about http://stackoverflow.com/questions/2059326/git-equivalent-of-subversions-url-keyword-expansion/2059393#2059393 or http://stackoverflow.com/questions/1127177/to-put-the-prefix-revision-number-to-codes-by-git-svn/1127241#1127241 ? – VonC Jun 08 '11 at 12:20
  • Note: for a "revision number" in Git, see `git describe`: http://stackoverflow.com/questions/924743/can-i-know-the-revision-number-of-a-commit/924746#924746 – VonC Jun 08 '11 at 12:23
  • I guess I'm talking about the second link. Thanks, [`git describe`](http://stackoverflow.com/questions/384108/moving-from-cvs-to-git-id-equivalent/385520#385520) is probably what I'm looking for. – Paya Jun 08 '11 at 19:07
  • @Paja: yes, `git describe` is the recommend way to communicate a version number in Git. But even tough, you cannot include it easily in a source managed by Git. – VonC Jun 08 '11 at 19:19
0

Quite frankly, I think this one is solved. Use date and time stamps. You're version numbers then turn into readable strings that people understand.

In the off chance that you have many different builds out in the wild, each should be tagged as such. Besides a version number (which is a date and time stamp) you'd have a simple tag. Mostly these are simply debug and release. But there are a variety of other such tags that make sense, such as staging, testing, or feature/branch specific tags.

If you wanna embed metadata about your build process/environment I consider that going beyond simple versioning numbers but sometimes, very helpful.

That's about it.

John Leidegren
  • 59,920
  • 20
  • 131
  • 152