VyOS tries to use semantic versioning.
What it means?
The version number consists of three parts: x.y.z
The first number changes if there are backwards-incompatible config format or API changes. This hasn't happened yet.
The second number changes when new features are added. It resets the third number to zero.
The third number changes when there are no new features, only bug fixes.
After 1.0.0, 1.0.1 is released. This is a maintenance release with some bugfixes but no new features. You can upgrade 1.0.0 or earlier version to it safely.
After 1.0.x, 1.1.0 is released. This is a feature expansion release, it contains new features and (most likely) some bugfixes. You can upgrade any 1.0.x or earlier version to it safely.
After 1.x.y, 2.0.0 is released. This release contains backwards-incompatible changes and you need to follow special procedures to upgrade an earlier version to it.
1.1.8 release broke the convention by including new features due to 1.2.0 number having been already assigned to a release in beta testing at the time.