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]