Manually revert 87adc3f "Fix default features control by top level manifest (#1331)"#1889
Manually revert 87adc3f "Fix default features control by top level manifest (#1331)"#1889Thomas1664 wants to merge 6 commits intomicrosoft:mainfrom
Conversation
Note that I removed the boost-test dependency. I verified that the original bug could still be reproduced.
|
Please note that this PR would again cause the bug that #1331 was trying to fix: microsoft/vcpkg#35694 (comment) The failure mode there is that if you install a feature A of the top-level manifest that depends on another feature B of the top level manifest and feature B depends on a port with default features, vcpkg would ignore that you disabled default features when referencing that dependency in feature B. To get the intended behavior, you would need to also disable default features in feature A when referencing feature B - even if you don't have any default features in the top level manifest. IMO, the original PR did not fix this issue. It just wasn't visible because the top level manifest wouldn't (fully) participate in the dependeny graph. |
|
@BillyONeal I wouldn't recommend merging this as is because this would pull in more additional dependencies for manifest users which might be unexpected and cause problems. Instead, the underlying issue with overwriting default features false in nested top level manifest features should be fixed. Unfortunately, I don't have time to address this. Feel free to push to this PR to make these changes. |
|
Closing in favor of #1890 |
Fixes microsoft/vcpkg#48892
I think the root cause of the issue was that the default features of the top level manifest were initially unknown and the graph was then stuck resolving the circular dependency between the individual features. This issue is now avoided because all features of the top level manifest are now already known beforehand.
I also added an e2e test based on the manifest from the original bug report. Note that I removed the boost-test dependency. I verified that the original bug could still be reproduced.