fix(desktop): pin @icons-pack/react-simple-icons below its node>=24 releases - #44197
fix(desktop): pin @icons-pack/react-simple-icons below its node>=24 releases#44197xxxigm wants to merge 1 commit into
Conversation
…eleases apps/desktop declares engines.node "^20.19.0 || >=22.12.0", but @icons-pack/react-simple-icons bumped its own engines to node >=24 starting at 13.11.2. With the old "^13.13.0" range, every install on the supported Node 20/22 range emits a noisy `npm warn EBADENGINE Unsupported engine` line (and would hard -fail under engine-strict), even though the package itself works fine on Node 22. Cap the range at "<13.11.2" (resolves to 13.11.1, the last release with no Node floor). All brand glyphs the app imports — Telegram, Discord, Matrix, Signal, WhatsApp, Apple, Gmail, HomeAssistant, Mattermost, QQ, WeChat, Bilibili — are present in 13.11.1, so this is icon-identical.
|
Duplicate of #40284 — same fix: cap |
austinpickett
left a comment
There was a problem hiding this comment.
Verified — correct, minimal, and internally consistent. Approving.
Premise confirmed (via npm view)
@icons-pack/react-simple-icons13.11.2,13.12.0,13.13.0all declareengines: { node: ">=24" };13.11.1and earlier do not.- Desktop app supports
node: ^20.19.0 || >=22.12.0(repo root>=20.0.0), so^13.13.0resolves to a node-24-only release — incompatible with the support floor. The pin>=13.0.0 <13.11.2correctly excludes every node-24 release.
Pin/lockfile consistency ✅
apps/desktop/package.json and the lockfile root both move to >=13.0.0 <13.11.2; a nested entry resolved at 13.11.1 is added and the old hoisted 13.13.0 removed. semver confirms 13.11.1 satisfies the range and 13.13.0 does not. The 13.11.1 entry correctly drops the engines block.
Cross-PR conflict with #44024 — none
#44024 (approved, edits root package-lock.json at the @types/node region ~line 8418+ and the 19659–20084 dedup block) and #44197 (edits lines ~83, 161, 2554–2582) touch completely disjoint ranges. Git's 3-way merge auto-resolves regardless of order; whichever lands second just needs no manual intervention. No blocker.
Minor (non-blocking)
No .npmrc engine-strict=true in the repo, so plain npm install only warns on an unsatisfied engines field rather than hard-failing — so "breaks the build" is slightly stronger than reality for local installs. The pin is still the right defensive fix (stricter CI/electron toolchains do fail, and it prevents silently shipping a node-24-only dep). The hard upper bound <13.11.2 over a caret is intentional and appropriate.
❌ Lockfile fix failedSee the workflow run for logs. |
|
Thanks for the focused dependency and lockfile update. This is already implemented on current
|
Summary
A WSL user (Node v22.22.3) reported a noisy desktop launch:
apps/desktop/package.jsondeclares it supports Node^20.19.0 || >=22.12.0, but@icons-pack/react-simple-iconsbumped its ownengines.nodeto>=24starting at 13.11.2 (13.11.1 and earlier have no Node floor). With the old^13.13.0range, every install on the project's supported Node 20/22 range prints theEBADENGINEwarning — and would hard-fail underengine-strict/npm ci --engine-strict.Fix
Cap the range at
<13.11.2(">=13.0.0 <13.11.2"), which resolves to 13.11.1 — the last release before the Node-24 floor. The package works fine on Node 22; only its declared engine was over-tightened.Verified every brand glyph the app imports (
platform-icon.tsx: Telegram, Discord, Matrix, Signal, WhatsApp, Apple, Gmail, HomeAssistant, Mattermost, QQ, WeChat, Bilibili) is present in 13.11.1 — icon-identical, no behavior change.Lockfile diff is minimal: the resolved version moves to 13.11.1 and the old 13.13.0 entry (with
engines.node: ">=24") is dropped; no other packages churn.Test plan
13.11.2+ carryengines.node: ">=24"and13.11.1does not.Si*icon modules exist in@icons-pack/react-simple-icons@13.11.1.package-lock.jsonregenerated withnpm install --package-lock-only; diff limited to this one dependency.