Clarify "default" feature#298
Merged
ras0219-msft merged 10 commits intomicrosoft:mainfrom Jan 10, 2022
Merged
Conversation
Collaborator
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Collaborator
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Contributor
strega-nil-ms
left a comment
There was a problem hiding this comment.
minor stuff, but mostly looks really good! Thanks @ras0219-msft!
0a5af2c to
81bf32f
Compare
c787df0 to
5ba94ea
Compare
strega-nil-ms
approved these changes
Jan 10, 2022
This was referenced Jan 20, 2022
ras0219-msft
added a commit
to ras0219-msft/vcpkg-tool
that referenced
this pull request
Jan 24, 2022
PR microsoft#298 introduced a regression during ABI calculation for packages that do not have features. It removed the implicit entry "core" from InstallPlanAction::feature_list, which meant that packages without features would end up with an empty ABI tag for their features list. We consider an empty ABI tag in the features list to indicate that a value could not be calculated and therefore that the package cannot be cached (no ABI). This then resulted in a crash during CI which assumes that all packages have ABIs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR extracts out core refactoring exposed by #295. Specifically, this PR seeks to clarify where in the code we are using "parsed-notation" (no features implies defaults,
[core]implies not defaults) versus internal notation ([default]implies defaults).The primary change to accomplish this is the introduction of
struct InternalFeatureSet : std::vector<std::string>to denote when this handoff occurs. By type:Dependencyis parse-notationParsedQualifiedSpecifieris parse-notationFullPackageSpecis internal-notationFeatureSpecis internal-notationTherefore, the core conversions to internal notation happen as part of
Dependency::to_full_spec()andParsedQualifiedSpecifier::to_full_spec()(shared vianormalize_feature_list()).filter_dependencies()usesDependency::to_full_spec().