why not use semantic versioning?