From 6ed98602efdb476026bc9ac859beb2d7b0a35de4 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 4 May 2026 10:10:01 +0100 Subject: [PATCH] docs: clarify Homebrew release verification --- README.md | 12 ++++++------ docs/RELEASE.md | 42 ++++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 7f4ace4..302918a 100644 --- a/README.md +++ b/README.md @@ -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 ` 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 [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 diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 59fb103..00bad43 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -67,35 +67,37 @@ Shipping a release means **all** of: 17. Tag the release (git tag v && 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 isn’t 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-.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/mcporter-.tgz` + - SHA256 from `mcporter-.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@ mcporter --version + npx --yes mcporter@ --version ``` -4. Finally, run a fresh `npx mcporter@` 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 doesn’t 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 ```