Skip to content

fix: allow Node newer than 20 - #614

Merged
LautaroPetaccio merged 1 commit into
masterfrom
fix/allow-node-above-20
Aug 20, 2026
Merged

LautaroPetaccio merged 1 commit into
masterfrom
fix/allow-node-above-20

Conversation

@LautaroPetaccio

Copy link
Copy Markdown
Contributor

The problem

engines.node is pinned to the single major "20":

"engines": { "node": "20" }

That is not a floor — it rejects every newer runtime. Any consumer on Node 22 or 24 fails an --engine-strict install:

npm error notsup Not compatible with your version of node/npm: decentraland-ui@7.1.0
npm error notsup Required: {"node":"20"}
npm error notsup Actual:   {"node":"v24.11.1"}

This repository's own CI builds and tests on Node 24 (.github/workflows/pr.yml, master.yml), so the declared engine contradicts what is actually verified. Nothing in the package requires exactly Node 20.

The change

-    "node": "20"
+    "node": ">=20"

Same floor, no longer rejecting runtimes the package already supports.

Why it matters downstream

decentraland-dapps peers decentraland-ui@^7.1.0, and @dcl/crypto-middleware has required node >= 22 since v5. While this pin stands, no Node version satisfies both — 20 fails crypto-middleware, 22+ fails this package — so consumers of both cannot run --engine-strict at all, on any runtime.

It surfaced in decentraland/decentraland-gatsby#1329, which raises its floor to Node 22 to match @dcl/crypto-middleware@6. Every stable decentraland-ui release (7.0.0 through 7.2.0) carries the same pin, so there is no version to upgrade into and the fix has to happen here.

Scope

One line, engines only. No source, dependency or build changes, and it loosens rather than tightens the constraint — no existing consumer on Node 20 is affected.

🤖 Generated with Claude Code

engines.node was pinned to the single major "20", so any consumer on a
newer runtime fails an --engine-strict install even though nothing here
requires that exact version. This repository's own CI builds and tests on
Node 24, so the pin contradicts what is actually verified.

Relaxed to ">=20", which keeps the existing floor and stops the package
rejecting runtimes it already supports.

This unblocks consumers moving to Node 22: decentraland-dapps peers
decentraland-ui ^7.1.0, and @dcl/crypto-middleware has required Node >=22
since v5, so no Node version satisfied both while this pin stood.
@vercel

vercel Bot commented Aug 20, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
decentraland-ui Ready Ready Preview Aug 20, 2026 5:41pm

Request Review

@decentraland-bot decentraland-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. I found no blocking issues.

  • P2: package.json now allows node >=20, but the root entry in package-lock.json still records engines.node: "20". This should be regenerated for consistency, although it does not appear to block the current CI/publish flow.
  • Security: no security issues found in this package metadata-only change.
  • CI: Vercel, audit, and build checks are passing.

Reviewed by Jarvis 🤖 · Requested by Lautaro Petaccio (<@U025WCHLMN3>) via Slack

@LautaroPetaccio
LautaroPetaccio merged commit 38685f5 into master Aug 20, 2026
6 checks passed
@LautaroPetaccio
LautaroPetaccio deleted the fix/allow-node-above-20 branch August 20, 2026 20:45
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 7.2.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

This branch was successfully deployed

1 active deployment
Preview — b8b9543f Deployed Aug 20, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants