From 668caca07b4371d780e5d43f3a968261716dcbfb Mon Sep 17 00:00:00 2001 From: Vadim Korolik Date: Tue, 21 Apr 2026 15:13:32 -0500 Subject: [PATCH] Remove nested turbo from package build scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each package's "build" script invoked `yarn turbo run prepublish`, which re-enters turbo from inside a workspace already being built by the outer turbo run. The nested invocation discovers a different repo-root hash than the outer one, so it spawns its own turbo daemon with its own inotify watches and Unix socket. When many rrweb packages build in parallel, several nested turbos race to create the same daemon and the losers deadlock in futex_wait on Linux (macOS is more forgiving about socket/pidfile races and rarely hits this). Inline each "build" with its own "prepublish" command (`tsc -noEmit && vite build`, etc.) — matching the pattern already used by `packages/utils`. The outer turbo's graph already handles dep ordering via ^build, so the nested layer was redundant. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/all/package.json | 2 +- packages/packer/package.json | 2 +- packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json | 2 +- packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json | 2 +- packages/plugins/rrweb-plugin-console-record/package.json | 2 +- packages/plugins/rrweb-plugin-console-replay/package.json | 2 +- packages/plugins/rrweb-plugin-sequential-id-record/package.json | 2 +- packages/plugins/rrweb-plugin-sequential-id-replay/package.json | 2 +- packages/record/package.json | 2 +- packages/replay/package.json | 2 +- packages/rrdom-nodejs/package.json | 2 +- packages/rrdom/package.json | 2 +- packages/rrweb-snapshot/package.json | 2 +- packages/rrweb/package.json | 2 +- packages/types/package.json | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/all/package.json b/packages/all/package.json index 2015619..a7f638b 100644 --- a/packages/all/package.json +++ b/packages/all/package.json @@ -10,7 +10,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "test": "vitest run", "test:watch": "vitest watch", "check-types": "tsc -noEmit", diff --git a/packages/packer/package.json b/packages/packer/package.json index 1fa06d8..5f64f47 100644 --- a/packages/packer/package.json +++ b/packages/packer/package.json @@ -10,7 +10,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "test": "vitest run", "test:watch": "vitest watch", "check-types": "tsc -noEmit", diff --git a/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json b/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json index fd3849e..cd238de 100644 --- a/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json +++ b/packages/plugins/rrweb-plugin-canvas-webrtc-record/package.json @@ -25,7 +25,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json b/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json index 8496a40..1bf6047 100644 --- a/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json +++ b/packages/plugins/rrweb-plugin-canvas-webrtc-replay/package.json @@ -25,7 +25,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/plugins/rrweb-plugin-console-record/package.json b/packages/plugins/rrweb-plugin-console-record/package.json index f1db59c..e4c129a 100644 --- a/packages/plugins/rrweb-plugin-console-record/package.json +++ b/packages/plugins/rrweb-plugin-console-record/package.json @@ -27,7 +27,7 @@ "dev": "vite build --watch", "test": "vitest run", "test:watch": "vitest watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/plugins/rrweb-plugin-console-replay/package.json b/packages/plugins/rrweb-plugin-console-replay/package.json index 01bc9ee..fd5ee42 100644 --- a/packages/plugins/rrweb-plugin-console-replay/package.json +++ b/packages/plugins/rrweb-plugin-console-replay/package.json @@ -25,7 +25,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/plugins/rrweb-plugin-sequential-id-record/package.json b/packages/plugins/rrweb-plugin-sequential-id-record/package.json index 07728c8..2ab286e 100644 --- a/packages/plugins/rrweb-plugin-sequential-id-record/package.json +++ b/packages/plugins/rrweb-plugin-sequential-id-record/package.json @@ -25,7 +25,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/plugins/rrweb-plugin-sequential-id-replay/package.json b/packages/plugins/rrweb-plugin-sequential-id-replay/package.json index 532f1d7..3d4e27c 100644 --- a/packages/plugins/rrweb-plugin-sequential-id-replay/package.json +++ b/packages/plugins/rrweb-plugin-sequential-id-replay/package.json @@ -25,7 +25,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build" }, diff --git a/packages/record/package.json b/packages/record/package.json index 82c9338..8c16e11 100644 --- a/packages/record/package.json +++ b/packages/record/package.json @@ -10,7 +10,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "test": "vitest run", "test:watch": "vitest watch", "check-types": "tsc -noEmit", diff --git a/packages/replay/package.json b/packages/replay/package.json index c03116c..f0d9a26 100644 --- a/packages/replay/package.json +++ b/packages/replay/package.json @@ -10,7 +10,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "test": "vitest run", "test:watch": "vitest watch", "check-types": "tsc -noEmit", diff --git a/packages/rrdom-nodejs/package.json b/packages/rrdom-nodejs/package.json index 332e49b..c0fa9d5 100644 --- a/packages/rrdom-nodejs/package.json +++ b/packages/rrdom-nodejs/package.json @@ -3,7 +3,7 @@ "version": "2.0.0-alpha.18", "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "test": "vitest run", "test:watch": "vitest watch", diff --git a/packages/rrdom/package.json b/packages/rrdom/package.json index 510da0a..5033daa 100644 --- a/packages/rrdom/package.json +++ b/packages/rrdom/package.json @@ -30,7 +30,7 @@ }, "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "test": "vitest run", "test:watch": "vitest", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index a31ccc3..632fc1b 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -12,7 +12,7 @@ "test:update": "yarn build && vitest run --update", "bench": "vite build && vitest bench", "dev": "vite build --watch", - "build": "yarn turbo prepublish -F @highlight-run/rrweb-snapshot", + "build": "yarn check-types && vite build", "check-types": "tsc --noEmit", "prepublish": "yarn check-types && vite build", "lint": "yarn eslint src" diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 24cfda1..08a795e 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -17,7 +17,7 @@ "repl": "yarn build && node scripts/repl.js", "live-stream": "yarn build && node scripts/stream.js", "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", "prepublish": "tsc -noEmit && vite build", "lint": "yarn eslint src", diff --git a/packages/types/package.json b/packages/types/package.json index 2ce3d2e..b304904 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -10,7 +10,7 @@ ], "scripts": { "dev": "vite build --watch", - "build": "yarn turbo run prepublish", + "build": "vite build", "check-types": "tsc -noEmit", "prepublish": "vite build", "lint": "yarn eslint src/**/*.ts"