This PR adds source-aware data structures for graph paths, path trees, and fetch dependency graphs.
To summarize:
Graph paths have been updated to use condition indexes (which speeds up comparisons, and helps us avoid merging until the end) and condition resolution IDs (which help us better track data dependencies).
Path trees have been updated to accommodate the above changes.
Fetch dependency graphs have similarly been updated to accommodate the above changes, along with changes toward splitting out source-agnostic and source-specific code. This introduces a few traits at the boundary of such code (SourceFetchDependencyGraphApi and SourcePathApi).
This PR adds source-aware data structures for graph paths, path trees, and fetch dependency graphs.
To summarize:
SourceFetchDependencyGraphApi
andSourcePathApi
).