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
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.