use a semantic version