Software Versioning

Definition
Software versioning is the process of assigning either unique version names or numbers to unique states of software.
Software Versioning

How does it work?

Software changes continuously. This means new features, but also changes in interfaces. And it may mean new bugs. Therefore other parties that work with this software need to be able to use a version of the software that is known to work and have a specific interface.

Versioning may be as simple as assigning a follow-up number (1, 2, 3, ...) to a fixed version of the code, but the version number may also contain information about the type of change that has been made (interface-breaking, feature-adding, or bug-fixing).

Examples

  • Semantic versioning (semver): major.minor.patch

When should you use it?

  • When others depend on your software for their own software.

Problems

  • A major change to the software will break software of third-parties, forcing them to update their code.

Links