Skip to content

Require Node.js 20 and update CI/docs#1832

Merged
coliff merged 1 commit intomainfrom
dev/coliff/drop-node-18
Mar 22, 2026
Merged

Require Node.js 20 and update CI/docs#1832
coliff merged 1 commit intomainfrom
dev/coliff/drop-node-18

Conversation

@coliff
Copy link
Member

@coliff coliff commented Mar 21, 2026

Bump the project's Node requirement to v20 and align tooling and docs. Updates package.json engines and Volta pin, .nvmrc, README, CONTRIBUTING, copilot-instructions.md, and the getting-started docs to require Node.js 20. Adjust CI workflows by adding concurrency groups to ossf-scorecard, spellcheck, and super-linter, and remove Node 18 from the test matrix so tests run on 20/22/24. These changes standardize the development environment on Node 20 LTS and reduce duplicated CI runs.

Bump the project's Node requirement to v20 and align tooling and docs. Updates package.json engines and Volta pin, .nvmrc, README, CONTRIBUTING, copilot-instructions.md, and the getting-started docs to require Node.js 20. Adjust CI workflows by adding concurrency groups to ossf-scorecard, spellcheck, and super-linter, and remove Node 18 from the test matrix so tests run on 20/22/24. These changes standardize the development environment on Node 20 LTS and reduce duplicated CI runs.
Copilot AI review requested due to automatic review settings March 21, 2026 08:29
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the project to require Node.js v20, aligning documentation and configuration files accordingly. The changes are generally sound and move the project to a modern LTS version of Node.js. However, I've identified a critical issue: the specified Node.js version 20.20.1 in both .nvmrc and package.json (for Volta) is not a valid Node.js release. This will break the development environment setup for anyone using nvm or volta. I've provided suggestions to correct this to a valid LTS version.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR raises the core HTMLHint project’s minimum supported Node.js version to 20+, updates version pins, aligns docs to the new requirement, and tweaks CI to reduce redundant workflow executions.

Changes:

  • Update Node requirement and tooling pins (engines/Volta and .nvmrc) to Node 20.
  • Refresh docs to state Node.js 20+ is required.
  • Adjust CI: remove Node 18 from the test matrix and add workflow-level concurrency controls to reduce duplicate runs.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
website/src/content/docs/getting-started.mdx Adds Node.js 20+ requirement statement to getting-started docs.
package.json Bumps engines.node to >=20 and Volta pin to Node 20.20.1.
package-lock.json Aligns lockfile top-level engines metadata with Node >=20.
README.md Documents Node.js 20+ requirement for users.
.nvmrc Pins nvm to Node 20.20.1 to match Volta.
.github/workflows/test.yml Removes Node 18 from CI test matrix (now 20/22/24).
.github/workflows/super-linter.yml Adds concurrency configuration to reduce duplicate linter runs.
.github/workflows/spellcheck.yml Adds concurrency configuration for spellcheck runs.
.github/workflows/ossf-scorecard.yml Adds concurrency configuration for scorecard runs.
.github/copilot-instructions.md Updates Copilot guidance to reflect Node 20+ / Volta pin.
.github/CONTRIBUTING.md Adds “Development setup” section documenting Node 20+ requirement.

- 'dependabot/**'

concurrency:
group: super-linter-${{ github.event.pull_request.number || github.ref }}
Copy link

Copilot AI Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concurrency group here differs between push and pull_request runs (PR uses the number; push uses the ref). That means a push-triggered run on a PR branch won’t be canceled when the pull_request-triggered run starts, so you can still get duplicate runs for the same branch/PR. Consider using a shared key like the head branch name for PRs (e.g., github.head_ref) and github.ref_name for pushes, or drop the push trigger if pull_request coverage is sufficient.

Suggested change
group: super-linter-${{ github.event.pull_request.number || github.ref }}
group: super-linter-${{ github.head_ref || github.ref_name }}

Copilot uses AI. Check for mistakes.
@coliff coliff merged commit 563c82d into main Mar 22, 2026
32 checks passed
@coliff coliff deleted the dev/coliff/drop-node-18 branch March 22, 2026 02:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants