validation functions for cohesive semver versioning