Added semantic versioning precedence logic