Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency graceful-fs to v4.2.9 🌟 #19676

Merged
merged 12 commits into from
Jan 18, 2022

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 12, 2022

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
graceful-fs 4.2.0 -> 4.2.9 age adoption passing confidence

Release Notes

isaacs/node-graceful-fs

v4.2.9

Compare Source

v4.2.8

Compare Source

v4.2.7

Compare Source

v4.2.6

Compare Source

v4.2.5

Compare Source

v4.2.4

Compare Source

v4.2.3

Compare Source

v4.2.2

Compare Source

v4.2.1

Compare Source


Configuration

📅 Schedule: "before 3am on the first day of the month" in timezone America/New_York.

🚦 Automerge: Enabled.

Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by WhiteSource Renovate. View repository job log here.

@renovate renovate bot requested a review from a team as a code owner January 12, 2022 16:12
@renovate renovate bot added renovate Triggered by renovatebot type: dependencies labels Jan 12, 2022
@renovate renovate bot requested review from jennifer-shehane and removed request for a team January 12, 2022 16:12
@cypress-bot
Copy link
Contributor

cypress-bot bot commented Jan 12, 2022

See the guidelines for reviewing dependency updates for info on how to review dependency update PRs.

mjhenkes
mjhenkes previously approved these changes Jan 12, 2022
emilyrohrbough
emilyrohrbough previously approved these changes Jan 12, 2022
@cypress
Copy link

cypress bot commented Jan 12, 2022



Test summary

19129 0 218 0Flakiness 1


Run details

Project cypress
Status Passed
Commit 92d4590
Started Jan 17, 2022 4:25 PM
Ended Jan 17, 2022 4:36 PM
Duration 11:24 💡
OS Linux Debian - 10.10
Browser Multiple

View run in Cypress Dashboard ➡️


Flakiness

cypress/integration/cypress/proxy-logging_spec.ts Flakiness
1 Proxy Logging > request logging > xhr log has response body/status code

This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Dashboard

@mjhenkes mjhenkes dismissed stale reviews from emilyrohrbough and themself via 223b41f January 12, 2022 19:25
@mjhenkes
Copy link
Member

Ok, so this change breaks yarn 2 support more than it already is.

Currently using yarn version 2.4.3 cypress open fails due to graceful-fs (version 4.2.0) See issue #6377, specifically my last comment.
However, cypress run still works and thus the tests pass

By upgrading to graceful-fs (version 4.2.9) both cypress open and run fail with:

glob error TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

This appears to be a yarn bug that was fixed with version 3.

Both cypress open and run work with yarn 3.1.1.

So we need to decided if we support want to try to support yarn 2, if not we can upgrade the test to instead use yarn 3.

@mjhenkes
Copy link
Member

mjhenkes commented Jan 13, 2022

I'm going to restate the graceful-fs problem here:

Graceful-fs v4.2.0 - 4.2.8 breaks when used in conjunction with resolve v1.211. This surfaced in cypress when trying to run component tests with vite2.

When used with Yarn v2.4.3 Cypress open mode fails with an error3.
TypeError: BigInt.prototype.toString requires that 'this' be a BigInt.
Cypress run mode executes. I'm not sure if this is a yarn bug, but it occurs when graceful-fs v4.2.0 is present.

When Graceful-fs is updated to v4.2.9, using yarn v2.4.3 Both Cypress run and Open fail with the following error:

glob error TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

TypeError: Cannot destructure property 'withFileTypes' of '(intermediate value)(intermediate value)(intermediate value)' as it is null.
    at PosixFS.readdirPromise (/Users/matthenkes/Source/cypress-test-repo/.pnp.js:12043:5)
    at /Users/matthenkes/Source/cypress-test-repo/.pnp.js:15069:20
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

This is a yarn bug that was corrected in yarn version 34. Both cypress open and cypress run work with yarn v3. (Tested with yarn v3.1.1).

Cypress bundles graceful-fs with it's electron app and uses it when executing user tests/plugins. So any kind of yarn resolution won't help in this case.56

Options:

  • Do nothing and leave vite broken and yarn v2 with partial support (run only).
  • Update to Graceful-fs 4.2.9, and support yarn v3 and above. I'm unsure what the burden is on developers to update to yarn 37, but these do seem like yarn 2 bugs. The yarn 2 system test would have to be updated to use yarn 3 with this PR.
  • Maintain Yarn v2.4.3 support.
    • Remove Graceful-fs and handle EMFILE error from too many file descriptors ourselves.
    • Patch Graceful-fs v4.2.0 with the v4.2.9 fix8
    • Patch Graceful-fs v4.2.9 to avoid the Yarn 2 bug, if possible.

Removing Graceful-fs or patching it would require more spiking to determine viability and would obviously be more expensive. This issue will also present in cypress v10 without intervention.

Footnotes

  1. https://github.com/browserify/resolve/issues/264

  2. https://github.com/cypress-io/cypress/issues/19610

  3. https://github.com/cypress-io/cypress/issues/6377#issuecomment-1011513982

  4. https://github.com/yarnpkg/berry/issues/3234

  5. https://github.com/cypress-io/cypress/blob/develop/packages/server/lib/plugins/child/index.js#L1

  6. https://github.com/cypress-io/cypress/blob/develop/packages/server/lib/util/require_async_child.js#L1

  7. https://dev.to/arcanis/yarn-3-0-performances-esbuild-better-patches-e07

  8. https://github.com/isaacs/node-graceful-fs/pull/220

@ljharb
Copy link

ljharb commented Jan 13, 2022

if yarn 2 is EOL and fixes won't be backported to it, what's the point of trying to support it?

emilyrohrbough
emilyrohrbough previously approved these changes Jan 13, 2022
@emilyrohrbough
Copy link
Member

I vote moving forward with Yarn 3 support and fixing the vite issue. We can make a note we have limited yarn 2 support and don't recommend using Cypress with Yarn 2.

empty commit
@mjhenkes mjhenkes merged commit 3b23887 into develop Jan 18, 2022
@mjhenkes mjhenkes deleted the renovate/graceful-fs-4.x branch January 18, 2022 01:39
@cypress-bot
Copy link
Contributor

cypress-bot bot commented Jan 18, 2022

Released in 9.3.0.

This comment thread has been locked. If you are still experiencing this issue after upgrading to
Cypress v9.3.0, please open a new issue.

@cypress-bot cypress-bot bot locked as resolved and limited conversation to collaborators Jan 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
renovate Triggered by renovatebot type: dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants