This document describes how to create a new release of skill.
- Zig 0.15.1 or later installed
- GitHub CLI (
gh) installed and authenticated - Write access to the DockYard/skill repository
Update the version in these files:
build.zig.zon- Update.versionsrc/main.zig- UpdateVERSIONconstantsrc/commands.zig- Update version inenvcommandscripts/build-release.sh- UpdateVERSIONvariablescripts/install.sh- UpdateVERSIONvariableFormula/skill.rb- Updateversion
Run the release build script:
./scripts/build-release.shThis will:
- Build binaries for all supported platforms (macOS arm64/x86_64, Linux arm64/x86_64)
- Create tar.gz archives
- Generate SHA256 checksums
- Place everything in
release/v{VERSION}/
Create a new release and upload the binaries:
VERSION="0.1.0"
gh release create "v${VERSION}" \
--title "v${VERSION}" \
--notes "Release notes here" \
release/v${VERSION}/*.tar.gzAfter the release is created, update Formula/skill.rb with the SHA256 checksums printed by the build script.
Replace the placeholder values:
PLACEHOLDER_ARM64_SHA256→ macOS ARM64 SHA256PLACEHOLDER_X86_64_SHA256→ macOS x86_64 SHA256PLACEHOLDER_LINUX_ARM64_SHA256→ Linux ARM64 SHA256PLACEHOLDER_LINUX_X86_64_SHA256→ Linux x86_64 SHA256
git add Formula/skill.rb
git commit -m "Update Homebrew formula for v${VERSION}"
git push origin mainTest the installation methods:
brew tap DockYard/skill
brew install skill
skill --versioncurl -fsSL https://raw.githubusercontent.com/DockYard/skill/main/scripts/install.sh | sh
skill --versionThe first time you release, you'll need to set up the Homebrew tap:
Users would install with:
brew install DockYard/skill/skillNo additional repository needed - the formula in Formula/skill.rb is used directly.
- Create a new repository:
DockYard/homebrew-skill - Copy
Formula/skill.rbto the root of that repository - Users install with:
brew tap DockYard/skill brew install skill
Recommendation: Use Option 1 for simplicity unless you plan to have multiple formulas in the tap.
- Ensure you're building with the correct target triple
- Verify the binary is not stripped of necessary symbols
- Check that the binary has execute permissions in the tar.gz
- Re-run the build script to get the correct checksums
- Ensure you're using the correct tar.gz files from the release
- Check that the release assets are publicly accessible
- Verify the URLs in the install script match the actual release URLs
- Test locally by downloading a release asset manually