AllBeads Release Skill
Automate the AllBeads release process including quality checks, version bumping, tagging, and homebrew tap updates.
Pre-Release Checklist
Before releasing, verify:
- •
Quality gates pass (ALL THREE are mandatory - never skip tests!):
bashcargo fmt -- --check && cargo clippy -- -D warnings && cargo test
- •
All blockers closed: Check the release epic in beads
bashbd show <epic-id>
- •
Changes committed:
git statusshows clean working tree
Release Process
Step 1: Determine Version
Ask the user what version to release if not specified. Check current version:
grep '^version' Cargo.toml
Version format: MAJOR.MINOR.PATCH (e.g., 0.7.0)
Step 2: Update Version
Edit Cargo.toml to update the version:
version = "X.Y.Z"
Step 3: Commit Version Bump
git add Cargo.toml Cargo.lock git commit -m "Bump version to X.Y.Z"
Step 4: Create Annotated Tag
Create a tag with release notes summarizing the changes:
git tag -a vX.Y.Z -m "AllBeads X.Y.Z Release ## Highlights - Key feature 1 - Key feature 2 ## Changes - Change 1 - Change 2 ## Bug Fixes - Fix 1 - Fix 2"
Step 5: Push to GitHub
git push && git push --tags
Step 6: Monitor Release Build
Watch the GitHub Actions release workflow:
gh run list --limit 3 gh run watch <run-id>
Wait for the Release workflow to complete successfully.
Step 6b: Update Release Title and Notes
The GitHub Actions workflow creates a release but may not populate the title/body from the tag. Update it:
Title format: vX.Y.Z - Feature 1, Feature 2, Feature 3
Examples:
- •
v0.5.0 - Aiki Integration, Governance, TUI Contexts - •
v0.6.0 - Context Creation, Claude Plugin Support
gh release edit vX.Y.Z --title "vX.Y.Z - Feature 1, Feature 2" --notes "$(cat <<'EOF' ## Highlights - Key feature 1 - Key feature 2 ## Changes - Change 1 - Change 2 ## Bug Fixes - Fix 1 - Fix 2 EOF )"
Step 7: Close Release Epic
bd close <epic-id> --reason="Released vX.Y.Z" bd sync
Step 8: Update Homebrew Tap
After the release build completes, update the homebrew tap at ../homebrew-allbeads:
- •
Get SHA256 hash for the macOS ARM binary:
bashcurl -sL https://github.com/thrashr888/AllBeads/releases/download/vX.Y.Z/allbeads-macos-aarch64 | shasum -a 256
- •
Update
../homebrew-allbeads/Formula/allbeads.rb:- •Update
version "X.Y.Z" - •Update SHA256 hash for aarch64
- •Update download URL with new version
- •Update
- •
Commit and push the homebrew tap:
bashcd ../homebrew-allbeads git add Formula/allbeads.rb git commit -m "Update allbeads to vX.Y.Z" git push
Post-Release
- •Verify installation works:
brew upgrade allbeadsorbrew install thrashr888/allbeads/allbeads - •Announce release if needed
- •Start next development cycle
Troubleshooting
Workflow job stuck or cancelled
GitHub Actions runners (especially macOS) can be unreliable. If a job is stuck in "queued" or immediately cancelled:
- •Cancel the stuck workflow:
gh run cancel <run-id> - •Delete and recreate the tag to trigger a fresh run:
bash
git push origin :refs/tags/vX.Y.Z # Delete remote tag git tag -d vX.Y.Z # Delete local tag git tag -a vX.Y.Z -m "Release" # Recreate tag git push origin vX.Y.Z # Push new tag
Platform support
- •Supported: Linux x86_64/aarch64, macOS ARM (aarch64), Windows x86_64
- •Note: macOS Intel (x86_64) runners can be unreliable
Test workflow changes safely
Before modifying .github/workflows/release.yml for a real release, test changes on a separate branch or with a test tag (e.g., v0.0.0-test).
Rollback
If something goes wrong:
# Delete local tag git tag -d vX.Y.Z # Delete remote tag git push origin :refs/tags/vX.Y.Z # Revert commits if needed git revert HEAD