Create New Release
Create and push a new semantic version release tag.
Steps
- •
Ask release type: Use AskUserQuestion to ask if this is a patch, minor, or major release.
- •
Fetch latest tags from remote:
bashgit fetch --tags origin
- •
Get the latest semver tag (assumes
vprefix likev1.2.3):bashgit tag --sort=-version:refname -l 'v*' | head -1
- •
Parse and bump version based on user selection:
- •patch:
v1.2.3→v1.2.4 - •minor:
v1.2.3→v1.3.0 - •major:
v1.2.3→v2.0.0
- •patch:
- •
Validate current commit exists on remote:
bashgit fetch origin git branch -r --contains HEAD
If no remote branch contains HEAD, abort with an error asking the user to push their commits first.
- •
Create and push the tag:
bashgit tag -a <new_version> -m "Release <new_version>" git push origin <new_version>
- •
Report success with the new tag name.
Version Parsing
Parse version from tag like v1.2.3:
- •Extract numbers after
vprefix - •Split by
.to get major, minor, patch components - •Handle edge case: if no tags exist, start at
v0.1.0
Error Handling
- •If current commit is not on remote: "Current commit is not pushed to remote. Please push your changes first."
- •If tag already exists: "Tag already exists. Please check existing tags."
- •If git operations fail: Report the specific error.