feat(runtime): deprecate Node.js 20 and refresh dependencies - #251
Conversation
Coverage: 94.97% (was 94.97%)
Not up to standards ⛔🔴 Issues
|
| Category | Results |
|---|---|
| Complexity | 1 medium |
🟢 Metrics 0 complexity · 0 duplication
Metric Results Complexity 0 Duplication 0
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s published Node.js support messaging and CI coverage while refreshing a set of dependencies and GitHub Action pins, and adds/extends documentation-oriented unit tests to enforce those public contracts going forward.
Changes:
- Update README runtime guidance to deprecate (but still support) Node.js 20 and recommend Node.js 22+.
- Expand CI Node matrix to test 20, 22, 24, and 26.7.0; refresh several pinned GitHub Actions SHAs.
- Bump dev tooling dependencies (typescript-eslint, ESLint, tsx) and add/extend unit tests that validate public workflow/documentation metadata.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates the installation/runtime guidance to reflect the new Node support policy messaging. |
| package.json | Refreshes devDependencies used for linting/testing/build workflows. |
| package-lock.json | Locks updated dependency graph and integrity hashes for the refreshed dependencies. |
| .github/workflows/scorecard.yml | Updates pinned CodeQL action SHA used for SARIF upload. |
| .github/workflows/docker-rebuild.yml | Updates pinned docker/login-action SHA (but still contains an older CodeQL upload-sarif pin elsewhere in-file). |
| .github/workflows/docker-publish.yml | Updates pinned docker/login-action SHA (but still contains an older CodeQL upload-sarif pin elsewhere in-file). |
| .github/workflows/codeql.yml | Updates pinned CodeQL init/analyze action SHAs. |
| .github/workflows/ci.yml | Expands the Node version matrix to add 22 and 26.7.0. |
| tests/unit/documentation.test.ts | Adds validations to keep README/workflow “public contract” metadata aligned (Node policy, CI matrix, action pin expectations, dependabot guard). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Coverage: 94.97% (was 94.97%)
|
Review findings handled in f6d8523: split the Dependabot ignore detector into small pure helpers and split the Node/runtime workflow assertions into focused helpers. Both Codacy complexity findings were treated as valid; no findings were left unchanged. |
Coverage: 94.97% (was 94.97%)
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.
Suppressed comments (3)
.github/workflows/docker-publish.yml:86
- This workflow still pins
github/codeql-action/upload-sarifto the old v4.37.3 SHA (line 63). Since this PR updates CodeQL action pins elsewhere, update the Trivy SARIF upload step here to the same v4.37.7 commit SHA for consistency and to match the stated dependency refresh.
- name: Log in to Docker Hub
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
.github/workflows/docker-rebuild.yml:152
- This workflow still uses
github/codeql-action/upload-sarifpinned to the old v4.37.3 SHA (line 108). If the goal is to refresh the immutable action pins, update that SARIF upload step to the same v4.37.7 SHA used incodeql.yml/scorecard.ymlso CodeQL is consistently pinned across workflows.
- name: Log in to Docker Hub
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with:
tests/unit/documentation.test.ts:401
- The new workflow-metadata contract test checks CodeQL action pins only for
codeql.ymlandscorecard.yml, butdocker-publish.ymlanddocker-rebuild.ymlalso containgithub/codeql-action/upload-sarifsteps. If the intent is to prevent pin drift repo-wide, include those docker workflows inassertCodeqlActionPinschecks as well (similar to howassertDockerLoginPinis applied to both).
assertCiMatrix(ci);
assertCiCommonJob(ci);
assertCodeqlActionPins(codeql);
assertCodeqlActionPins(scorecard);
assertDockerLoginPin(dockerPublish);
assertDockerLoginPin(dockerRebuild);
assertDependabotUnpdfPolicy(dependabot);
|
Review findings handled in f049e3a: updated the two missed Docker upload-sarif pins to the verified CodeQL v4.37.7 commit and extended the metadata contract to cover them. The ESLint engine comment was left unchanged because ESLint is development-only and the official Node 20.20.2 contributor gate passes. |
Summary
>=20compatibility contractunpdfat 1.7.0 because the update in chore(deps): bump unpdf from 1.7.0 to 1.8.1 #246 requires Node.js 22+Verification
npm ci, lint, build, and 736/736 coverage testsSupersedes #242, #243, and #247.