| name | release |
| description | Prepare and publish a new cryptobot-python release. Use when the user asks to cut a release, bump the package version, update HISTORY.md, create a git tag, or create a GitHub release. |
Release Skill
Create a new release for the cryptobot-python package.
Usage
/release <version>
Where <version> is the new semantic version (e.g., 0.4.2, 0.5.0, 1.0.0).
Instructions
When the user invokes this skill with a version number, perform the following steps:
-
Validate the version: Ensure the version follows semantic versioning (X.Y.Z format). Reject pre-release or build metadata suffixes unless the user explicitly requests them.
-
Update version files:
- Update the
version field in pyproject.toml:
sed -i '' 's/^version = ".*"/version = "<version>"/' pyproject.toml
- Update
__version__ in cryptobot/__init__.py:
sed -i '' 's/__version__ = ".*"/__version__ = "<version>"/' cryptobot/__init__.py
- Verify both files match:
grep 'version' pyproject.toml | head -1
grep '__version__' cryptobot/__init__.py
-
Ask for release notes: Ask the user what changes should be included in the release notes.
-
Update HISTORY.md: Add a new entry at the top of the History section with the version number, today's date, and the release notes provided by the user.
-
Run tests: Execute make test to ensure all tests pass before proceeding. Do not continue if tests fail.
-
Create commit:
git add pyproject.toml cryptobot/__init__.py HISTORY.md
git commit -m "chore(release): prepare v<version> release"
-
Create tag:
git tag -a "v<version>" -m "v<version>"
-
Push commit and tag:
git push origin main
git push origin "v<version>"
-
Create GitHub release:
gh release create "v<version>" --title "v<version>" --notes "<release-notes>"
Use the release notes from the HISTORY.md entry. For multi-line notes, use --notes-file with a temporary file instead.
-
Report completion: Provide the user with a summary of files changed and a link to the GitHub release.