Skip to content

chore: migrate Node.js runtime from 20.17.0 to 24.18.1 LTS - #305

Merged
TuCopFi merged 2 commits into
Developmentfrom
chore/node-24-migration
Aug 1, 2026
Merged

chore: migrate Node.js runtime from 20.17.0 to 24.18.1 LTS#305
TuCopFi merged 2 commits into
Developmentfrom
chore/node-24-migration

Conversation

@TuCopFi

@TuCopFi TuCopFi commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

PENDING.md item from 2026-05-29: GitHub Actions runtime deadline for Node 24 was 2026-06-02. Already past due. GitHub's deprecation warnings on Node 20 are surfacing in every scheduled Check run. Catching up now.

Node 24 became LTS "Krypton" (latest 24.18.1). Verified locally that the current dependency tree runs cleanly on Node 24.

Verification

  • yarn install --frozen-lockfile on Node 24: no lockfile drift, all resolutions hold.
  • yarn build:ts: 0 errors.
  • yarn lint: 0 errors.
  • yarn test (62 tests spanning sentry, earn, positions): 62/62 pass.
  • RN 0.77.3 nominally supports Node 22+.
  • react-native-quick-crypto / nitro-modules unaffected (native code, runs at build time not runtime).

Changes

File Before After
.nvmrc 20.17.0 24.18.1
package.json engines.node >=20.17.0 >=22.0.0 || >=24.0.0
.github/workflows/build.yml NODE_VERSION '20.17.0' '24.18.1'

The engines range is permissive (22 or 24) so devs already on 22 LTS aren't blocked. Locally we run 24 to match CI.

Follow-up (not blocking)

  • CLAUDE.md still documents "Node: 20.17.0 required" - stale, needs a doc pass.
  • tasks/plans/node24-migration.md can be closed / archived once this merges.

Test plan

  • yarn install --frozen-lockfile on Node 24
  • yarn build:ts (0 errors)
  • yarn test --testPathPattern="sentry|earn/PoolCard|positions/saga" (62/62)
  • CI Build workflow builds AAB + xcarchive on Node 24 without regression (main test happens when this lands and a Build run fires)

TuCopFi added 2 commits July 31, 2026 23:34
PENDING.md item from 2026-05-29: deadline 2026-06-02 for GitHub Actions
runtime bump to Node 24. Already past due; catching up now.

Node 24 became LTS 'Krypton' (latest 24.18.1). Verified compatibility:

- yarn install --frozen-lockfile: no lockfile drift (all resolutions
  hold on Node 24).
- yarn build:ts: 0 errors on 3400+ TS files.
- yarn lint: 0 errors.
- yarn test (62 tests spanning sentry/earn/positions): 62/62 pass.
- No known incompatibilities in the current dep tree (RN 0.77.3 nominally
  supports Node 22+; react-native-quick-crypto/nitro-modules unaffected;
  Metro 0.82.x on Node 24 works).

Files updated:
- .nvmrc: 20.17.0 -> 24.18.1
- package.json engines.node: '>=20.17.0' -> '>=22.0.0 || >=24.0.0'
  (permissive so developers on 22 LTS aren't blocked either).
- .github/workflows/build.yml NODE_VERSION: 20.17.0 -> 24.18.1

Not touched (should be checked in a follow-up if any surface):
- CLAUDE.md 'Node: 20.17.0 required' - now stale, but that file is
  documentation and can drift a day. Update in a follow-up doc pass.
- iOS/Android native toolchain: neither runs Node at build time except
  via yarn install, so setup-node@v4 handles it.

Verified with 'nvm use v24.18.1 && node --version' shows 24.18.1 active.
Follow-up to the previous commit on this branch. CLAUDE.md is loaded on
every session and had 'Node: 20.17.0 required' which is now stale after
the .nvmrc / engines / CI bump.
@TuCopFi
TuCopFi merged commit 824bdef into Development Aug 1, 2026
10 checks passed
@TuCopFi
TuCopFi deleted the chore/node-24-migration branch August 1, 2026 04:45
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.

1 participant