askill
homebrew-release

homebrew-releaseSafety 90Repository

Release workflow for Gentleman-Programming homebrew-tap projects (GGA, Gentleman.Dots). Trigger: When user asks to release, bump version, update homebrew, or publish a new version.

1.5k stars
31k downloads
Updated last week

Package Files

Loading files...
SKILL.md

When to Use

  • User asks to "release", "bump", "publish", or "update homebrew"
  • User mentions a new version number
  • User says "homebrew-tap" or "formula"
  • After creating a git tag in GGA or Gentleman.Dots repos

Supported Projects

ProjectRepoFormulaTag FormatType
GGAgentleman-guardian-angelgga.rbV{version} (e.g., V2.6.2)Tarball (builds from source)
Gentleman.DotsGentleman.Dotsgentleman-dots.rbv{version} (e.g., v2.5.1)Pre-built binaries

Gentleman.Dots Release Process (Pre-built Binaries)

Step 1: Build Binaries

cd installer
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o gentleman-installer-darwin-amd64 ./cmd/gentleman-installer
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o gentleman-installer-darwin-arm64 ./cmd/gentleman-installer
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o gentleman-installer-linux-amd64 ./cmd/gentleman-installer
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o gentleman-installer-linux-arm64 ./cmd/gentleman-installer

Step 2: Commit, Tag, and Push

git add -A
git commit -m "feat/fix: description"
git push origin main
git tag v{VERSION}
git push origin v{VERSION}

Step 3: Create GitHub Release

gh release create v{VERSION} \
  installer/gentleman-installer-darwin-amd64 \
  installer/gentleman-installer-darwin-arm64 \
  installer/gentleman-installer-linux-amd64 \
  installer/gentleman-installer-linux-arm64 \
  --title "v{VERSION}" \
  --notes "## Changes
- {description of changes}"

Step 4: Get SHA256 of Binaries

shasum -a 256 installer/gentleman-installer-darwin-arm64 installer/gentleman-installer-darwin-amd64 installer/gentleman-installer-linux-amd64 installer/gentleman-installer-linux-arm64

Step 5: Update Formula

Update homebrew-tap/Formula/gentleman-dots.rb:

class GentlemanDots < Formula
  desc "Interactive TUI installer for Gentleman.Dots development environment"
  homepage "https://github.com/Gentleman-Programming/Gentleman.Dots"
  version "{VERSION}"
  license "MIT"

  on_macos do
    on_arm do
      url "https://github.com/Gentleman-Programming/Gentleman.Dots/releases/download/v#{version}/gentleman-installer-darwin-arm64"
      sha256 "{SHA256_DARWIN_ARM64}"
    end
    on_intel do
      url "https://github.com/Gentleman-Programming/Gentleman.Dots/releases/download/v#{version}/gentleman-installer-darwin-amd64"
      sha256 "{SHA256_DARWIN_AMD64}"
    end
  end

  on_linux do
    on_intel do
      url "https://github.com/Gentleman-Programming/Gentleman.Dots/releases/download/v#{version}/gentleman-installer-linux-amd64"
      sha256 "{SHA256_LINUX_AMD64}"
    end
  end

  def install
    if OS.mac? && Hardware::CPU.arm?
      bin.install "gentleman-installer-darwin-arm64" => "gentleman-dots"
    elsif OS.mac? && Hardware::CPU.intel?
      bin.install "gentleman-installer-darwin-amd64" => "gentleman-dots"
    elsif OS.linux? && Hardware::CPU.intel?
      bin.install "gentleman-installer-linux-amd64" => "gentleman-dots"
    end
  end

  test do
    system "#{bin}/gentleman-dots", "--help"
  end
end

Step 6: Commit to Both Repos

# In Gentleman.Dots repo
git add homebrew-tap/Formula/gentleman-dots.rb
git commit -m "chore(homebrew): bump version to v{VERSION}"
git push origin main

# In homebrew-tap repo
cd /tmp && rm -rf homebrew-tap
git clone git@github.com:Gentleman-Programming/homebrew-tap.git
cp {path-to}/Gentleman.Dots/homebrew-tap/Formula/gentleman-dots.rb /tmp/homebrew-tap/Formula/
cd /tmp/homebrew-tap
git add -A
git commit -m "chore: bump gentleman-dots to v{VERSION}"
git push origin main

GGA Release Process (Tarball - Builds from Source)

Step 1: Verify Tag Exists

git tag --list | tail -5

Step 2: Get SHA256 of Tarball

curl -sL https://github.com/Gentleman-Programming/gentleman-guardian-angel/archive/refs/tags/V{VERSION}.tar.gz | shasum -a 256

Step 3: Update Formula

Update homebrew-tap/Formula/gga.rb:

url "https://github.com/Gentleman-Programming/gentleman-guardian-angel/archive/refs/tags/V{VERSION}.tar.gz"
sha256 "{NEW_SHA256}"
version "{VERSION}"

Step 4: Commit and Push

cd ~/work/homebrew-tap
git add -A
git commit -m "chore: bump gga to V{VERSION}"
git push

Quick Reference Commands

# Build Gentleman.Dots binaries
cd installer && GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o gentleman-installer-darwin-amd64 ./cmd/gentleman-installer && GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o gentleman-installer-darwin-arm64 ./cmd/gentleman-installer && GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o gentleman-installer-linux-amd64 ./cmd/gentleman-installer && GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o gentleman-installer-linux-arm64 ./cmd/gentleman-installer

# SHA256 for binaries
shasum -a 256 installer/gentleman-installer-*

# SHA256 for GGA tarball
curl -sL https://github.com/Gentleman-Programming/gentleman-guardian-angel/archive/refs/tags/V{VERSION}.tar.gz | shasum -a 256

# Create GitHub release with binaries
gh release create v{VERSION} installer/gentleman-installer-* --title "v{VERSION}" --notes "## Changes"

Checklist

Gentleman.Dots

  • Binaries built for all platforms (darwin-amd64, darwin-arm64, linux-amd64, linux-arm64)
  • Changes committed and pushed to main
  • Tag created and pushed (v{VERSION})
  • GitHub release created with binaries attached
  • SHA256 computed for all binaries
  • Formula updated in Gentleman.Dots repo
  • Formula copied to homebrew-tap repo and pushed

GGA

  • Tag exists (V{VERSION})
  • SHA256 computed from tarball
  • Formula updated in homebrew-tap
  • Committed and pushed

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

82/100Analyzed yesterday

Highly actionable and well-structured release workflow skill for Homebrew-tap projects. Features comprehensive step-by-step instructions for two projects (Gentleman.Dots and GGA), complete bash commands, and checklists. Strong metadata with tags and version. Slight penalty for being tied to specific repos, but quality and density of content is excellent.

90
95
55
95
95

Metadata

Licenseunknown
Version-
Updatedlast week
PublisherGentleman-Programming

Tags

ci-cdgithubtesting