Open mpodwysocki opened 1 month ago
Thank you for the issue, just adding some commentary:
And digging into the code, there are many instances that seem unhelpful as @azure/abort-controller, @azure/core-xml etc do not have circular references.
I believe that the error message is displaying a cycle in the graph, it is just the largest possible cycle. It is listing nodes that are all reachable from each other (a strongly connected component).
Lage is using a DFS to eagerly return the first cycle it encounters so if you cut the @azure-tools/test-credential#build -> @azure/keyvault-keys#build
edge, there would still be a cycle in the graph, just a different one.
I am in agreement that just listing the largest set of nodes that is cyclic isn't very actionable, but I also don't want to omit the full picture. One could invest in cutting an edge expecting it to remove the cycle only to discover that there's another cycle that wasn't reported.
The solution here might be for us to invest in a package graph level visualization as that would give the complete picture.
Verify canary release
Link to code that reproduces this issue
https://github.com/Azure/azure-sdk-for-js/tree/feat/pnpm-migration
What package manager are you using / does the bug impact?
pnpm
What operating system are you using?
Mac
Which canary version will you have in your reproduction?
2.1.3
Describe the Bug
When trying to use turbo when trying to move the Azure SDK for JS to the build system, we get an unhelpful error message
And digging into the code, there are many instances that seem unhelpful as
@azure/abort-controller
,@azure/core-xml
etc do not have circular references.Expected Behavior
Other systems such as Lage give us the following error message which is much more helpful
To Reproduce
Running
turbo build
Additional context
No response