berry: [Bug] Error: Assertion failed: The dependent package could not be found
- I’d be willing to implement a fix
Describe the bug
When I attempt to run yarn
in my workspace I receive this error:
Error: Assertion failed: The dependent package could not be found
The error itself is rather unhelpful and doesn’t tell you what the dependent package was, however I tweaked the source code a little and got it to tell me that in my case it is react-dom@npm:16.8.6
that it is choking on. The dependency tree for react-dom in my workspace is as follows:
- Root
- resolution:
"react-dom": "16.8.6"
- workspaces:
- a
- dependencies
- j
- l
- devDependencies:
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- b
- dependencies
- j
- l
- m
- devDependencies:
"react-dom": "^16.8.6"
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- c
- dependencies
- j
- l
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- d
- dependencies
- j
- l
- devDependencies:
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- e
- dependencies
- j
- l
- devDependencies:
"react-dom": "^16.6.8"
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- f
- dependencies
- j
- l
- devDependencies:
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- g
- dependencies
- j
- l
- devDependencies:
"react-dom": "^16.8.6"
- k
- dependencies
- h
- dependencies
- j
- l
- devDependencies:
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- i
- dependencies
- j
- l
- devDependencies:
"react-dom": "^16.8.6"
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- j
- dependencies:
"react-dom": "^16.9.0"
- dependencies:
- k
- dependencies:
"react-dom": "16.8"
- j
- dependencies:
- l
- dependencies
- j
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- m
- dependencies
- j
- l
- devDependencies:
"react-dom": "^16.8.6"
- k
- peerDependencies:
"react-dom": ">=16.8.0"
- dependencies
- n
- dependencies:
"react-dom": "^16.8.6"
- l
- dependencies:
- o
- dependencies:
"react-dom": "^16.8.6"
- dependencies:
- p
- dependencies:
"react-dom": "^16.8.6"
- a
- b
- c
- d
- e
- f
- g
- h
- i
- dependencies:
- a
- resolution:
This is just a single pass
To Reproduce
Run yarn
in https://github.com/georeith/berry-609
Screenshots
If applicable, add screenshots to help explain your problem.
Environment if relevant (please complete the following information):
- OS: [e.g. OSX, Linux, Windows, …]
- Node version [e.g. 8.15.0, 10.15.1, …]
- Yarn version [e.g. 2.0.0-rc1, …]
Additional context
We have a lot of peer dependencies in the workspace packages that are provided as dependencies by the root package.json
but these spit out a lot of warnings, e.g.,:
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@* requested by @testing-library/react@npm:8.0.1 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide @babel/core@^7.0.0 requested by babel-jest@npm:24.9.0 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@>15 requested by react-div-100vh@npm:0.3.4 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@>15.4.2 <17.0.0 requested by react-intl-tel-input@npm:7.0.1 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.1.1 requested by react-lightweight-tooltip@npm:1.0.0 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.3.2 requested by react-pose@npm:4.0.2 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.8.1 requested by react-select-search@npm:0.9.6 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^15.0.0 || ^16.0.0 requested by react-textfit@npm:1.1.0 [92105] [1a0f7]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [de1d7] [21625] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [803f1]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [c3205] [a250a] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [e75e6]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [dcbbc]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide @types/react@^16.8.0 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide graphql@^14.3.1 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide @types/react@^16.8.0 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide graphql@^14.3.1 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [a1528] [eaa30] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [116f6]
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [6863a] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [6d993] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide @types/react@^16.8.0 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide graphql@^14.3.1 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide @types/react@^16.8.0 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide graphql@^14.3.1 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [83318] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
Is this set up no longer supported?
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 21 (9 by maintainers)
I think I found the problem - we’re doing a delete here, so if a virtualised package is deduplicated while at the same time depending on a peer dependency that will be deduplicated, we’re going to hit the assertion here. I’ll try to make a repro and submit a fix.
Is it the “Docker is super slow problem”? Can you share the timings for each step? Which one is the slowest?
Btw I forgot to mention it, but by running
yarn set version from sources --no-minify
you’ll get a build straight from master, without minification. It’s easier to find out what is crashing and where, and put console.log around.I’ve reduced it down to the following, and after checking the logic it seems coherent with my free-befoe-use theory. Now to write it into code 😄
Thanks a lot! I’ve been able to reproduce the problem, I’ll work to reduce it tomorrow. It seems to be linked to
react-apollo
too 🤔Yep! This will act as the default dependency when the workspace is accessed from its own folder (and it will pick up the right peer dependencies if another workspace depends on it).
Note that you can use
yarn up lodash
to upgradelodash
across all your workspaces at once. It makes it less tedious to manage duplicated dependencies (plusyarn upgrade-interactive
with the@yarnpkg/interactive-tools
plugin).