What is the method behind software version numbering?

Have you ever had a question in your mind that PHP composer.json, Node.js package.json, or any other software company how does numbering their software version?

The most common versioning scheme is semantic versioning. Which lets you keep track of all the changes and progress you make.

Version: ^1.18.11 (Major.Minor.Patch)

Symbols (^, ~, *): Is specified which updates we accept

  • '^' Accepts patches and minor releases
  • '~' Accepts only patch releases
  • '*' Accepts all the versions

Major: Whenever there is some significant change being introduced. Backward-incompatible change to a software package.

Minor: Minor version numbers change when a new, minor feature is introduced or when a set of smaller features is rolled out.

Patch: This is normally for small bug-fixes