Skip to content

Bind bundled tools to selected and patched runtimes - #507

Merged
rahultee merged 3 commits into
mainfrom
fix-pnpm-node-runtime
Oct 25, 2026
Merged

rahultee merged 3 commits into
mainfrom
fix-pnpm-node-runtime

Conversation

@rahultee

@rahultee rahultee commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Why

Node package aliases bypassed module-specific interpreter overrides. Some auxiliary tools still used Node.js 24.12.0, and Python-base Poetry could create an environment with Python 3.13 instead of the selected minor.

What changed

  • Bind pnpm, Yarn, Prettier, TypeScript, and the TypeScript language server to the selected Node.js runtime in Node.js, Angular, and Vue modules. Bind Angular's language server too.
  • Use the existing patched Node.js 24.22.1 and slim package as the current package set's defaults, including auxiliary tools and build helpers. Preserve explicit Node.js 20/22 and historical package sets.
  • Keep SvelteKit on Node.js 24, rename its implementation to svelte-kit-node-24, and retain svelte-kit-node-20 as a compatibility alias.
  • Build Python-base Poetry with the selected Python minor.
  • Keep tool versions and input pins unchanged. No test files or CI wiring changes.

Test plan

  • Compared all 105 existing module IDs in development and deployment metadata. All remain available; the SvelteKit alias resolves to the new implementation.
  • Evaluated the full bundle's 14,636-derivation graph: no Node.js 24.12.0 derivations remain.
  • Built 13 Node-related modules. Temporary probes asserted process.version and resolved process.execPath for 57 tool processes, including language-server launchers and CLI helpers. Offline engine-strict pnpm/Yarn installs passed for all six Node.js/Angular/Vue configurations.
  • Passed 42 npm/npx/pnpm/Yarn commands across six configurations, including install lifecycle hooks, child Node processes, TypeScript compilation, and running the generated JavaScript (120 process assertions).
  • Passed 15 language-server initialize/shutdown scenarios across selected Node.js 20/22/24 and auxiliary tools. Development/deployment runtime and package-manager paths match.
  • Inspected the built modules' runtime closures: no Node.js 24.12.0 paths; patched Brotli is present.
  • Exact Python 3.12/3.13 Poetry packages built and installed/imported a local wheel using the expected target minor and base interpreter. A Python 3.11 cached-source diagnostic also passed; it reused matching-version pure-Python sources and the RapidFuzz pure-Python backend, not the exact Nix artifact.
  • The exact Python 3.11 Poetry build remains blocked by CherryPy dependency tests: 22 failed and 243 passed, with forked tests returning no test report. No dependency tests were disabled; this build/runtime path remains unverified.
  • scripts/ci_check.sh: passed.

Rollout

Build and publish a new module bundle through the normal release process. Existing bundles are unchanged. SvelteKit keeps its existing Node.js major; Python-base Poetry creates environments with the selected Python minor. Legacy custom Poetry bundles are unchanged. Safe to revert; no data migration.

  • This is fully backward and forward compatible

~ written by ⠕ Replit

@rahultee rahultee changed the title Bind pnpm to the selected Node.js runtime Bind bundled tools to selected and patched runtimes Oct 25, 2026
@rahultee
rahultee marked this pull request as ready for review October 25, 2026 21:00
@rahultee
rahultee requested a review from a team as a code owner October 25, 2026 21:00
@rahultee
rahultee requested review from vlinkz and removed request for a team October 25, 2026 21:00
@rahultee
rahultee merged commit 58104e8 into main Oct 25, 2026
8 of 9 checks passed
@rahultee
rahultee deleted the fix-pnpm-node-runtime branch October 25, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants