一键导入
一键导入
| name | release |
| description | Create a release PR with version bump and changelog update |
Create a release PR that bumps the version and updates the changelog. After the PR is merged, a GitHub workflow will automatically tag the release, create a GitHub release, and bump to the next development version.
The skill accepts a version level argument:
patch - 5.5.0 -> 5.5.1minor - 5.5.0 -> 5.6.0major - 5.5.0 -> 6.0.05.6.0Example: /release minor
Verify prerequisites:
main branchgit fetch origin
if [ "$(git branch --show-current)" != "main" ]; then
echo "Error: Must be on main branch"
exit 1
fi
if [ -n "$(git status --porcelain)" ]; then
echo "Error: Working directory not clean"
exit 1
fi
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]; then
echo "Error: Not up to date with origin/main"
exit 1
fi
Run local checks:
cargo clippy --all-targets -- -D warnings
cargo test
If checks fail, stop and report the errors.
Determine the new version:
# Get current version from Cargo.toml (strip -alpha.N suffix if present)
CURRENT=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
echo "Current version: $CURRENT"
# Use cargo-release to calculate new version (handles alpha suffix removal)
cargo release version <LEVEL> --dry-run 2>&1 | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' | head -1
Note: cargo-release will strip the -alpha.N suffix when bumping to a release version.
Create release branch:
NEW_VERSION="X.Y.Z" # from step 3
git checkout -b release/v${NEW_VERSION}
Bump version using cargo-release:
cargo release version <LEVEL> --execute --no-confirm
Update CHANGELOG.md:
[unreleased] link pointing to compare/vX.Y.Z...HEAD[X.Y.Z] link comparing to the previous versionThe changelog follows Keep a Changelog format. Ask the user if they want to review/edit the changelog before proceeding.
Commit changes:
git add -A
git commit -m "release: prepare v${NEW_VERSION}"
Push and create PR:
git push -u origin release/v${NEW_VERSION}
gh pr create \
--repo iopsystems/rezolus \
--title "release: v${NEW_VERSION}" \
--body "$(cat <<'EOF'
## Release v${NEW_VERSION}
This PR prepares the release of v${NEW_VERSION}.
### Changes
- Version bump in Cargo.toml
- Changelog update
### After Merge
The release workflows will automatically:
1. Create git tag `v${NEW_VERSION}` and bump to next dev version
2. Build and publish packages (deb, rpm, Homebrew)
3. Create GitHub release with all artifacts
4. Publish to crates.io
---
See CHANGELOG.md for details.
EOF
)"
Report the PR URL to the user.
When the PR is merged to main, the following workflow chain runs automatically:
tag-release.yml (triggered by push to main with release commit message):
vX.Y.Z5.5.1-alpha.0) and pushes to mainrelease.yml (triggered by the tag push):
cargo install cargo-releasebrew install gh or see https://cli.github.com/gh auth loginRun the end-to-end viewer smoke test (`tests/viewer_smoke.sh`). Spawns `rezolus view` in upload-only, file, A/B, and proxy modes, exercises the API endpoints, and verifies experiment attach/detach. Use after any change touching `src/viewer/` or before opening a viewer-related PR.
Create a feature branch, commit changes, push, and open a PR against iopsystems/rezolus
Ensure site/viewer/lib has correct symlinks to src/viewer/assets/lib