add semver checking to version number
use semver rules for migration