From 75bb608d41dbe1b7f6033f1b57abe99abdc0e04c Mon Sep 17 00:00:00 2001 From: Satya Patel <14907857+saddlepaddle@users.noreply.github.com> Date: Sun, 18 Oct 2026 01:19:18 +0000 Subject: [PATCH] fix(install): warn when dependencies come from a bun other than .bun-version A cloud box keeps the bun its image was built with: bun is installed in the image only, and nightly bundle updates do not replace it. A box from an image built before 2026-10-03 still runs bun 1.3.14. That bun names the node_modules/.bun store entries of @expo/dom-webview, @expo/log-box and expo-symbols differently (+74e171d88a660d73 instead of +6dc057f194158d3d), and the mobile runtime version is a fingerprint of those paths. So eas-dev.sh found no build with that fingerprint, started a new one, and the build failed at "Configure expo-updates". The install now says so, and says how to recover. --- scripts/postinstall.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh index 30a2bb91196..7ca6afa696b 100755 --- a/scripts/postinstall.sh +++ b/scripts/postinstall.sh @@ -9,6 +9,15 @@ fi export SUPERSET_POSTINSTALL_RUNNING=1 +# Each bun version names the node_modules/.bun store entries differently, and the +# mobile runtime version is a fingerprint of those paths. EAS installs with the +# pinned bun, so an install on another version gets a runtime no build has. +pinned_bun="$(cat "$(dirname "$0")/../.bun-version")" +if [ "$(bun --version)" != "$pinned_bun" ]; then + echo "postinstall: bun $(bun --version) installed these dependencies, but .bun-version pins $pinned_bun." >&2 + echo "postinstall: apps/mobile will compute a different runtime version than EAS. Install bun $pinned_bun, then: rm -rf node_modules && bun install" >&2 +fi + # Run sherif for workspace validation sherif