Skip to content

Semantic Versioning

Semantic Versioning (aka semver) is

a simple set of rules and requirements that dictate how version numbers are assigned and incremented.

Semantic versioning specifications can be found here.

Structure of a version

semver

Best practices

Always version your app

Every app's version must be kept up to date. Use whatever is the conventional way of recording the app's version. For example, for javascript apps, use version attribute in package.json.

Display app's version

Always display the app's version in the ap's UI. Choose an unobtrusive location and a small font.

Keep versions in sync

All apps and shared packages in a project should keep their major.minor versions in sync.

Bumping up versions

  • Bump up the patch when creating a new tag (production only).
  • Bump up the minor for any backward-incompatible changes to the code. This applies in particular when database migrations are applied.
  • Bump up the major on significant changes: typically, bump up to 1.0 upon the first public launch of the app; 2.0 would be used when the app undergoes its first major refactoring.