From b4d1bce58b5c2d5946376e18ee16636f20a1857e Mon Sep 17 00:00:00 2001 From: PMX <91198542+xin1104@users.noreply.github.com> Date: Tue, 26 May 2026 23:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=EF=BB=BFfix:=20Homebrew=20formula=20downloads?= =?UTF-8?q?=20legacy=20shim=20instead=20of=20codewhale=20dispatcher=20(#21?= =?UTF-8?q?05)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The formula downloaded deepseek-macos-arm64 (the deprecation shim) as the main binary. After the rebranding, deepseek is just a wrapper that spawns codewhale, but codewhale was never installed — causing "codewhale not found on PATH" for every Homebrew user. Now the formula downloads codewhale-* as the primary binary and installs all four artifacts: codewhale, codewhale-tui, deepseek (legacy shim), and deepseek-tui (legacy TUI shim). Closes #2104 Co-authored-by: Claude Opus 4.7 --- .github/scripts/update-homebrew-tap.sh | 90 +++++++++++++++++++------- 1 file changed, 67 insertions(+), 23 deletions(-) diff --git a/.github/scripts/update-homebrew-tap.sh b/.github/scripts/update-homebrew-tap.sh index d0e28018..5d8f970e 100644 --- a/.github/scripts/update-homebrew-tap.sh +++ b/.github/scripts/update-homebrew-tap.sh @@ -34,14 +34,24 @@ sha() { # --- read checksums --------------------------------------------------- -readonly SHA_DISP_MACOS_ARM="$(sha deepseek-macos-arm64)" -readonly SHA_TUI_MACOS_ARM="$(sha deepseek-tui-macos-arm64)" -readonly SHA_DISP_MACOS_X64="$(sha deepseek-macos-x64)" -readonly SHA_TUI_MACOS_X64="$(sha deepseek-tui-macos-x64)" -readonly SHA_DISP_LINUX_ARM="$(sha deepseek-linux-arm64)" -readonly SHA_TUI_LINUX_ARM="$(sha deepseek-tui-linux-arm64)" -readonly SHA_DISP_LINUX_X64="$(sha deepseek-linux-x64)" -readonly SHA_TUI_LINUX_X64="$(sha deepseek-tui-linux-x64)" +# Canonical dispatcher and TUI +readonly SHA_COD_MACOS_ARM="$(sha codewhale-macos-arm64)" +readonly SHA_TUI_MACOS_ARM="$(sha codewhale-tui-macos-arm64)" +readonly SHA_COD_MACOS_X64="$(sha codewhale-macos-x64)" +readonly SHA_TUI_MACOS_X64="$(sha codewhale-tui-macos-x64)" +readonly SHA_COD_LINUX_ARM="$(sha codewhale-linux-arm64)" +readonly SHA_TUI_LINUX_ARM="$(sha codewhale-tui-linux-arm64)" +readonly SHA_COD_LINUX_X64="$(sha codewhale-linux-x64)" +readonly SHA_TUI_LINUX_X64="$(sha codewhale-tui-linux-x64)" +# Legacy shims (removed in v0.9.0) +readonly SHA_LEG_MACOS_ARM="$(sha deepseek-macos-arm64)" +readonly SHA_LEG_TUI_MACOS_ARM="$(sha deepseek-tui-macos-arm64)" +readonly SHA_LEG_MACOS_X64="$(sha deepseek-macos-x64)" +readonly SHA_LEG_TUI_MACOS_X64="$(sha deepseek-tui-macos-x64)" +readonly SHA_LEG_LINUX_ARM="$(sha deepseek-linux-arm64)" +readonly SHA_LEG_TUI_LINUX_ARM="$(sha deepseek-tui-linux-arm64)" +readonly SHA_LEG_LINUX_X64="$(sha deepseek-linux-x64)" +readonly SHA_LEG_TUI_LINUX_X64="$(sha deepseek-tui-linux-x64)" # --- temp dirs -------------------------------------------------------- @@ -62,47 +72,81 @@ class DeepseekTui < Formula on_macos do if Hardware::CPU.arm? - url "${BASE_URL}/deepseek-macos-arm64", using: :nounzip - sha256 "${SHA_DISP_MACOS_ARM}" + url "${BASE_URL}/codewhale-macos-arm64", using: :nounzip + sha256 "${SHA_COD_MACOS_ARM}" resource "tui" do - url "${BASE_URL}/deepseek-tui-macos-arm64", using: :nounzip + url "${BASE_URL}/codewhale-tui-macos-arm64", using: :nounzip sha256 "${SHA_TUI_MACOS_ARM}" end + resource "legacy-shim" do + url "${BASE_URL}/deepseek-macos-arm64", using: :nounzip + sha256 "${SHA_LEG_MACOS_ARM}" + end + resource "legacy-tui-shim" do + url "${BASE_URL}/deepseek-tui-macos-arm64", using: :nounzip + sha256 "${SHA_LEG_TUI_MACOS_ARM}" + end else - url "${BASE_URL}/deepseek-macos-x64", using: :nounzip - sha256 "${SHA_DISP_MACOS_X64}" + url "${BASE_URL}/codewhale-macos-x64", using: :nounzip + sha256 "${SHA_COD_MACOS_X64}" resource "tui" do - url "${BASE_URL}/deepseek-tui-macos-x64", using: :nounzip + url "${BASE_URL}/codewhale-tui-macos-x64", using: :nounzip sha256 "${SHA_TUI_MACOS_X64}" end + resource "legacy-shim" do + url "${BASE_URL}/deepseek-macos-x64", using: :nounzip + sha256 "${SHA_LEG_MACOS_X64}" + end + resource "legacy-tui-shim" do + url "${BASE_URL}/deepseek-tui-macos-x64", using: :nounzip + sha256 "${SHA_LEG_TUI_MACOS_X64}" + end end end on_linux do if Hardware::CPU.arm? - url "${BASE_URL}/deepseek-linux-arm64", using: :nounzip - sha256 "${SHA_DISP_LINUX_ARM}" + url "${BASE_URL}/codewhale-linux-arm64", using: :nounzip + sha256 "${SHA_COD_LINUX_ARM}" resource "tui" do - url "${BASE_URL}/deepseek-tui-linux-arm64", using: :nounzip + url "${BASE_URL}/codewhale-tui-linux-arm64", using: :nounzip sha256 "${SHA_TUI_LINUX_ARM}" end + resource "legacy-shim" do + url "${BASE_URL}/deepseek-linux-arm64", using: :nounzip + sha256 "${SHA_LEG_LINUX_ARM}" + end + resource "legacy-tui-shim" do + url "${BASE_URL}/deepseek-tui-linux-arm64", using: :nounzip + sha256 "${SHA_LEG_TUI_LINUX_ARM}" + end else - url "${BASE_URL}/deepseek-linux-x64", using: :nounzip - sha256 "${SHA_DISP_LINUX_X64}" + url "${BASE_URL}/codewhale-linux-x64", using: :nounzip + sha256 "${SHA_COD_LINUX_X64}" resource "tui" do - url "${BASE_URL}/deepseek-tui-linux-x64", using: :nounzip + url "${BASE_URL}/codewhale-tui-linux-x64", using: :nounzip sha256 "${SHA_TUI_LINUX_X64}" end + resource "legacy-shim" do + url "${BASE_URL}/deepseek-linux-x64", using: :nounzip + sha256 "${SHA_LEG_LINUX_X64}" + end + resource "legacy-tui-shim" do + url "${BASE_URL}/deepseek-tui-linux-x64", using: :nounzip + sha256 "${SHA_LEG_TUI_LINUX_X64}" + end end end def install - bin.install Dir["*"].first => "deepseek" - resource("tui").stage { bin.install Dir["*"].first => "deepseek-tui" } + bin.install Dir["*"].first => "codewhale" + resource("tui").stage { bin.install Dir["*"].first => "codewhale-tui" } + resource("legacy-shim").stage { bin.install Dir["*"].first => "deepseek" } + resource("legacy-tui-shim").stage { bin.install Dir["*"].first => "deepseek-tui" } end test do - system "#{bin}/deepseek", "--version" + system "#{bin}/codewhale", "--version" end end EOF