Skip to content

chore: migrate to Node 26 LTS - #2500

Merged
r0b1n merged 2 commits into
mainfrom
chore/node-26-lts
Oct 30, 2026
Merged

r0b1n merged 2 commits into
mainfrom
chore/node-26-lts

Conversation

@samuelreichert

@samuelreichert samuelreichert commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Pull request type

Dependency changes (any modification to dependencies in package.json)


Description

Migrate the repo to Node 26, the new Active LTS (26.13.0 "Lithium", released 2026-10-28).

  • .nvmrc: 24.12.0 → 26.13.0 (CI workflows read it via node-version-file)
  • package.json engines.node: >=24 → >=26
  • @types/node override: ~24.12.0 → ~26.6.0; ^24.0.0 → ^26.0.0 in automation/e2e-mcp and automation/marketplace-mcp
  • AGENTS.md: development setup note updated
  • patches/cross-zip@4.0.1.patch: Node 26 removed the recursive option of fs.rmdir, which cross-zip 4.0.1 (latest release) calls on Windows before zipping. This broke the charts-web mpk build in the Windows release task with ERR_INVALID_ARG_VALUE. The patch switches to fs.rm(..., { recursive: true, force: true }).
  • pnpm-lock.yaml: regenerated; only @types/node (24.12.4 → 26.6.6) and its undici-types dependency changed

Verified locally on Node 26.13.0: pnpm install (incl. canvas and @swc/core native builds), tsc for e2e-mcp, marketplace-mcp, and utils, plus build and unit tests for combobox-web (61 tests) and datagrid-web (263 tests).

🤖 Generated with Claude Code

@samuelreichert
samuelreichert requested a review from a team as a code owner October 29, 2026 11:57
@github-actions

This comment has been minimized.

r0b1n
r0b1n previously approved these changes Oct 30, 2026
gjulivan
gjulivan previously approved these changes Oct 30, 2026
iobuhov
iobuhov previously approved these changes Oct 30, 2026
leonardomendix
leonardomendix previously approved these changes Oct 30, 2026
Update .nvmrc, engines field, and @types/node overrides from Node 24 to 26.
CI workflows pick this up automatically via node-version-file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

This comment has been minimized.

Node 26 removed the `recursive` option of `fs.rmdir`. cross-zip 4.0.1
(latest release) still calls `fs.rmdir(outPath, { recursive: true })`
before zipping on Windows, so building the charts-web mpk failed with
ERR_INVALID_ARG_VALUE. Patch it to use `fs.rm` with `force: true`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

AI Code Review

✅ Approved — no issues found


What was reviewed

File Change
.nvmrc Node 24.12.0 → 26.13.0
package.json engines.node >=26, @types/node override ~26.6.0
AGENTS.md Setup note updated to Node >=26
automation/e2e-mcp/package.json, automation/marketplace-mcp/package.json @types/node ^26.0.0
patches/cross-zip@4.0.1.patch Replaces fs.rmdir/rmdirSync {recursive} with fs.rm/rmSync {recursive, force} (the recursive option of rmdir was removed in Node 26)
pnpm-lock.yaml Reviewed only as paired with the package.json changes

Skipped (out of scope): lockfile contents beyond the paired changes.

CI: pending: Plan E2E matrix, Run code quality check, sigridci, Snyk Code · unrelated failures: security/snyk (external scanner)


Questions

  • The cross-zip patch is registered in the lockfile and pnpm.patchedDependencies. Was it exercised on a Windows runner, for example the charts-web mpk build? The PR says only Linux/macOS-style local verification was done.

Positives

  • The cross-zip patch is minimal and addresses the Node 26 fs.rmdir removal. It uses force: true, which keeps the previous behavior when the path does not exist.
  • Node version changes are consistent across .nvmrc (which CI reads), engines, the @types/node overrides and the docs.
  • The PR description documents what was verified locally, including the native builds for canvas and @swc/core.

@r0b1n
r0b1n merged commit 0301b93 into main Oct 30, 2026
14 of 15 checks passed
@r0b1n
r0b1n deleted the chore/node-26-lts branch October 30, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants