marDC-it opened a new pull request, #721:
URL: https://github.com/apache/shenyu-dashboard/pull/721

   Fixes #654.
   
   Node 18 and 20 have both reached end-of-life, while `package.json` still 
declared
   `"node": ">=8.0.0"` and the workflows pinned Node 16/20 on deprecated action 
versions.
   
   ### Changes
   
   | File | Change |
   | --- | --- |
   | `package.json` | `engines.node` → `>=22.12.0`, the floor `commander@15` 
requires |
   | `.nvmrc` | `20` → `22` |
   | `README.md` | prerequisite now reads "Node.js 22 LTS or newer (24 
recommended)" |
   | `.github/workflows/build.yml` | matrix `[22.x, 24.x]`, `checkout@v4`, 
`setup-node@v4` with `cache: npm` |
   | `.github/workflows/deploy.yml` | `checkout@v4`, `setup-node@v4`, build on 
Node 24 |
   | `.github/workflows/sync-to-main.yml` | build on Node 24 instead of 16 |
   
   ### Two things the matrix change would otherwise have broken silently
   
   - The lint step was gated on `if: matrix.node-version == '20.x'`. With the 
matrix moved to
     `[22.x, 24.x]` that condition can never match, so lint would stop running 
with no error
     anywhere. It now runs on `22.x`.
   - The coverage artifact had the fixed name `unit-test-coverage`. 
`actions/upload-artifact@v4`
     rejects a second upload under a name already used in the same run, so with 
two matrix jobs
     the workflow would have failed. The name now carries the Node version.
   
   ### Verification
   
   Local, on Node v24.21.0 (Windows):
   
   | command | result |
   | --- | --- |
   | `npm ci` | 3562 packages, no errors |
   | `npm run build` | `Compiled successfully`, with no `NODE_OPTIONS` and no 
`--openssl-legacy-provider` |
   | `npm run test:coverage` | 56 suites / 281 tests passed; coverage unchanged 
at 20.07% |
   | `npm run lint` | 0 errors |
   
   This answers the open question in #654 about whether the roadhog build needs 
the legacy
   OpenSSL provider on modern Node: on Node 24 it does not. Node 22 is covered 
by the new CI
   matrix rather than locally.
   
   Deliberately out of scope: the `caniuse-lite` data warning, 
`[email protected]`, the bundle
   size and the `npm audit` findings. All real, none of them this issue.
   
   ---
   
   Generative AI assistance (Claude) was used while investigating this issue 
and preparing the
   change, per the ASF Generative Tooling Guidance. The changes and the 
verification above are
   mine and I take responsibility for them.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to