History

bootstrap: vendor submodules opt-in via --forks

Nothing imports from vendor/ at runtime — the forks are consumed as published npm packages (vendor/README.md is explicit). Forcing the submodule init in bootstrap taught every fresh worktree a false dependency. --forks remains for deliberately developing a fork.

Rhys Sullivan committed 5 months ago

Commit ad84e391 parent 3f3ed8f2 files · +18 −9Browse files

Showing the changes to scripts (1 of 2 files). Show all

Unified · Split

scripts/bootstrap.ts+12−5
@@ -1,7 +1,12 @@
1−// One-command setup for a fresh checkout or agent worktree: submodules,
2−// dependencies (whose prepare hook builds the internal packages dev servers
3−// need), and the Playwright browser the e2e suite drives. Idempotent and
4−// safe to re-run; each step prints what it is doing.
1+// One-command setup for a fresh checkout or agent worktree: dependencies
2+// (whose prepare hook builds the internal packages dev servers need) and the
3+// Playwright browser the e2e suite drives. Idempotent and safe to re-run;
4+// each step prints what it is doing.
5+//
6+// The vendor/ submodules are intentionally NOT initialized: nothing imports
7+// from vendor/ at runtime — those forks are consumed as published npm
8+// packages (see vendor/README.md). Pass --forks only when deliberately
9+// developing a fork.
510 import { execFileSync } from "node:child_process";
611 import { existsSync } from "node:fs";
712 import { resolve } from "node:path";
@@ -14,7 +19,9 @@ const run = (label: string, cmd: string, args: ReadonlyArray<string>) => { · 6 unmodified lines
1419 execFileSync(cmd, [...args], { cwd: repoRoot, stdio: "inherit" });
1520 };
1621
17−run("vendor submodules", "git", ["submodule", "update", "--init", "--recursive"]);
22+if (process.argv.includes("--forks")) {
23+ run("vendor fork submodules", "git", ["submodule", "update", "--init", "--recursive"]);
24+}
1825
1926 // `bun install` runs the workspace prepare hook, which builds
2027 // @executor-js/vite-plugin and @executor-js/react — the two artifacts the