Skip to content

Instantly share code, notes, and snippets.

@gabriel
Created September 25, 2015 18:06
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 gabriel/a4a7dbd44a2ae1c558ad to your computer and use it in GitHub Desktop.
Save gabriel/a4a7dbd44a2ae1c558ad to your computer and use it in GitHub Desktop.

Proposal for release versioning

  • We use a semantic versioning (e.g. 1.2.3-400)
  • Major, minor or patch only get incremented on production releases, 1.2.3 -> 1.2.4 or 1.3.1 or 2.0.0.The build number can be omitted or hidden when displaying this release version to humans. Code always passes around full version string.
  • We have a build version, that gets incremented on any packaged build, for testing (1.2.3-400) -> (1.2.3-401).
  • Obviously follow conventions for when to increment major, minor or patch
  • Staging releases are test releases so they increment build number

Upsides

  • Cleaner releases. Want to avoid versions like 1.0.367.
  • Have nice increments so people know how many versions they are behind. 1.0.1 -> 1.0.5 vs 1.0.367 -> 1.0.634
  • Semantic versioning is a standard.
  • Can auto package and deploy builds. People can subscribe to build increments.
  • Difference between build vs patch increment is useful information.

Downsides

  • Packaging needs to support reading build number
  • Extra complexity
@oconnor663
Copy link

Sounds good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment