3b0238bb28
背景:安裝器(arcrun-rag)過去自己對 Arcrun 原始碼跑 esbuild,導致同一份原始碼在 不同機器編出不同位元組(見 arcrun-rag changelog 1.4.33 段、arcrun-rag#72): ① esbuild 把入口路徑寫進產物內部註解,該路徑預設相依於執行時 cwd ② 各 worker 目錄用不同套件管理器裝 node_modules,夾帶不同版本間接依賴 本腳本解法: - absWorkingDir 固定為「本腳本自己算出的 repo 根目錄」,entry 一律用相對路徑餵給 esbuild——不管 clone 放在磁碟哪個絕對路徑,esbuild 內部產生的相對路徑字串相同 - 不自己跑 install,強制要求呼叫者先用該目錄既有 lockfile 裝好依賴(pnpm frozen / npm ci),避免「install 方式不同 → 依賴版本不同 → 位元組不同」 - 每顆 worker 的 manifest entry 自帶 source_commit(該目錄最後改動的 commit), 答到單顆層級,不是整包一個 source 欄位 涵蓋 5 顆 tier2 worker(與 arcrun-rag bundle-components.mjs CORE_COMPONENTS 對齊): cypher-executor / kbdb / http_request / code / mcp。 scripts/ 自帶 package.json + pnpm-lock.yaml 鎖 esbuild 版本(0.24.0)—— 工具版本本身也是重現性的輸入之一。 驗證:本地跑通 5/5 build;byte-identical 重現性驗證見後續 commit(兩個獨立 clone 比對 sha256)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
10 lines
358 B
JSON
10 lines
358 B
JSON
{
|
|
"name": "arcrun-build-tools",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Arcrun#80: tier2 worker 編譯工具的獨立依賴——esbuild 版本鎖在這份 lockfile,任何人在任何機器編譯都用同一版 esbuild(重現性的一部分:工具版本也是輸入之一)。",
|
|
"devDependencies": {
|
|
"esbuild": "0.24.0"
|
|
}
|
|
}
|