Skip to content

Commit 02ba502

Browse files
rhyslbwclaude
andcommitted
chore: target Node 22 LTS (drop EOL Node 18) + required compat fixes
The project was pinned to the now-EOL Node 18.12.0 (.nvmrc + all CI workflows) with a stale `engines: >=16.20.2`. Move to the Node 22 LTS line, tracked by major so it doesn't go stale again: - .nvmrc: 22 · all 9 CI workflows: node-version 22 · engines.node: >=22 (all manifests) - @types/node: ^18 -> ^22 Node 22 / @types/node 22 compatibility fixes (folded in so every commit builds): - cardano-services WsServer + projection/e2e tests: type interval handles as NodeJS.Timeout (setInterval no longer returns the legacy NodeJS.Timer) - e2e measurement-util (src + test): PerformanceEntry no longer carries `detail` - shared jest base config: fakeTimers `doNotFake: ['performance']` (Node 22's read-only global `performance` can't be replaced by the fake-timers impl), and a setupFile disabling http(s).globalAgent keepAlive — Node 19+ defaults it to true, so HTTP tests that restart servers between cases reused stale sockets ("socket hang up" / AxiosError in HttpProvider + TxSubmit suites) - cardano-services-client test: --runInBand (avoids a jest-worker circular-JSON IPC crash on a follow-redirects object) - TypeormStakePoolProvider util test: assert toThrow(SyntaxError) (V8 JSON message wording differs across Node versions) Docker: NODEJS_MAJOR_VERSION=22, plus a multi-stage `deps-builder` that installs the build toolchain (build-essential/python3/libudev-dev/libusb/pkg-config) to compile native modules — Node 22 has no prebuilds for some older native deps (cpu-features, chacha-native, node-hid/usb). Toolchain stays in the builder; runtime images copy the compiled node_modules and stay lean. Unblocks the Node-20+ dependency majors that couldn't pass CI on Node 18. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 531ce13 commit 02ba502

43 files changed

Lines changed: 107 additions & 57 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/continuous-integration-blockfrost-e2e.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
- name: 🧰 Setup Node.js
5252
uses: actions/setup-node@v3
5353
with:
54-
node-version: 18.12.0
54+
node-version: 22
5555

5656
- name: 🔨 Install
5757
uses: ./.github/actions/install

.github/workflows/continuous-integration-e2e.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
- name: 🧰 Setup Node.js
5252
uses: actions/setup-node@v3
5353
with:
54-
node-version: 18.12.0
54+
node-version: 22
5555

5656
- name: 🔨 Install
5757
uses: ./.github/actions/install

.github/workflows/continuous-integration-side-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: 🧰 Setup Node.js
2424
uses: actions/setup-node@v3
2525
with:
26-
node-version: 18.12.0
26+
node-version: 22
2727

2828
- name: 🔨 Install
2929
uses: ./.github/actions/install

.github/workflows/continuous-integration-unit-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: 🧰 Setup Node.js
2424
uses: actions/setup-node@v3
2525
with:
26-
node-version: 18.12.0
26+
node-version: 22
2727

2828
- name: 🔨 Install
2929
uses: ./.github/actions/install

.github/workflows/k6-wallets.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
- name: 🧰 Setup Node.js
6767
uses: actions/setup-node@v3
6868
with:
69-
node-version: 18.12.0
69+
node-version: 22
7070
- name: 🔨 Install
7171
uses: ./.github/actions/install
7272
with:

.github/workflows/k6-web-socket.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
- name: 🧰 Setup Node.js
5959
uses: actions/setup-node@v3
6060
with:
61-
node-version: 18.12.0
61+
node-version: 22
6262
- name: 🔨 Install
6363
uses: ./.github/actions/install
6464
with:

.github/workflows/post_integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: 🧰 Setup Node.js
1616
uses: actions/setup-node@v3
1717
with:
18-
node-version: 18.12.0
18+
node-version: 22
1919

2020
- name: 🔨 Install
2121
uses: ./.github/actions/install

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: 🧰 Setup Node.js
2222
uses: actions/setup-node@v4
2323
with:
24-
node-version: 18.12.0
24+
node-version: 22
2525
registry-url: 'https://registry.npmjs.org'
2626

2727
- name: Import bot's GPG key for signing commits

.github/workflows/test-deploy-e2e.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
- name: 🧰 Setup Node.js
6464
uses: actions/setup-node@v3
6565
with:
66-
node-version: 18.12.0
66+
node-version: 22
6767

6868
- name: 🔨 Install
6969
uses: ./.github/actions/install

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v18.12.0
1+
22

0 commit comments

Comments
 (0)