From af22a8082f2d3e36cbd2b58740957ae4001122e4 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 13:52:59 +0000 Subject: [PATCH 1/3] CI: build with Node 22 instead of Node 14 Dependabot bumps (browserslist #244, @babel/core #249) pulled in node-releases@2.0.57, which requires node >=18. With engine-strict=true, npm install failed with EBADENGINE on the Node 14 / npm 7 runners. Switch CI and Publish to Node 22 (bundled npm), bump checkout/setup-node to v4, and raise the engines.node floor to match. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014dzXtVc5r3a91n9yGBzit6 --- .github/workflows/ci.yml | 8 +++----- .github/workflows/publish.yml | 8 +++----- package.json | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d379ec40..4b38a943 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,12 +7,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: '14' - - name: Install and use custom node version - run: npm i -g npm@7 + node-version: '22' - name: Package restore run: npm install - name: Build site diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fb15a0d1..f56e0289 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,12 +7,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: '14' - - name: Install and use custom node version - run: npm i -g npm@7 + node-version: '22' - name: Package restore run: npm install - name: Build site diff --git a/package.json b/package.json index 3dc6a240..3d86f19d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "fable-compiler.github.io", "private": true, "engines": { - "node": ">=14.0.0", + "node": ">=18.0.0", "npm": ">=7.0.0" }, "type": "module", From 9b17440da4ba759b73dc67f93161a37847a5266b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 14:28:53 +0000 Subject: [PATCH 2/3] CI: read the Node version from package.json Use setup-node's node-version-file so the Node version lives in one place. setup-node reads volta.node first, so pin it there to 22 and keep engines.node as the minimum supported version for local development. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014dzXtVc5r3a91n9yGBzit6 --- .github/workflows/ci.yml | 2 +- .github/workflows/publish.yml | 2 +- package.json | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b38a943..c5b07a92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '22' + node-version-file: package.json - name: Package restore run: npm install - name: Build site diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f56e0289..9a41737d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '22' + node-version-file: package.json - name: Package restore run: npm install - name: Build site diff --git a/package.json b/package.json index 3d86f19d..e3e36d4e 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "node": ">=18.0.0", "npm": ">=7.0.0" }, + "volta": { + "node": "22" + }, "type": "module", "scripts": { "clean": "nacara clean", From ff211b57cb6f356682b293969c864e2c78f8c7e8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 17:08:53 +0000 Subject: [PATCH 3/3] CI: take the Node version from .nvmrc .nvmrc is read by setup-node, nvm, fnm and mise, so it is a more standard single source of truth than a volta field in package.json. Drop the engines field: it mainly kept npm 6 (which would rewrite the v2 lockfile) out, which is no longer relevant. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014dzXtVc5r3a91n9yGBzit6 --- .github/workflows/ci.yml | 2 +- .github/workflows/publish.yml | 2 +- .nvmrc | 1 + package-lock.json | 4 ---- package.json | 7 ------- 5 files changed, 3 insertions(+), 13 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5b07a92..96a7e4e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version-file: package.json + node-version-file: .nvmrc - name: Package restore run: npm install - name: Build site diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9a41737d..7c13720c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version-file: package.json + node-version-file: .nvmrc - name: Package restore run: npm install - name: Build site diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..2bd5a0a9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/package-lock.json b/package-lock.json index 9ee60203..1fcba195 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,10 +21,6 @@ "gh-pages": "^5.0.0", "remark-gfm": "^3.0.1", "shx": "^0.3.4" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" } }, "node_modules/@babel/code-frame": { diff --git a/package.json b/package.json index e3e36d4e..4be7e35b 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,6 @@ { "name": "fable-compiler.github.io", "private": true, - "engines": { - "node": ">=18.0.0", - "npm": ">=7.0.0" - }, - "volta": { - "node": "22" - }, "type": "module", "scripts": { "clean": "nacara clean",