Skip to content

Instantly share code, notes, and snippets.

@buckle2000
Last active November 24, 2017 03:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save buckle2000/ca3d59fc3faac11995447761c4ed24cb to your computer and use it in GitHub Desktop.
Save buckle2000/ca3d59fc3faac11995447761c4ed24cb to your computer and use it in GitHub Desktop.
Semantic Versioning for application without API Specification (SemVer w/o API)

Thou Shalt Not Version Arbitrarily -- me

What

SemVer w/o API is Semantic Versioning without the major version.

Here is a simple but not-so-rigorous description:

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

  • Version number SHOULD starts at 1.0.
  • If only bug fixes are introduced, you MUST increase the patch version.
  • If any feature is added/changed/removed, you MUST increase the minor version and set the patch version to 0.
  • Version number MAY include pre-release version, but it is not RECOMMENDED. Please refer to Rule 9 of SemVer specs.
  • Version number MAY include build metadata. Please refer to Rule 10 of SemVer specs.

Example

In version number 2.3, 2 is the minor version, 3 is the patch version.

Why

Because there are many things like games that do not offer API need to be versioned. There should be a common rule to regulate their versioning.

Have you ever seen any of those versioning patterns in your life (particularly in indie game industry)?

  • Alpha 0.17

  • Alpha 0.23

  • Alpha 0.9999

  • 1.0

  • 2.0

  • 3.0

  • 17.0

  • 17.1-alpha

It's always a pain for me trying to extract useful information from those version numbers, merely because they don't have any meanings!

How to spread this common sense (and love)

  1. Save this link.
  2. Post this link or the link of this gist to who randomly name their releases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment