Skip to content

fix: drop Node 18/20 support, require >=22 @W-23388103@#2829

Closed
WillieRuemmele wants to merge 1 commit into
mainfrom
wr/dropNode18And20Support
Closed

fix: drop Node 18/20 support, require >=22 @W-23388103@#2829
WillieRuemmele wants to merge 1 commit into
mainfrom
wr/dropNode18And20Support

Conversation

@WillieRuemmele

@WillieRuemmele WillieRuemmele commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bump engines.node from >=18.0.0 to >=22.0.0
  • Node 18 reached EOL September 2025, Node 20 reached EOL April 2026
  • Fresh installs already crash on Node 18/20 due to @jsforce/jsforce-node@3.10.17 pulling undici@^8.5.0 (requires Node >=22)
  • Drop win32-x86 (32-bit Windows) build by passing --targets win32-x64,win32-arm64 to pack:win. The standalone builds move to Node 24, which no longer ships 32-bit Windows binaries. Telemetry shows 32-bit Windows is ~0.01% of CLI usage (~350 machines), and ~84% of those were already on EOL Node and non-functional on current releases.

Fixes forcedotcom/cli#3596
Related forcedotcom/cli#3603

Work Item

@W-23388103@: [CLI] Use node v24, deprecate 18 and 20

Merge / sequencing note

The win32-x86 removal pairs with bundling Node 24 (deleting the NODE_VERSION_OVERRIDE repo variable, or setting it to 24.x). Node 24 has no win-x86 binary. Note: oclif already auto-skips win32-x86 when the bundled Node is >24.0.0, so the explicit --targets flag makes the intent clear and also drops x86 while still pinned to Node 22. After merge + var deletion, trigger a nightly and confirm only x64/arm64 Windows tarballs upload.

Test plan

  • CI passes on Node 22 and 24 (already the case — CI has not tested 18/20 since they went EOL)
  • npm install on Node <22 shows engines warning
  • Post-merge: nightly builds only win32-x64 and win32-arm64, no x86 pack failure

@WillieRuemmele
WillieRuemmele force-pushed the wr/dropNode18And20Support branch 2 times, most recently from 87d5be8 to 110595f Compare July 15, 2026 18:12
…388103@

- Bump engines.node to >=22.0.0 (drops EOL Node 18/20)
- Add --targets win32-x64,win32-arm64 to pack:win; Node 24 (bundled at build time) no longer ships 32-bit Windows binaries
@WillieRuemmele
WillieRuemmele force-pushed the wr/dropNode18And20Support branch from 110595f to 1229acc Compare July 15, 2026 18:34
@WillieRuemmele WillieRuemmele changed the title chore: drop Node 18/20 support, require >=22 @W-23388103@ fix: drop Node 18/20 support, require >=22 @W-23388103@ Jul 16, 2026
@WillieRuemmele

Copy link
Copy Markdown
Contributor Author

Closing — changing our approach to dropping Node 18/20 support (W-23388103). This declarative engines-only bump is being superseded; a new strategy will follow. Not merging this PR.

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.

@salesforce/core declares Node >=18 but resolves @jsforce/jsforce-node >=3.10.17 which requires Node >=22 — runtime crash on Node 18/20

1 participant