build: Move the monorepo and Docker deploys to pnpm 12 (no-changelog) - #37899
Conversation
|
Running ultrareview automatically — This cross-cutting migration moves the monorepo, CI workflows, and Docker builds to pnpm 12 across 45 files, including build tooling, lockfiles, and deployment infrastructure—a subtle bug could break all builds, releases, and image deploys.. I'll post findings when complete. |
Bundle ReportChanges will decrease total bundle size by 5.66kB (-0.01%) ⬇️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: editor-ui-esmAssets Changed:
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would not auto-approve. Auto-approval blocked by 8 unresolved issues from previous reviews.
Re-trigger cubic
Summary
Moves the monorepo, CI setup, production closure deploys, and runner image builds from pnpm 11.25.0 to pnpm 12.3.4. This PR is stacked on #37890.
pnpm 12 uses a Rust implementation and retains the pnpm 11 lockfile and content-store formats. The migration adds the package-manager environment document to both lockfiles and updates internal readers to select the project document.
The migration also addresses the compatibility differences found while running the existing build paths:
.github/scriptsinstalls.@n8n/mcp-appswith the default TypeScript 6 catalog so the n8n deploy has one Vue peer binding.pnpm add --prodwith--save-prod.The standard runners image grows from about 844 MB to 871 MB because pnpm 12 ships a 35.5 MB native executable. The n8n image remains about 1.87 GB. The distroless runners image remains about 798 MB.
How to test
pnpm install --frozen-lockfile.pnpm install-workflow-scripts --frozen-lockfile.pnpm typecheck.pnpm build:n8n.pnpm --filter @n8n/engine build:docker.n8n,runners, andrunners-distrolessbake targets.DOCKER_BUILD_DISTROLESS=true pnpm build:docker:smoke.Local verification completed:
pnpm build:n8npassed.actionlintandgit diff --checkpassed.The full lint run completed 132 of 133 tasks. The unchanged
packages/cliESLint process did not produce diagnostics and exceeded the local timeout. All directly changed packages passed lint.Related Linear tickets, Github issues, and Community forum posts
https://linear.app/n8n/issue/DEVP-1062
Stacked on #37890.
Review / Merge checklist
Backport to Beta,Backport to Stable, orBackport to v1(if the PR is an urgent fix that needs to be backported)🤖 PR Summary generated by AI