with one click
release
Release new versions of changed packages
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Release new versions of changed packages
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | release |
| description | Release new versions of changed packages |
Release new versions of changed packages.
This project uses release-plz for automated releases. Version is determined by conventional commits (fix: → patch, feat: → minor, feat!: → major).
Each package has its own version and changelog. release-plz opens a PR only for packages with changes since their last release. s2-cli and s2-lite are in the same version_group (released together). s2-api, s2-common, s2-storage, and s2-resource-spec are library packages for internal use (published to crates.io but no GitHub releases).
Tags are per-package: s2-cli-v{version}, s2-lite-v{version}, s2-api-v{version}, s2-common-v{version}, s2-storage-v{version}, s2-resource-spec-v{version}.
/release
Find the release PR
gh pr list --label release --state open
Identify which packages are being released
Cargo.toml files are modified in the PR:
gh pr diff <PR_NUMBER> --name-only
cli/Cargo.toml, lite/Cargo.toml, api/Cargo.toml, common/Cargo.toml, storage/Cargo.toml, resource-spec/Cargo.tomlFor each package being released, verify its changelog
gh pr diff <PR_NUMBER>
git fetch --tags
# Example for s2-cli (substitute the package name as needed):
git log $(git tag -l 's2-cli-v*' --sort=-v:refname | head -1)..origin/main --oneline
feat:, fix:, docs:, etc.) should be includedchore: may be excluded (expected)If discrepancies found
release-crates is still running from a prior release. release-plz triggers on pushes to main, while release-crates triggers when a PR with the release label is merged. If a previous release PR was just merged, release-crates may still be running and hasn't created tags yet. If release-plz runs before those tags exist, the PR will have stale changelogs with duplicate entries from the previous release.
gh run list --workflow=release-crates.yml --limit 1
gh run watch <RUN_ID> --exit-status
gh workflow run release-plz.yml
gh run list --workflow=release-plz.yml --limit 1
gh run watch <RUN_ID> --exit-status
Dry run before merging (only for packages being released)
# Run only for packages with version bumps in the PR, e.g.:
cargo publish -p <package-name> --dry-run
If changelog is correct: Merge the PR
gh pr merge <PR_NUMBER> --squash
gh workflow run release-plz.yml
Wait for the PR to be created, then verify and merge.
gh run list --workflow=release-plz.ymlrelease-crates.yml publishes to crates.io and creates per-package git tagss2-cli-v* or s2-lite-v* trigger release-cli.yml (builds binaries, Docker images, updates Homebrew)Cargo.toml in the PR before merging