What is Semantic Versioning?

Semantic versioning (https://semver.org/) is a specific way of structuring and using version numbers for APIs and other software artifacts. In this video we look at the details of how versions are numbered using a "MAJOR.MINOR.PATCH" pattern, and what that means in practice. Semantic versioning only makes sense when there is a well-defined model of backwards compatibility and how APIs and other software artifacts can evolve. This video is the first in a three-part series that discusses semantic versioning, how to manage API versioning, and how to design APIs for extensibility and evolvability. We also discuss "Hyrum's Law", which is an important consideration when it comes to using semantic versioning in practice. Hyrum's law tells us to be careful with backwards compatibility, because API consumers tend to rely on all observable behavior of an API, including some that may change. If you are interested in the four-part mini-series about API lifecycle management, here are links to all videos in that series: 1. "What is Semantic Versioning"    • What is Semantic Versioning?   (this video) 2. "Managing API Versions: The API Lifecycle"    • Managing API Versions: The API Lifecycle   3. "Designing APIs for Extensibility: How to create evolvable APIs"    • Designing APIs for Extensibility: How to c...   4. "API Lifecycle Management: Deprecation and Sunsetting"    • API Lifecycle Management: Deprecation and ...