Changes to support 'PVP flow' in source-build #6454
Merged
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.
PVP flow is a method of flowing dependencies in source build that only overrides versions of packages that the repo has a declared dependency on in Version.Details.xml. This means that the package flow is closer to the Microsoft's way of building .NET.
To enable this for roslyn-analyzers, we just need to add dependencis on the packages that should be overridden in source build. In this case, it's the compiler toolset package, and the Microsoft.CodeAnalysis package. I also cleaned up the CodeAnalysisVersion property to match the package name, however, I generally avoided adding dependencies that do not participate in source build. For example, System.CommandLine is used only in tooling that is not included in SB. It may be worth adding these dependencies to make it easier to track and update dependencies.
To fully enable PVP flow, the repo project in the VMR will needto set
<PackageVersionPropsFlowType>DependenciesOnly</PackageVersionPropsFlowType>once these changes flow in.