Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you know what version number to use?

Tags:

version

Here's one I have always wondered about...

Please excuse my naivety, but - How do you decide what version number to name your software?

I assume, when somebody creates a "final" version of an application/program it is version 1.0? - Then, what happens when you update it, how do you decide to call it 1.1 or 1.03 etc etc.

Is this mostly for the developer?

like image 546
Keith Donegan Avatar asked Dec 28 '08 17:12

Keith Donegan


People also ask

What version number should I start with?

Start versioning at 1.0. 0 if: Your software is already used in production. Other users depend on your software and care when the API changes.

How do version numbers work?

Version numbers are usually divided into sets of numbers, separated by decimal points. Typically, a change in the leftmost number indicates a major change in the software or driver. Changes in the rightmost number often indicate a minor change. Changes in other numbers represent varying degrees of changes.

What is a product version number?

In a product release version number: All numbers such as the major release, minor release, and so on, are single digits, except the private hot fix number, which is two digits. For base releases, the digits from third digit on are omitted.

What is system version number?

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assigned in increasing order and correspond to new developments in the software.


1 Answers

I've recently heard a pithier versioning strategy, that I first encountered at Eric Elliot's Medium account. It's more weighted towards library versioning that customer facing version numbers, but it has the advantage of simplicity. Use a three part version number, where each number means:

breaking.feature.fix

  • breaking: Something has changed that means code/expectations must change
  • feature: Something new is added, but old code/expectations will still work fine.
  • fix: Nothing's new, but a bug has been fixed.

I leave my old answer below, as it's still relevant to customer facing versions.


I tend to weight the significant digits as follows....

w.x.y.z (or w.xyz)

  • w - Major version, with many new features. A paid upgrade. The first public release of software is 1.X (pre-release versions are 0.X)
  • x - Significant release, but without groundbreaking new features.
  • y - Bugfix releases
  • z - Patchlevel releases (fixing an emergency bug, perhaps just for one client).

If you choose to use the w.xyz format, you only get 9 digits before overflow. However, if you're releasing that often, you may have a bigger problem.

Let's illustrate with FooApp, my new product!

  • 0.9 - The first public beta
  • 0.91 - The second public beta
  • 0.911 - The emergency beta release to fix a crash on the Motorola 68010
  • 1.0 - The first public release
  • 1.1 - Added new BlahBaz feature
  • 1.11 - Bugfixes
  • 2.0 - Totally redeveloped interface.
like image 118
Adam Wright Avatar answered Sep 20 '22 19:09

Adam Wright



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!