Repository navigation
Conversation
Raise engines.node to >=22, which is the floor OWASP#1237 already chose, and add a separate Node 22 job so the declared floor is exercised in CI. The existing build job keeps its name because it is a required status check. The new job mirrors build, including the advisory sync: the offline e2e tests fail without a synced database, so skipping it would remove coverage rather than just save time.
|
No new vulnerabilities introduced by this PR Posted because this PR changes dependencies. Nothing is posted when they are untouched. Scanned by CVE Lite CLI, a free and open source OWASP project. |
|
Probe result, as the issue asked:
This also confirms the required |
…floor # Conflicts: # CHANGELOG.md
sonukapoor
left a comment
There was a problem hiding this comment.
Approved, thanks @prx-my.
The part I cared most about was whether the new Node 22 job can actually fail, and your probe settles it: a test that only passes on Node 24 turns the 22 job red while the existing build stays green. The engines floor matches in both the manifest and the lockfile, the job only has read access, and the docs agree with it.
I merge these one at a time rather than in a batch, so it will land shortly.

What changed and why
engines.nodeclaimed>=20, but every workflow pinned Node 24, so the declared floor was never exercised. This raises the declaration to>=22(the floor #1237 already chose) and adds a CI job that actually runs the suite there.package.json/package-lock.json:engines.node->>=22.github/workflows/ci.yml: newnode-floorjob at Node 22website/docs/troubleshooting.md: minimum requirement ->node >= 22Design choices
Separate job, not a matrix. The existing job is the required
buildstatus check. Matrixing it would rename the contexts tobuild (22)/build (24), so the requiredbuildcontext would never report and every PR would be blocked. The existing job and its name are unchanged.The new job keeps the advisory sync. The
--offlinee2e tests need a synced database; skipping the sync would make them fail rather than merely reduce coverage, so the new job mirrorsbuildend to end. It roughly doubles the sync work per push, which seemed the honest trade for a floor that is genuinely tested.Verification
npm run buildclean on Node 22 and Node 24actionlintcleanbuildjob untouched, so the required check keeps reporting under its current nameThe final check from the issue - breaking something version-sensitive and watching
node-floorgo red - is being run on this PR next; I will note the result here.Closes #1356