Complete release
Skill solana-foundation/kora/.claude/skills/complete-release
Reviewer workflow for completing a Kora mainline release after the release PR is merged. Squash-merges the PR, detects whether Rust and/or TypeScript changed, then triggers the correct publish workflows on main. For hotfix releases, publish from hotfix/* before merging back. Use when the user says 'complete the release' or 'merge and publish' (mainline only).From its SKILL.md
npx -y skills add solana-foundation/kora --skill complete-releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.8 KB, as published. Nobody here has run it
Kora Complete Release
Run this after a mainline release PR has been approved. It squash-merges the PR and triggers the appropriate CI publish workflows on main.
Step 1 — Identify the release PR
# List open release PRs
gh pr list --base main --search "chore: release" --json number,title,headRefName
Confirm the correct PR number with the user before proceeding.
Step 2 — Squash-merge the PR
gh pr merge "${PR_NUMBER}" --squash --delete-branch
Step 3 — Pull latest main
git checkout main && git pull origin main
Step 4 — Detect what changed
# Find the merge commit
merge_commit=$(git log --oneline -1 --format="%H")
# Check for Rust changes
rust_changed=$(git diff-tree --no-commit-id -r "$merge_commit" \
--name-only | grep -E '^(Cargo\.toml|Cargo\.lock|CHANGELOG\.md|crates/)' | head -1)
# Check for TypeScript changes
ts_changed=$(git diff-tree --no-commit-id -r "$merge_commit" \
--name-only | grep -E '^sdks/' | head -1)
echo "Rust changed: ${rust_changed:-no}"
echo "TS changed: ${ts_changed:-no}"
Step 5 — Trigger Rust publish workflow (if Rust changed)
gh workflow run "Publish Rust Crates" \
--ref main \
-f publish-kora-lib=true \
-f publish-kora-cli=true \
-f create-github-release=true
Monitor progress:
gh run list --workflow "Publish Rust Crates" --limit 3
Step 6 — Trigger TypeScript publish workflow (if TS changed)
gh workflow run "Publish TypeScript SDK" \
--ref main \
-f publish-to-npm=true \
-f create-github-release=true
Monitor progress:
gh run list --workflow "Publish TypeScript SDK" --limit 3
Step 7 — Verify
# Rust — confirm tags and crates.io
git tag --sort=-version:refname | head -5
# TypeScript — confirm npm
npm view @solana/kora version
Notes
- This skill is for mainline releases. For hotfix releases, trigger publish workflows from
hotfix/*before merging back tomain. - Publish workflows allow
mainandhotfix/*refs. - Rust publish order:
kora-libfirst, thenkora-cli(kora-cli depends on kora-lib). - A 30-second crates.io indexing delay is built into the CI workflow between the two publishes.
- TS prerelease versions are published with the
betanpm tag; stable versions uselatest. - If a workflow fails mid-run, re-trigger with only the failed steps by setting the relevant booleans to
false.