-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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(nm): Properly hoist nested workspaces #3438
Conversation
a92490c
to
603b82a
Compare
e6a6639
to
9ff124d
Compare
5e9bfb3
to
a39c4cc
Compare
Noticed that anonymous workspaces became broken, back to draft |
Disregard, I have confused Yarn with nested portals, I'm not sure how they should work at all |
Noticed self-check violation in one of my projects, investigating... |
@nicolo-ribaudo Yes, this PR solves various cases with workspace nesting, by taking into account their nesting on the file system, which might be very different from nesting in the dependency graph. It needs more testing, because changes are not trivial |
…stedFrom to the parent of each node
@nicolo-ribaudo I have checked this PR over several repos I have in addition to the integration and E2E tests we have i n the code, all my repos were installed correctly. The PR is ready for review. |
@nicolo-ribaudo Seems the commit referencing this PR from your repo is failing the CI. Do you know if the problem is on our side or on your side? |
The failure is not related to this PR: it's either a bug in the constraints plugin or (way more likely) I did a mistake while rebasing that PR. I'll check later today. |
This reverts commit ab203be.
What's the problem this PR addresses?
Fixes #3429 by taking into account physical location on the filesystem of nested workspaces and not only their place in the dependency graph.
Avoids creating self-referencing symlinks for anonymous workspaces.
How did you fix it?
The place of nested workspaces on the file system are tracked now. The hoisting rule has been added to disallow workspace hoisting (because the workspace directory cannot be moved on the file system), while still allowing hoisting workspace dependencies freely.
Checklist