How to define a software version?

Asked

Viewed 20,821 times

40

I would like to know what the number of software versions are and how they work, for example v1.1.2 what does ? Is there any standard or recommendation for web application versions ?

  • 2

    +1, I’ve worked in companies that come up with crazy version count, if there is a pattern I don’t know, it depends a lot on the time that the version is released, whether it collects iterations (commits) as count or just modules. In my company we send versions with the date and each version we put an alphabet letter that we consider as version of the month

  • 6

    There is a very famous distro of Linux that when it launches version 15.10, is telling you "Version year 2015, month 10"; has operating system that skips version 9; there are others that when it arrives in 10 begin to use Roman numerals. And there’s Google that puts beta on everything and lets it go for years and years (then when it comes out of beta it touches on everything that worked right, and everyone has to learn to use the application again, but then I’m off topic).

  • 1

    @Bacco +1, Great your cometary and addendum to the "method" of google rs, Thank you.

  • 1

    What Bacco said is what I put in my answer, any attempt to guess what these numbers are doesn’t work. You have to "ask" who wrote these numbers, only he knows what criteria you used. But someone felt that the answer deserved a negative for not trying to guess. Or maybe for not repeating what I had answered before.

  • 2

    @bigown found his response great, besides clarifying me informed a link where I understood better how it works, unfortunately not all agree!

  • 2

    @devgaspa I even understand that they are not voting a lot because I did not detail much, after all I had already done in another answer, there was no reason why I repeat here what is written there. I’ve explained Semver in a lot of detail (it would be nice for people to vote more there than right here, that answer is nicer than this brush stroke I gave here). But to negate something that has nothing wrong is to cheat.

Show 1 more comment

3 answers

45


I would like to know what the number of software versions are and how they work, for example v1.1.2 what it means?

According to the Semantic Versioning:

  • The first number indicates that the system has changes that make it incompatible with previous versions;
  • The second number indicates that the system has changes compatible with previous versions, within the first number;
  • The third number indicates that the system has minor changes, such as bug fixes and features that do not affect compatibility with previous versions.

Optionally, a fourth number, called a release, is defined. Indicates the current number of the build within the scope of modifications.

Is there any standard or recommendation for web application versions?

Semantic versioning can be used. Some other systems use a version number formed by the release date. This is adopted when modifications are frequent (not to say daily) and it is not worth taking into account a semantic approach.

Examples:

  • Ano.Mes.Dia.Build;
  • Ano.Mes.Dia.Estado. State can be Alpha, Beta, dev, stable, etc..;
  • Ano.Mes.Major.Minor.Fix (may also have the status or release at the end);

Each team ends up inventing its format. These are some I’ve seen and used.

  • I don’t know if this is standardized by semantic versioning or not, but it would be a good idea if versions where only the third number changes were compatible "backwards" (backward Compatibility) and "forward" (forward Compatibility) - so that a file saved in 1.2.3 for example can be successfully opened in 1.2.0 (i.e. if this forward compatibility cannot be satisfied, the ideal is to change the second number, even if the change is small). In the second number it is enough to be backwards compatible (ex.: what is saved in the 1.2 opens in the 1.3, but not necessarily the other way around).

  • @mgibsonbr This is what the versioning suggests, by the way, but I’ve had the opportunity to know systems in which files saved, for example, in a version 1.2.3 do not open in the 1.2.0. A classic case was Guitar Pro versions 4 and 5.

10

There is no pattern. Each project adopts what suits it best, so the explanation of what each number (if any numbers are used) means must be provided by the project itself.

What is recommended is semantic versioning. Even setting some rules, they are subjective. This was once answered in another question (I will not repeat here what has been answered before).

And there’s a question in Software Engineering with some possible standards to adopt. It has my "answers" there and several other examples as it gives to use the creativity and one can not rely on intuition to determine what the numbers represent.

5

Generally each company defines its versioning methodology. A very common standard used in the market is the following: VERSION. RELEASE. REVISION

VERSION: A VERSION NUMBER is added if the project is an evolution.

RELEASE: A RELEASE number is added if the project is an improvement (eg exclusion or inclusion of new features).

REVISION: A REVISION number is added if the project is a correction of existing functionalities.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.