-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Restore Target‐Based Resolution #3006
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
The head ref may contain hidden characters: "sdg\u2010resolution"
Conversation
@swift-ci please test |
@swift-ci please smoke test |
Thanks, @SDGGiesbrecht! I will do some additional testing on this. |
The CI issues look unrelated. Trying again. |
@swift-ci please smoke test |
The test error is related to the ToolSupportCore change:
|
I think just rerunning the test with latest toolsupportcore should address that. Restarting. |
@swift-ci please test |
@swift-ci please smoke test |
1 similar comment
@swift-ci please smoke test |
@swift-ci please test |
let name: String | ||
let filter: ProductFilter | ||
} | ||
let allManifestsWithPossibleDuplicates = try! topologicalSort(inputManifests.map({ KeyedPair(($0, ProductFilter.everything), key: NameAndFilter(name: $0.name, filter: .everything)) })) { node in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a bit surprised that topologicalSort()
would return duplicates. That might be something to look into as well (not necessarily as part of this PR). I might be misreading what the underlying code does here, but is the change in this PR a workaround of something that should not have returned duplicates in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
topologicalSort()
is working just fine. The duplicates here are because each node in the sort is a package–filter pair. (PackageA using ProductB ≠ PackageA using ProductC) Later, after the topological sort, the map
operation drops the filter, keeping only the raw manifest. This removes the difference between some nodes. (PackageA = PackageA) Operations that follow are preconditioned such that each manifest should occur only once in the array.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, got it. Thanks for clarifying it!
Thanks a lot for the PR, @SDGGiesbrecht, it looks good to me in principle. However, it doesn't fix some of the issues we have been seeing, I will try to distill those into examples we can share. Would you mind removing the revert from this PR so we can merge this fix independently? |
I reverted the reverts. |
@swift-ci please smoke test |
7‐day ping. Do I still need to do something with this, or is the wait due to Apple internals? |
I think this just needs to be merged. Maybe a commit squashing to remove the "Resolve Conflicts" commits? |
Sorry, I just forgot to merge this after the smoke tests finished. |
Continued from #2998, which temporarily disabled them.
@neonichu