Skip to content

ci: test Node floor and newest only - #5

Merged
b2m9 merged 1 commit into
mainfrom
ci/node-matrix-floor-and-newest
Jul 31, 2026
Merged

ci: test Node floor and newest only#5
b2m9 merged 1 commit into
mainfrom
ci/node-matrix-floor-and-newest

Conversation

@b2m9

@b2m9 b2m9 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Drops the Node version matrix from [22, 24, 26] to [22, 26].

Why

The three legs were the engines floor, the active LTS, and the current release. The middle entry is bracketed by the other two — it can only fail if one of them also fails — so it cost a third of CI for no new signal.

The two that remain do distinct jobs:

  • 22 is the engines: ">=22" floor. It is the only leg that can catch code using an API newer than the version the package claims to support.
  • 26 is the newest release. It catches toolchain drift (vitest, tsc, oxlint choking on a new Node), which surfaces on the newest leg and never only on a middle one.

Maintenance policy

The comment in the workflow records the rule so the pair reads as a policy rather than a list that someone forgot to extend:

  • The floor moves only when engines in package.json moves. It is not driven by Node's EOL calendar — if the claim stays >=22 past 22's EOL, the leg stays too, because the leg is what makes the claim true.
  • The newest entry is swapped, not appended, when a new even major goes Active LTS each October. Odd majors are short-lived and skipped.

That is roughly one line edit a year, and the list never grows.

Risk

Low for this package. src/ imports zero Node built-ins, and tsconfig.json sets "lib": ["ES2022"], so too-new language APIs already fail at typecheck time on any Node. The matrix is a backstop and a signal to consumers, not the primary guard.

🤖 Generated with Claude Code


Summary by cubic

CI now tests only the Node engines floor and the newest LTS to cut redundant runs without losing signal. Matrix reduced from [22, 24, 26] to [22, 26], with a workflow comment documenting the update policy.

Written for commit db656e3. Summary will update on new commits.

Review in cubic

The matrix ran the engines floor, the active LTS, and the current release.
The middle entry is bracketed by the other two: it can only fail if one of
them also fails, so it bought a third of the CI cost for no new signal.

Keep the floor, which is the only leg that verifies the `>=22` claim in
package.json, and the newest, which catches toolchain drift. Record the
policy in a comment so the pair reads as a rule rather than a stale list.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 1 file

Re-trigger cubic

@b2m9
b2m9 merged commit c3e8175 into main Jul 31, 2026
3 checks passed
@b2m9
b2m9 deleted the ci/node-matrix-floor-and-newest branch July 31, 2026 09:10
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.

1 participant