Philip
Philip

Reputation: 678

What does the + mean in software versioning

In libraries or packages I often see something like 0.5.4+6 or maybe 1.12.4+2, etc. I know the first number is the major version, the next one minor version, the next one maybe build number or revision. But what does the +2 or +6 signify?

Upvotes: 0

Views: 434

Answers (2)

Lazy Badger
Lazy Badger

Reputation: 97282

Trailing part after MAYOR.MINOR.PATCH not defined strictly in SemVer (AFAICR), thus - everybody can add any useful information in it. Most common usage - provide (in case of using VCS) unique (but readable) id, which allow to identify exact changeset in source, used for building this artifact.

Because (mainly) tags (or equivalent) used for naming|numbering versions in VCSes and (internal) builds between tags (releases) are possible, such ids appear, which, in plain words, mean something "N commits after version X".

Sample from my labeling (don't try to grok hg-templating, I'll explain it)

semver = "{latesttag}{ifeq(latesttagdistance,0,'','+{latesttagdistance}')}"
  • Find latest tag in history
  • If there are commits after it - add "+" sign and this number of commits

Just human-friendly type of id, which also allow (rather) fast detection of commit in question, if it's needed. And it's a lot more readable and memorable and pronounceable than, f.e. b800644fcbe2

Upvotes: 0

Marco Pantaleoni
Marco Pantaleoni

Reputation: 2539

Usually it is used to provide some metadata / build metadata (eg. a build number or date).

For more detailed info, see the Semantic Versioning spec.

Upvotes: 2

Related Questions