Versions communicate compatibility
Semantic Versioning commonly uses MAJOR.MINOR.PATCH. A major version can indicate incompatible API changes, a minor version can add backward-compatible functionality, and a patch version can contain backward-compatible fixes.
Tags connect versions to commits
A release tag gives a stable name to the commit that represents a release. Build and deployment systems can use that tag to create artifacts or publish release notes.
Version policy must match the project
Not every project follows semantic versioning exactly. What matters is that the team defines a predictable versioning policy and applies it consistently.