From 3ba2ca674f09bd274f6683d2fe3425a5e3db3054 Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Mon, 28 Sep 2026 23:29:00 +0800 Subject: [PATCH 1/2] ci: move the GitHub Actions to their current majors The actions ran on the deprecated Node.js 20 runtime: checkout v7, setup-python v7, setup-node v7, upload-artifact v7, download-artifact v8 and action-gh-release v3 run on Node.js 24. Artifacts are downloaded by name, which the path change of download-artifact v5 leaves as it was. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/commitlint.yml | 4 ++-- .github/workflows/release.yml | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 13e0c84..9aaa6e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,9 +20,9 @@ jobs: matrix: node: ['20', '22'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: ${{ matrix.node }} cache: npm diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 74354bc..5c01c7f 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -15,11 +15,11 @@ jobs: name: conventional commit lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: '22' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58ecb24..85573cd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,9 +21,9 @@ jobs: name: test and build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: '22' cache: npm @@ -49,7 +49,7 @@ jobs: npm pack --pack-destination out ls -la out - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: package path: | @@ -67,14 +67,14 @@ jobs: contents: read id-token: write # npm provenance / trusted publishing (OIDC) steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: '22' registry-url: 'https://registry.npmjs.org' - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: package path: artifact @@ -111,7 +111,7 @@ jobs: permissions: contents: write # create the GitHub release steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 @@ -123,7 +123,7 @@ jobs: env: OUTPUT: RELEASE_NOTES.md - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: package path: artifact @@ -139,7 +139,7 @@ jobs: cat RELEASE_NOTES.md - name: Create GitHub release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: tag_name: ${{ github.ref_name }} name: ${{ github.ref_name }} From 516427efce51c8a30c6efad9b9bc632e1ef0ef11 Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Mon, 28 Sep 2026 23:32:44 +0800 Subject: [PATCH 2/2] build: require Node.js 22 and test on Node.js 22, 24 and 26 Node.js 20 is past its end of life. `engines` and the docs ask for Node.js 22 or later, CI tests on 22, 24 (the active LTS) and 26 (LTS from 2026-10-28), and the release and commitlint jobs run on 24. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 2 +- .github/workflows/commitlint.yml | 2 +- .github/workflows/release.yml | 4 ++-- CONTRIBUTING.md | 2 +- README.en.md | 2 +- README.md | 2 +- docs/data-format.md | 2 +- package-lock.json | 2 +- package.json | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9aaa6e3..76c4b46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - node: ['20', '22'] + node: ['22', '24', '26'] steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 5c01c7f..7b0e22a 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: '22' + node-version: '24' - name: Install commitlint run: npm install -g @commitlint/cli @commitlint/config-conventional diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 85573cd..3463d3d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: '22' + node-version: '24' cache: npm - run: npm ci --no-audit --no-fund @@ -71,7 +71,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: '22' + node-version: '24' registry-url: 'https://registry.npmjs.org' - uses: actions/download-artifact@v8 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4277e04..6cec13a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ data is outside this repository. ## Development -Node.js 20 or later. There are no runtime dependencies; the development dependencies are esbuild and TypeScript. +Node.js 22 or later. There are no runtime dependencies; the development dependencies are esbuild and TypeScript. ```sh npm ci diff --git a/README.en.md b/README.en.md index 4917048..ad38751 100644 --- a/README.en.md +++ b/README.en.md @@ -214,7 +214,7 @@ Chromium-based browsers. ## Development -Node.js 20 or later. +Node.js 22 or later. ```sh npm ci diff --git a/README.md b/README.md index 56bb28a..613a45e 100644 --- a/README.md +++ b/README.md @@ -169,7 +169,7 @@ nnnotes web out/site --all --all-live2d --all-stories --player npm run test:data`) +It needs Node.js 22 or later and no dependencies. The opt-in data tests (`OURNOTES_DATA= npm run test:data`) go further and run charts through the player in Node (see [CONTRIBUTING.md](../CONTRIBUTING.md)). diff --git a/package-lock.json b/package-lock.json index d137cb5..fc8f4e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "typescript": "5.9.3" }, "engines": { - "node": ">=20" + "node": ">=22" } }, "node_modules/@esbuild/aix-ppc64": { diff --git a/package.json b/package.json index d7061ce..0d9878f 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "LICENSE-EXCEPTION" ], "engines": { - "node": ">=20" + "node": ">=22" }, "scripts": { "build": "node scripts/build.mjs",