There are several different strategies for versioning releases. I’ll cover a few of them quickly.



(or to be a bit more clear)


Add in a new feature? Do a minor bump. Change an API? That’s a major. Pretty common, pretty easy, well supported.

The Git Hash

This is my preferred strategy and one I use for the iris chatbot. Since there are multiple people releasing multiple versions from different branches she doesn’t have a “golden release”. Instead each release is just the current git hash. This is a bit messier but automatic and avoids versioning confusion.

The Enterprise

{major}.{minor}.{patch}{Alpha/Beta/RC}-{optional re-release here}

For when Semver just isn’t enough to capture that you aren’t sure what you are releasing.

The Apple

Adjective Noun {Meaningless Major}.{Minor that only increments by one}

Ie Jackass Koala 5.4


{Charge More}.{"Free" upgrade}.{Oops, sorry!}{some letters here to convince you it's stable}

Queue the

“Free upgrades for life! Now on 1.4.7-Gold2! Upgrade to Version 2 ‘Lemming’ for just $19.99!”

The Incrementer

{One number that increments}

WYVIWYG (What You Version Is What You Get?)