What could justify the leap of a number in a versioning system?

8

I noticed that the much-touted PHP 6 was canceled. Then, mysteriously, version 5 jumped straight into version 7.

I then had a question about the development of libraries and their versioning numbers:

  • Is there any plausible justification that could lead to such a versioning number jump as to the development of a library? For example, if I have a library with the 1.0 , 1.1 , and 2.0 versions, would there be any factor that would imply numbering being made to 4.0 ?

  • Based on the PHP 7 example, in a versioning system, what matters is that the numbers grow in sequence, or they just need to grow (regardless of the sequence "1, 2, 3") to demonstrate the version change?

Note : Note that I used PHP simply as an example. The purpose of the question is not to know what happened to the PHP versioning, but it was just an example to try to understand what leads a library / application to skip version numbers.

    
asked by anonymous 19.01.2017 / 12:57

2 answers

7

Actually yes and no. Plausible would need a definition. The fact is that version number changes are always made by humans and almost arbitrary.

Semantic Versioning

When you do SemVer you are adopting a clear criterion and you try to be less arbitrary, you want to be more objective when changing the number, but will still be done by a human being who has a degree of subjectivity. Even if you do the semantic versioning, nothing prevents you from following it for some reason . When it does not, the criterion is only slightly different, probably more flexible.

One reason is something unforeseen in the process, for example the abandonment of an entire specification. Already happened with PHP, JS and various technologies.

Organization

In theory, the numbers do not even have to be sequenced, although it would be crazy not to do so.

There are people who do not even use numbers for versions, or do not use that organization in levels. There is a model of all that is right . Of course this question is the most adopted.

You have a product that has no clear criteria, only numbers going up. After Linux started doing this several products did the same.

Marketing

There is a lot of technology that has jumped numbers, often by marketing. Is that plausible? Microsoft does that a lot. Look for Entity Framework 2 or 3. Many times this happens to "sync" with other products. But the most common is to get the idea that the product is much better. Microsoft has always been awful at versioning products. As MVP should not say that, but they said that I am independent to speak what I think, otherwise I did not want to. They'll make it better. See Windows version .

There were times when all technology products wanted to be version 5. Sterrambolically 5 meant object-oriented and everyone wanted to take this tram, even if it was not OOP. It was a crazy time :) Totally arbitrary.

Justification

In the case of PHP it was by mistake, the plausible thing was to fix the problem that they caused by giving a name to a version that they did not know what it was about, they did not know if it would be that way. PHP developers (those who implement the language) have always been naive (which has nothing to do with their technical ability, which I do not usually discuss), everyone knows that.

A lot was advertised as feature of 6 and you would not have it any more. The solution was to jump to 7. So 7 has fewer things than 6, even though 6 has never been officially released.

Conclusion

Each one does as he pleases. But if you want to have any meaning take a criterion.

    
19.01.2017 / 13:15
9

The vast majority of projects adopt this versioning standard , which basically consists of (taken from the site itself):

Given a version number MAJOR.MINOR.PATCH, increase to:

  • MAJOR version: When you make incompatible changes in the API,
  • Minor version: when adding features while maintaining compatibility, and
  • Patch (PATCH) version: when to fix failures while maintaining compatibility.
  • Additional labels for pre-release and build metadata are available as an extension to the MAJOR.MINOR.PATCH format.

    You can read about why PHP 5.x jumped to 7 here and here but briefly is:

    Marketing

    There have been attempts to launch PHP 6 in 2005, but it did not work out. Over time, the name "PHP 6" has been getting a bad name for the delay in the launch.

    Despite this, PHP 6 really existed already and it was something totally different. It never reached general availability, but it was a widely published and well-known project, conducted by php.net.

    To skip versions is not an exclusivity of PHP, it has also occurred in other projects such as: MariaDB, Netscape Communicator, Symantec, IP (the Internet Protocol itself), etc.

        
    19.01.2017 / 13:29