docs: clarify Homebrew release verification

This commit is contained in:
Peter Steinberger 2026-05-04 10:10:01 +01:00
parent 2100639cf3
commit 6ed98602ef
No known key found for this signature in database
2 changed files with 28 additions and 26 deletions

View File

@ -24,13 +24,13 @@ MCPorter helps you lean into the "code execution" workflows highlighted in Anthr
- **OAuth and stdio ergonomics.** Built-in OAuth caching, log tailing, and stdio wrappers let you work with HTTP, SSE, and stdio transports from the same interface.
- **Ad-hoc connections.** Point the CLI at _any_ MCP endpoint (HTTP or stdio) without touching config, then persist it later if you want. Hosted MCPs that expect a browser login (Supabase, Vercel, etc.) are auto-detected—just run `mcporter auth <url>` and the CLI promotes the definition to OAuth on the fly. See [docs/adhoc.md](docs/adhoc.md).
## What's New in 0.9.0
## What's New in 0.10.0
- **Per-server tool filtering.** Limit exposed tools with `allowedTools`, or block risky exact-name tools with `blockedTools`; filtered tools disappear from `mcporter list` and are rejected by `mcporter call`.
- **Sturdier stdio shutdown.** Stuck local MCP processes now escalate cleanly instead of hanging after a call finishes.
- **OAuth polish.** Windows OAuth URLs are quoted correctly, OAuth config examples are documented, and `mcporter auth --json` returns structured connection envelopes.
- **Safer call coercion.** Tool arguments declared as strings stay strings, even when the value looks numeric.
- **Release confidence.** `0.9.0` is published on npm and Homebrew, and the live DeepWiki MCP suite is green.
- **Resources.** `mcporter resource <server> [uri]` lists and reads MCP resources, including keep-alive daemon routing.
- **Generated CLI polish.** Keep-alive generated CLIs preserve stdio server state across invocations, and Bun-compiled macOS daemon children launch reliably in the background.
- **Config portability.** mcporter now honors XDG Base Directory env vars while preserving the legacy `~/.mcporter` fallback.
- **OAuth compatibility.** Static OAuth clients are supported via `oauthClientId`, `oauthClientSecretEnv`, and token endpoint auth method overrides.
- **Release confidence.** `0.10.0` is published on npm and Homebrew, and live/published install smokes are green.
## Quick Start

View File

@ -67,35 +67,37 @@ Shipping a release means **all** of:
17. Tag the release (git tag v<version> && git push --tags).
18. Post-tag housekeeping: add a fresh "Unreleased" stub to CHANGELOG.md (set to "- Nothing yet.") and start a new version section for the just-released patch if it isnt already recorded.
After the release is live, always update the Homebrew tap and re-verify both installers. That flow should be:
After the release is live, always update the Homebrew tap and re-verify both installers. The tap formula should install the npm `.tgz`, not the Bun-compiled macOS tarball, because `generate-cli --compile` needs the installed package tree so Bun can resolve `mcporter`, `commander`, and related dependencies when compiling from an empty directory. Keep the macOS tarball on the GitHub release as a direct binary asset, but point Homebrew at `mcporter-<version>.tgz`.
1. Uninstall any existing `mcporter` binaries to avoid PATH conflicts:
1. Update `steipete/homebrew-tap` -> `Formula/mcporter.rb` with:
- URL `https://github.com/steipete/mcporter/releases/download/v<version>/mcporter-<version>.tgz`
- SHA256 from `mcporter-<version>.tgz.sha256`
- `require "language/node"`, `depends_on "node"`, and `system "npm", "install", *std_npm_args, "--min-release-age=0"` so same-day releases with fresh npm dependencies can install immediately.
Refresh the tap README highlight so Homebrew users see the new version callout.
2. Commit and push the tap update.
3. Refresh and reinstall from the real tap:
```bash
brew uninstall mcporter || true
npm uninstall -g mcporter || true
brew update
brew reinstall steipete/tap/mcporter
brew test steipete/tap/mcporter
/opt/homebrew/bin/mcporter --version
```
2. Install from Homebrew, run `brew test` equivalents (`mcporter list --help`), then uninstall so the npm install owns the global `mcporter` binary. If the install fails with a linking conflict (`bin/mcporter already exists`), run `brew link --overwrite mcporter` and rerun the smoke command before uninstalling:
4. Run a Homebrew-installed empty-directory compile smoke:
```bash
brew install steipete/tap/mcporter
# If you still have /opt/homebrew/bin/mcporter from npm, fix conflicts with:
# brew link --overwrite mcporter
mcporter list --help | head -n 5
brew uninstall mcporter
rm -rf /tmp/mcporter-brew-smoke && mkdir -p /tmp/mcporter-brew-smoke
cd /tmp/mcporter-brew-smoke
/opt/homebrew/bin/mcporter generate-cli "npx -y chrome-devtools-mcp" --compile
./chrome-devtools-mcp --help | head -n 5
```
3. Install the npm package globally (or leave it to npx) and keep that version in place for day-to-day use:
5. Install the npm package globally (or leave it to npx) and verify that path too:
```bash
npm install -g mcporter@<version>
mcporter --version
npx --yes mcporter@<version> --version
```
4. Finally, run a fresh `npx mcporter@<version>` smoke test from an empty temp directory (no runner needed) to ensure the package is usable without global installs.
5. Update `steipete/homebrew-tap``Formula/mcporter.rb` with the new version, tarball URL, and SHA256. Refresh the tap README highlights and changelog snippets so Homebrew users see the new version callouts. (That repo doesnt include `runner`, so use regular git commands there.)
6. Commit and push the tap update.
7. Verify the Homebrew flow (after GitHub release assets propagate):
6. If installing on another Mac, repeat the real tap reinstall and compile smoke there:
```bash
brew update
brew install steipete/tap/mcporter
# If you previously installed mcporter via npm (or another tap) and see a link error,
# run `brew link --overwrite mcporter` to replace /opt/homebrew/bin/mcporter with the tap binary.
mcporter list --help
brew reinstall steipete/tap/mcporter
/opt/homebrew/bin/mcporter --version
```