From 6346a2fb8e56cd3ddc80f444c9c1ab6962932769 Mon Sep 17 00:00:00 2001 From: Daniel Schultz Date: Mon, 23 Feb 2026 10:55:37 -0500 Subject: [PATCH] Upgrade to Node 24 There isn't any reason to use anything but active node, as far as I can tell. --- .node-version | 2 +- AGENTS.md | 4 ++-- README.md | 7 +++++-- action.yml | 2 +- package-lock.json | 26 +++++++++++++------------- package.json | 4 ++-- tsconfig.json | 2 +- 7 files changed, 25 insertions(+), 22 deletions(-) diff --git a/.node-version b/.node-version index 209e3ef..a45fd52 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -20 +24 diff --git a/AGENTS.md b/AGENTS.md index b514524..e1ff3d7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # QA Instructions Action -A GitHub Action (TypeScript + Node 20) that generates QA instructions. +A GitHub Action (TypeScript + Node 24) that generates QA instructions. ## Build Commands @@ -19,4 +19,4 @@ A GitHub Action (TypeScript + Node 20) that generates QA instructions. - **Strict TypeScript** — `tsconfig.json` has `strict: true`. Do not use `any` without justification. - **Lint and format before committing** — run `npm run lint` and `npm run format:check` before creating a commit. - **Source lives in `src/`** — all TypeScript source code is in the `src/` directory. The `lib/` directory is intermediate compiler output and is git-ignored. -- **Node version** — defined in `.node-version` and must match the `runs.using` runtime in `action.yml`. When updating Node, change `.node-version`, `action.yml` (`runs.using`), and `@types/node` in `package.json` together. +- **Node version** — this project uses the active Node.js version supported by GitHub Actions (currently Node 24). The version is defined in `.node-version` and must match the `runs.using` runtime in `action.yml`. When updating Node, change `.node-version`, `action.yml` (`runs.using`), `@types/node` in `package.json`, and `@tsconfig/nodeXX` in both `package.json` and `tsconfig.json` together. diff --git a/README.md b/README.md index 1bb67c5..aeecdc6 100644 --- a/README.md +++ b/README.md @@ -155,13 +155,16 @@ npm install ### Node Version -The Node version is defined in `.node-version` and must match the `runs.using` runtime in `action.yml`. GitHub Actions only supports specific Node runtimes (`node20`, `node24`, etc.). When updating, change all three locations together: +This project follows a policy of using the active Node.js version supported by GitHub Actions. The Node version is defined in `.node-version` and must match the `runs.using` runtime in `action.yml`. GitHub Actions only supports specific Node runtimes (`node20`, `node24`, etc.). + +When updating to a new Node version, change all four locations together: 1. `.node-version` 2. `action.yml` → `runs.using` 3. `@types/node` version in `package.json` +4. `@tsconfig/nodeXX` version in `package.json` and `tsconfig.json` -Currently using **Node 20**. GitHub plans to deprecate `node20` in favor of `node24` in March 2026. +**Current version: Node 24** ### Making Changes diff --git a/action.yml b/action.yml index ba77be3..b74adb0 100644 --- a/action.yml +++ b/action.yml @@ -25,5 +25,5 @@ outputs: instructions: description: "The generated QA instructions" runs: - using: "node20" + using: "node24" main: "dist/index.js" diff --git a/package-lock.json b/package-lock.json index 3d9ee7f..9924bab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,8 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@tsconfig/node20": "^20.1.9", - "@types/node": "^20", + "@tsconfig/node24": "^24.0.4", + "@types/node": "^24", "esbuild": "^0.27.3", "eslint": "^10", "eslint-config-prettier": "^10", @@ -1242,10 +1242,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@tsconfig/node20": { - "version": "20.1.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.9.tgz", - "integrity": "sha512-IjlTv1RsvnPtUcjTqtVsZExKVq+KQx4g5pCP5tI7rAs6Xesl2qFwSz/tPDBC4JajkL/MlezBu3gPUwqRHl+RIg==", + "node_modules/@tsconfig/node24": { + "version": "24.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node24/-/node24-24.0.4.tgz", + "integrity": "sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==", "dev": true, "license": "MIT" }, @@ -1289,13 +1289,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", - "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", + "version": "24.10.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", + "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.16.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -2853,9 +2853,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 57e0816..4caf04b 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,8 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@tsconfig/node20": "^20.1.9", - "@types/node": "^20", + "@tsconfig/node24": "^24.0.4", + "@types/node": "^24", "esbuild": "^0.27.3", "eslint": "^10", "eslint-config-prettier": "^10", diff --git a/tsconfig.json b/tsconfig.json index f3a67e7..8ceacb8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@tsconfig/node20/tsconfig.json", + "extends": "@tsconfig/node24/tsconfig.json", "compilerOptions": { "rootDir": "./src", "outDir": "./lib",