Add semver as hard dependency