⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@jaredm563
Copy link
Contributor

@jaredm563 jaredm563 commented Jan 20, 2026

Problem: Yarn v1 enforces engine constraints strictly. A transitive dep (chokidar@5) requires node >=20.19.0
Since Node 20 reaches EOL in April 2026, skip these tests rather than doing an override

The reason this is a problem at all is that despite the fact that the netlify-cli package includes an npm-shrinkwrap.json file, which enforces strict dependency tree resolution for netlify-cli consumers, this is only respected by npm and pnpm, not yarn v1. In other words, npm i -g [email protected] and pnpm add -g [email protected] are deterministic but yarn global add [email protected] is not.

The alternatives would be
-Pinning Chokidar to an older version
-Bumping the node version

But considering these can introduce breaking changes, and the fact the Node 20 is EOL in ~3 months, we can just skip this and leave a comment for maintainers to understand why we have to make this workaround.

🎉 Thanks for submitting a pull request! 🎉

Summary

Fixes #<replace_with_issue_number>


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)

…onstraints

Since Node 20 reaches EOL in April 2026, skip these tests rather than doing an override
@jaredm563 jaredm563 requested a review from a team as a code owner January 20, 2026 19:45
@jaredm563 jaredm563 requested review from serhalp and removed request for a team January 20, 2026 19:45
@github-actions
Copy link

github-actions bot commented Jan 20, 2026

📊 Benchmark results

  • Dependency count: 1,052
  • Package size: 317 MB
  • Number of ts-expect-error directives: 366

@serhalp
Copy link
Member

serhalp commented Jan 20, 2026

@jaredm563 an additional note for the PR description: the reason this is a problem at all is that despite the fact that the netlify-cli package includes an npm-shrinkwrap.json file, which enforces strict dependency tree resolution for netlify-cli consumers, this is only respected by npm and pnpm, not yarn v1. In other words, npm i -g [email protected] and pnpm add -g [email protected] are deterministic but yarn global add [email protected] is not.

Copy link
Member

@serhalp serhalp left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

Comment on lines 206 to 207
// TODO: Figure out why this flow is failing on Windows.
const npxOnWindows = platform() === 'win32' && 'run' in config
Copy link
Member

Choose a reason for hiding this comment

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

while you're here... am I reading this wrong or is this dead code? There's never 'run' in config in this describe. I think this might be leftover from splitting out the run tests into a separate describe below?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nope, you're totally right.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

poor cli needs some love

@jaredm563 jaredm563 requested a review from serhalp January 20, 2026 20:06
@jaredm563
Copy link
Contributor Author

jaredm563 commented Jan 20, 2026

Removed the dead npxOnWindows check entirely since 'run' in config was always false, then in another area simplified to skipOnWindows = platform() === 'win32' since 'run' in config was always true

Comment on lines 306 to +309
// TODO: Figure out why this flow is failing on Windows.
const npxOnWindows = platform() === 'win32' && 'run' in config
const skipOnWindows = platform() === 'win32'

itWithMockNpmRegistry.skipIf(npxOnWindows)('runs commands without errors', async ({ registry }) => {
itWithMockNpmRegistry.skipIf(skipOnWindows)('runs commands without errors', async ({ registry }) => {
Copy link
Member

Choose a reason for hiding this comment

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

🤔 but I think this is the case where the 'run' thing was relevant. Now that we've removed the condition, it—oh I see 🤦🏼. In this case it was always true and in the other case it was always false So they were both dead code in different ways. 👍🏼

@jaredm563 jaredm563 merged commit 0b193f2 into main Jan 20, 2026
61 of 65 checks passed
@jaredm563 jaredm563 deleted the fix-skip-yarn-chokidar-node-version-test branch January 20, 2026 21:17
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.

3 participants