Semantic Versioning
Semantic Versioning is a specification for version numbering. It uses
a format of <AMAJOR>.<MINOR>.<PATCH>:
- MAJOR: Indicates a breaking change to the API.
- MINOR: Indicates a new feature added to the API that is backward-compatible.
- PATCH: Indicates a bug fix or other backward-compatible changes.
Examples:
- 1.0.0: Initial stable release.
- 1.0.1: A patch release to fix bugs or make minor improvements.
- 1.1.0: A minor update with new features.
- 2.0.0: A major update with breaking changes.
SemVer provides a clear and consistent way to communicate the significance of changes to users and developers.
Many build and release tools can automatically determine the next version number based on commit messages(like feat or fix) that follow SemVer conventions.
But utimately semantic versioning is just an intention of the developer. it cannot guarantee that a patch release will be completely free of breaking changes. That's the reason we lock our dependencies.