Why do we have version numbers?
Practically every software project must answer one question, regardless of the tech stack it uses, regardless of the team’s size, or which version control system it employs:
What versioning scheme should we use?
What does it really matter? Well, there are different reasons that the version scheme can matter. Let me offer three broad reasons to care about versions:
-
Marketing — When your product is marketed to humans, it can be useful to have a human-friendly version number. This version may be the same version you use in your VCS, as with products like PostgreSQL 9.6.21. Or it may be purely a marketing label, as with Windows 2000.
-
Dependency management — When your software project is used by other software projects, the version number can be a great way to indicate the significance of changes, such as the addition or removal of functionality, or that a bug was fixed.
- To facilitate troubleshooting — When you’re troubleshooting a software problem, it’s good to know which version of your code is executing. Including the build version in server logs is a great way to help this. The version number you see when you click Help then About in most desktop applications is an instance of this as well.