versionamento – What could justify skipping a number in a versioning system?

Question:

I realized that the long-awaited PHP 6 was cancelled. Then, mysteriously, from version 5 they jumped straight to version 7.

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

  • Is there any plausible justification that could cause this version number jump when developing a library? For example, if I have a library with versions 1.0 , 1.1 and 2.0 , is there any factor that implies the numbering being advanced to 4.0 ?

  • Based on the PHP 7 example, in a versioning system, what matters is the numbers growing in sequence, or do they just need to simply 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 with PHP versioning, but it was just an example to try to understand what makes a library/application skip version numbers.

Answer:

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

Given a MAJOR.MINOR.PATCH version number, increment a:

  1. Major version(MAJOR): when making incompatible changes to the API,
  2. Minor (MINOR) version: when adding functionality while maintaining compatibility, and
  3. Patch version(PATCH): when to fix bugs 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 in short it is:

Marketing

There were attempts to release PHP 6 in 2005, but it didn't work out. As time passed, the name "PHP 6" gained a bad reputation due to the delay in release.

Despite this, PHP 6 actually existed and was something else entirely. It never reached general availability, but it was a widely published and well-known project driven by php.net.

Skipping versions is not exclusive to PHP, it has also happened in other projects such as: MariaDB, Netscape Communicator, Symantec, IP (the Internet Protocol itself), etc.

Scroll to Top