mcpField
H
homebrew-formula-maintenance

homebrew-formula-maintenance

github.com/bobmatnycDevelopment78361 installsUpdated 15w ago
Repository

About homebrew-formula-maintenance

A workflow skill for maintaining Homebrew formulas for Python CLIs published on PyPI. It covers version and checksum updates, dependency resources, local testing and auditing, and optional CI-driven tap updates.

Key features

  1. 01Verify PyPI releases and source checksums
  2. 02Update formula URLs and SHA256 values
  3. 03Regenerate Python dependency resources
  4. 04Run brew install, test, audit, and style
  5. 05Automate tap updates through CI

Use cases

  1. 01Update a formula after a PyPI release
  2. 02Refresh dependency resources after changes
  3. 03Validate a formula before pushing tap updates

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/bobmatnyc/claude-mpm-skills --skill homebrew-formula-maintenance

After installing, type/homebrew-formula-maintenancein Claude Code to confirm it loaded.

Bundled filesmetadata.json

Details

From the project README

Homebrew Formula Maintenance

Overview

Use this workflow to keep Homebrew formulas in sync with PyPI releases for Python CLIs. The pattern in your taps is: update version + sha, refresh resource blocks when needed, run brew install/test/audit, then push the tap update (manually or via CI).

Quick Start (manual bump)

  1. Verify the PyPI release exists and grab the sdist URL + SHA256.
  2. Update the url and sha256 in the formula.
  3. Refresh resource stanzas if the formula uses virtualenv_install_with_resources.
  4. Test: brew install --build-from-source + brew test + brew audit --strict.
  5. Update changelog/tag and push the tap repo.

Local Scripts You Already Use

  • homebrew-claude-mpm/scripts/update_formula.sh <version>
    • Verifies PyPI, updates url/sha, regenerates resources, optional brew test/audit.
  • homebrew-claude-mpm/scripts/generate_resources.py
    • Emits Python dependency resource blocks from PyPI.
  • homebrew-claude-mpm/scripts/test_formula.sh
    • End-to-end brew install/test/audit/style.
  • mcp-vector-search/scripts/update_homebrew_formula.py
    • End-to-end tap update with --dry-run, --version, --tap-repo-path and HOMEBREW_TAP_TOKEN.

Standard Workflow

1. Confirm PyPI Release
  • Check the sdist is available and capture URL/SHA.
  • Typical command: curl -s https://pypi.org/pypi/<package>/<version>/json.
2. Update Formula URL + SHA
  • Replace url and sha256 in Formula/<name>.rb.
  • Keep the formula version implicit via the sdist URL (your taps do this).
3. Refresh Resources (Python Virtualenv Formula)

If the formula uses Language::Python::Virtualenv and virtualenv_install_with_resources:

  • Regenerate resource stanzas after dependency changes.
  • Use generate_resources.py or equivalent; review output before pasting.
4. Test and Audit

Run these in the tap repo:

brew install --build-from-source ./Formula/<name>.rb
brew test <name>
brew audit --strict ./Formula/<name>.rb
brew style ./Formula/<name>.rb
5. Commit and Push
  • Update CHANGELOG.md if the tap repo tracks releases.
  • Commit, tag, and push as required by the tap workflow.

Formula Patterns (From Your Taps)

Full Virtualenv Formula (claude-mpm)
  • include Language::Python::Virtualenv
  • virtualenv_install_with_resources
  • Large resource blocks to pin dependencies
  • test do uses CLI commands like --version and subcommands
Minimal Venv Formula (mcp-vector-search)
  • Create venv explicitly and pip install -v buildpath
  • bin.install_symlink for CLI entrypoint
  • Minimal test do uses --version and --help

CI Automation Pattern

Your GitHub Actions workflow for Homebrew updates follows this flow:

  • Trigger on tag or workflow_run after CI succeeds.
  • Run scripts/update_homebrew_formula.py.
  • Require HOMEBREW_TAP_TOKEN (and optional HOMEBREW_TAP_REPO).
  • On failure, open an issue with manual update steps.

Troubleshooting

  • PyPI release missing: verify tag push and publish step completed.
  • SHA mismatch: re-fetch sdist SHA from PyPI JSON.
  • brew audit failures: confirm dependency resource blocks match the sdist and [email protected] dependency is present.
  • Install failures: verify [email protected] dependency and virtualenv_install_with_resources usage.

Related Skills

  • toolchains/universal/infrastructure/github-actions
  • toolchains/universal/infrastructure/docker

Comments

Markdown supported