This commit is contained in:
Raven Scott
2026-04-08 22:37:38 -04:00
parent 710859eaa4
commit 28323589a8
6 changed files with 54 additions and 26 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ Former **DOCUMENTATION.md** §§12.112.9 plus **§12.7a** (REPL completion).
- `imports`**`#host-fs`** / **`#host-path`** resolve to **`bare-fs`** / **`bare-path`** under Bare and Nodes built-in **`fs`** / **`path`** under the default condition (package **`imports`** cannot target **`node:`** URLs). First-party sources import **`#host-*`** only (CI forbids bare **`from 'fs'`** / **`from 'path'`**). **`url`** maps to **`bare-url`** / **`node:url`**. **`#bare-os-boot-manifest-sig`** selects Bare vs Node Ed25519 verify helper.
- `pear.stage.ignore` — Includes `test.js`, `test.identity.js`, `.test-data` so tests are not staged
**Pear + npm workspaces:** dependencies are hoisted to the repo root; Pears dev bundle often does not follow a single symlinked `node_modules` tree. **[scripts/ensure-pear-node-modules.mjs](../../scripts/ensure-pear-node-modules.mjs)** (run from the repo root) rebuilds `packages/bare-os-booter/node_modules` by symlinking **each top-level** package from the root `node_modules` (matching npms flat hoist). **`pear.stage.include`** lists **`node_modules`** so the staged Hyperdrive uses **`node_modules/<pkg>`** paths (Bare **`require('bare-node-net')`** and similar resolve correctly; **`../../node_modules`** alone did not). **`npm run os:booter`** runs the script before `pear run`. After `npm install` at the root, re-run the script if hoisted packages change.
**Pear + npm workspaces:** dependencies are hoisted to the repo root; Pears dev bundle often does not follow a single symlinked `node_modules` tree. **[scripts/ensure-pear-node-modules.mjs](../../scripts/ensure-pear-node-modules.mjs)** (run from the repo root) rebuilds `packages/bare-os-booter/node_modules` by symlinking **each top-level** package from the root `node_modules` (matching npms flat hoist). **`pear.stage.include`** lists **`node_modules`** so the staged Hyperdrive uses **`node_modules/<pkg>`** paths (Bare **`require('bare-node-net')`** and similar resolve correctly; **`../../node_modules`** alone did not). For **`bare-ssh2`**, **`bare-net`** (Bare TCP) and the **`bare-node-*`** shims it loads are direct **`dependencies`** of the booter so versions match the vendored **`bare-ssh2`** tree and Pear staging always sees them. **`npm run os:booter`** runs the script before `pear run`. After `npm install` at the root, re-run the script if hoisted packages change.
### 12.2 [packages/bare-os-booter/lib/paths.js](../../packages/bare-os-booter/lib/paths.js)