Our version convention follows semver (v2.0.0) and are heavily influenced by Node.js versioning schema.

We have three types of releases, stable, hotfix and unstable. Unstable versions are sometimes referred to as betas, RCs, tagged with SNAPSHOT or whatever other convention. Stable versions are versions signed of by testing and QA, they are considered as production ready. Hotfixes are stable versions which offer a quick fix to a previous stable version. Hotfixes are merged into the main project branch, so they will be available in the next stable release. Unstable versions are snapshots of work in progress between releases and are used by the community for testing and evaluation.

In order to indicate which type of release it is, we are using the version number, the general convention is.

MAJOR.MINOR.PATCH

MAJOR is defined by the project roadmap.
MINOR indicate the stable/unstable state. Even numbers are stable versions, uneven numbers are unstable.
PATCH is used for internally and is generated by our CI framework. Having a version with a patch number indicates it's a hotfix.

For example:

2.2.0 is a stable version
2.3.0 is an unstable version
2.3.123 is a hotfix for version 2.3, the hotfix build is 123.