Semantic Versioning

Semantic Versioning

July 10, 2024 | seedling, permanent

tags
git, magit

Summary #

URL

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR
version when you make incompatible API changes
MINOR
version when you add functionality in a backward compatible manner
PATCH
version when you make backward compatible bug fixes

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

ref

git tag and release #

release > tag

A tag is a git concept whereas a Release is Github higher level concept.

Releases are first-class objects with changelogs and binary assets that present a full project history beyond Git artifacts.

official release of “release” from github

A Release is created from an existing tag and exposes release notes and links to download the software or source code from Github. stackoverflow, ref

  • tags appear like this the code and can be downloaded from each tag

  • release is created from tag in Github

v0.0.1 vs 0.0.1 or to use or not to use “v” #

No, “v1.2.3” is not a semantic version. However, prefixing a semantic version with a “v” is a common way (in English) to indicate it is a version number. Abbreviating “version” as “v” is often seen with version control. Example: git tag v1.2.3 -m “Release version 1.2.3”, in which case “v1.2.3” is a tag name and the semantic version is “1.2.3”.

semver, ref

stackoverflow, ref even with v the downloadable source code is generated, stackoverflow it is quite possible to use the versioning without “v” and loose nothing from semantic versioning, “v” is a convention.

Conclusion #

  • From minimalist view point it is better to drop “v”.
  • however one advantage of “v” can be in filtering (TODO: confirm this)
    • <2024-07-10 Wed> decided to go with minimal approach: without “v”


Links to this note

Go to random page

Previous Next