Semantic Versioning

CI/CD & GitOps beginner

Semantic Versioning is a versioning scheme that communicates the nature and impact of changes through a structured MAJOR.MINOR.PATCH version number format.

Summary

Semantic Versioning (SemVer) is a widely adopted versioning convention using a MAJOR.MINOR.PATCH format where each segment communicates the type and compatibility impact of a software change.

What is Semantic Versioning?

Semantic Versioning, defined at semver.org, specifies that a version number takes the form MAJOR.MINOR.PATCH:

  • MAJOR is incremented for incompatible API changes that break backward compatibility
  • MINOR is incremented for new functionality added in a backward-compatible manner
  • PATCH is incremented for backward-compatible bug fixes

Pre-release versions and build metadata can be appended using hyphens and plus signs (e.g., 1.0.0-alpha.1 or 1.0.0+build.42).

SemVer solves "dependency hell" by giving consumers a clear contract about what to expect when upgrading. Package managers like npm, Maven, and Helm rely on SemVer to automatically resolve compatible dependency versions. In CI/CD pipelines, automated tools like semantic-release can analyze conventional commit messages and automatically determine and publish the correct next version number.

Why is Semantic Versioning relevant?

  • Clear communication: Version numbers convey the risk and compatibility impact of an upgrade to consumers
  • Automated release management: CI/CD tools can automate version bumps and changelog generation based on SemVer rules
  • Dependency management: Package ecosystems rely on SemVer to resolve compatible versions without manual intervention

We are here for you

You are interested in our courses or you simply have a question that needs answering? You can contact us at anytime! We will do our best to answer all your questions.

Contact us