Automate the process of tagging a new release.
This include changing affected files, auto-commit with message and tag, setting different release types (alpha/beta), etc. Initial versioning follows semver.