[10/x][move-package/lock] Integrate DependencyGraph into ResolvedGraph
Integrate DependencyGraph and ResolvingTable into the creation of ResolvedGraph. This change replaces the recursive dependency traversal logic of ResolutionGraph that DependencyGraph was based on with a linear traversal of the package's transitive dependencies, extracted from an existing DependencyGraph.
This is part of the preparation for integrating third-party package managers into the package resolution process: They can now inject further transitive dependencies into the DependencyGraph which will be fetched during resolution to create the ResolvedGraph.
Although some error message wording changes (particularly where it previously relied on recursive calls for building up error context), the logic is otherwise unchanged.
Test Plan
Existing test cases:
move$ cargo-nextest nextest run -E 'package(move-cli) | package(move-package)'
Stack
- #741
- #745
- #753
- #754
- #759
- #760
- #765
- #784
- #785