Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat!: end of support for Node.js v18 and v20#7054

Merged
pieh merged 8 commits into
mainfrom
cshio/eos-node-18-20
Jun 16, 2026
Merged

feat!: end of support for Node.js v18 and v20#7054
pieh merged 8 commits into
mainfrom
cshio/eos-node-18-20

Conversation

@cshio

@cshio cshio commented May 11, 2026

Copy link
Copy Markdown
Contributor

🎉 Thanks for submitting a pull request! 🎉

Summary

Related to FRB-2069

Merge on 2026-06-16

Phase 2 of the Node.js 18/20 end-of-support rollout for Build Plugins, and the breaking half. Raises the minimum Node.js version used to execute local / package.json build plugins from >=18.14.0 to >=22.12.0. Plugins running on a Node.js version below 22.12 now fall back to the system default Node.js version (≥22) instead of the user's version, with a warning. The advance-notice warning added in #7053 is removed (its job is done once this lands).

Branch Protection Note

This PR renames the "oldest supported Node" CI legs (test-build (ubuntu-24.04, 18.14.0, npm ci, 0..4) → …22.12.0…). Required-status-check names in main's branch protection still reference the old names, so this PR shows 5 checks stuck at "Expected — Waiting for status to be reported" — those jobs no longer exist; the renamed 22.12.0 legs run and pass.

Before merging, a repo admin must update main's required status checks:

  • remove: test-build (ubuntu-24.04, 18.14.0, npm ci, 0..4)
  • add: test-build (ubuntu-24.04, 22.12.0, npm ci, 0..4)

Testing

Verified working with deploy 6a29b9472f16e7736056a2d6
Screenshot 2026-06-10 at 12 34 34 PM


For us to review and ship your PR efficiently, please perform the following steps:

  • Open a bug/issue before writing your code 🧑‍💻. This ensures
    we can discuss the changes and get feedback from everyone that should be involved. If you`re fixing a typo or
    something that`s on fire 🔥 (e.g. incident related), you can skip this step.
  • Read the contribution guidelines 📖. This ensures
    your code follows our style guide and passes our tests.
  • Update or add tests (if any source code was changed or added) 🧪
  • Update or add documentation (if features were changed or added) 📝
  • Make sure the status checks below are successful ✅

A picture of a cute animal (not mandatory, but encouraged)

@cshio cshio self-assigned this May 11, 2026
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR raises the monorepo Node.js minimum to 22.12.0 across manifests and CI, simplifies plugin node-version selection by removing the upcoming-minimum check and plugin package.json inspection, updates addPluginsNodeVersion call sites, replaces corepack-based pnpm provisioning with explicit corepack install/Yarn enable and global pnpm@10 installation in workflows, and removes semver-gated test registration making several tests unconditional.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • netlify/build#7053: Directly precedes this PR by introducing the "upcoming minimum" warning logic that this PR removes.

Suggested reviewers

  • serhalp
  • hrishikesh-k
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat!: end of support for Node.js v18 and v20' accurately and specifically summarizes the main breaking change: raising minimum Node.js version from 18.14.0 to 22.12.0 across the project.
Description check ✅ Passed The PR description provides comprehensive context: issue reference (FRB-2069), merge timeline (2026-06-16), detailed explanation of Phase 2 changes, branch protection implications with remediation steps, and testing verification with screenshot. All critical sections are well-addressed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cshio/eos-node-18-20

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

This pull request adds or modifies JavaScript (.js, .cjs, .mjs) files.
Consider converting them to TypeScript.

cshio and others added 2 commits June 10, 2026 10:51
The monorepo fixtures build with pnpm, which corepack can't reliably
provision on every CI leg (e.g. the pinned Node 22.12.0 and Windows
test-build legs). Replace the removed semver-based guard with a runtime
pnpm check so these tests skip where pnpm can't run instead of failing.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@cshio cshio force-pushed the cshio/eos-node-18-20 branch from 618e7c7 to a78c409 Compare June 10, 2026 17:56
@cshio cshio marked this pull request as ready for review June 10, 2026 19:46
@cshio cshio requested a review from a team as a code owner June 10, 2026 19:46
serhalp
serhalp previously approved these changes Jun 11, 2026

@serhalp serhalp left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Comment thread packages/build/tests/frameworks_api/tests.js Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/workflow.yml (1)

86-88: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix Node 22 detection in npm pin step conditions.

Line 88 and Line 173 use matrix.node-version == '22', which does not match the new oldest-leg value 22.12.0. That skips the npm@10 pin exactly on the newly added Node 22.12.0 lanes, despite the step intent being “Node 22+”.

Suggested patch
-        if: ${{ !steps.release-check.outputs.IS_RELEASE && matrix.node-version == '22' }}
+        if: ${{ !steps.release-check.outputs.IS_RELEASE && startsWith(matrix.node-version, '22') }}

Apply this at both:

  • test job npm setup step
  • test-build job npm setup step

Also applies to: 171-173

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/workflow.yml around lines 86 - 88, The step named "Setup
npm version" currently checks matrix.node-version == '22', which misses values
like '22.12.0'; update the if condition for both the "Setup npm version" steps
in the test and test-build jobs so it detects Node 22.x by using a
startsWith/contains check on matrix.node-version (e.g.
startsWith(matrix.node-version, '22')) instead of strict equality, ensuring the
npm@10 pin runs for Node 22.12.0 and any other 22.x versions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.github/workflows/workflow.yml:
- Around line 86-88: The step named "Setup npm version" currently checks
matrix.node-version == '22', which misses values like '22.12.0'; update the if
condition for both the "Setup npm version" steps in the test and test-build jobs
so it detects Node 22.x by using a startsWith/contains check on
matrix.node-version (e.g. startsWith(matrix.node-version, '22')) instead of
strict equality, ensuring the npm@10 pin runs for Node 22.12.0 and any other
22.x versions.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ae479f24-4d50-457f-9652-1c5115353022

📥 Commits

Reviewing files that changed from the base of the PR and between d63d183 and 16abf01.

📒 Files selected for processing (4)
  • .github/workflows/workflow.yml
  • packages/build/tests/blobs_upload/tests.js
  • packages/build/tests/frameworks_api/tests.js
  • packages/build/tests/functions/tests.js
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • netlify/blueprints (manual)
🚧 Files skipped from review as they are similar to previous changes (3)
  • packages/build/tests/blobs_upload/tests.js
  • packages/build/tests/frameworks_api/tests.js
  • packages/build/tests/functions/tests.js

@cshio cshio requested a review from serhalp June 11, 2026 19:33
@pieh pieh merged commit 4358aa0 into main Jun 16, 2026
80 of 82 checks passed
@pieh pieh deleted the cshio/eos-node-18-20 branch June 16, 2026 17:28
@cshio cshio mentioned this pull request Jun 16, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants