From c6a1174e67ca2f42f3f445290c945c2a0f54b769 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Wed, 29 Jul 2026 03:19:21 +0000 Subject: [PATCH] Pin the macOS desktop legs on the same pre-7547 release lag The Linux rows already pin the shipped bundle's own install.sh exiting 2 at the NEED_SUDO handshake. macos-15 and macos-26 fail the same way for the same reason: desktop-v0.1.50-beta predates #7547, so the bundled installer still hard-exits on the Xcode CLT gate that #7547 turned into a warning. Accept exit 1 plus that exact gate line, and nothing else. _check_macos_deps is the function #7547 added, so its presence in the bundle means the release caught up and the block errors out asking for the pin to be deleted. --- .../desktop-app-clean-machine-ci.yml | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/workflows/desktop-app-clean-machine-ci.yml b/.github/workflows/desktop-app-clean-machine-ci.yml index 2f45576483..ee332dfa72 100644 --- a/.github/workflows/desktop-app-clean-machine-ci.yml +++ b/.github/workflows/desktop-app-clean-machine-ci.yml @@ -185,9 +185,30 @@ jobs: # passes without ever running the bundled installer. Invoke it as # src-tauri/src/install.rs does: --tauri, stdin closed, no tty. --tauri # rejects a custom studio home (install.sh:102-114), so drop the override. + # KNOWN OUTCOME PIN, retire when the desktop release catches up to #7547. + # REL_TAG predates #7547, so the bundle's own install.sh still hard-exits on + # the Xcode CLT gate that #7547 replaced with a warning. No change to this PR + # can move that; only a new release can. _check_macos_deps is the function + # #7547 added, so finding it means the release caught up and this pin must go. + SH="$APP/Contents/Resources/install.sh" + if grep -q '_check_macos_deps' "$SH"; then + echo "::error::the bundled install.sh now carries #7547; delete this pin block and let the venv + torch assertions below run unconditionally" + exit 1 + fi + rc=0 env -u UNSLOTH_STUDIO_HOME \ - bash "$APP/Contents/Resources/install.sh" --tauri \ - < /dev/null 2>&1 | tee logs/bundled-install.log + bash "$SH" --tauri \ + < /dev/null 2>&1 | tee logs/bundled-install.log || rc=$? + echo "bundled installer exit code: $rc" + # Exit code AND the exact gate line, so any other non-zero exit still fails. + if [ "$rc" -eq 1 ] && grep -qE '^==> Xcode Command Line Tools are required\.[[:space:]]*$' logs/bundled-install.log; then + echo "::notice::known pre-#7547 outcome: the shipped bundle's install.sh stopped on the Xcode CLT gate and exited 1. Not a regression here; the next desktop release retires this pin." + exit 0 + fi + [ "$rc" -eq 0 ] || { + echo "::error::bundled installer exited $rc, which is neither success nor the pinned pre-#7547 outcome (exit 1 plus '==> Xcode Command Line Tools are required.')" + exit 1 + } PY="$HOME/.unsloth/studio/unsloth_studio/bin/python" [ -x "$PY" ] || { echo "::error::bundled installer left no venv at $PY"; exit 1; } "$PY" -V