-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add PackageDependenciesDesignTime to cache assets file #28405
Conversation
0f4c1e7
to
d383ef0
Compare
src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAResolvePackageDependenciesTask.cs
Show resolved
Hide resolved
8a2df1e
to
2bb5447
Compare
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.
See comments for ways we should be able to eliminate a bunch of the code here and process less data.
src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets
Show resolved
Hide resolved
4cbdba9
to
3ea4ca2
Compare
src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets
Outdated
Show resolved
Hide resolved
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.
This is looking good, thanks.
Have you made any progress with @drewnoakes on running the project system tests with these changes?
Also do you have any perf testing results? It would be great to be able to present those (or a demo) at the next team showcase.
src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.PackageDependencyResolution.targets
Show resolved
Hide resolved
3e72d15
to
5abc8f9
Compare
a78a033
to
8ad26ff
Compare
8ad26ff
to
f113f2e
Compare
string projectAssetsJsonPath = Path.GetTempFileName(); | ||
string projectCacheAssetsJsonPath = Path.GetTempFileName(); |
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.
The test should delete both of these files when it completes, to avoid polluting the temp dir.
The same is true for other tests below.
@marcin-krystianc I see that the repository https://github.com/marcin-krystianc/TestSolutions/tree/master/LargeAppWithPrivatePackagesCentralisedNGBVRemoved does not contain any readme file nor a license. We would like to know if we are allowed to share this with folks. |
Hi @ocallesp, I'll add some readme and license information, but of course it is ok to share it with others. |
@marcin-krystianc I appreciate your willingness to share your repository with others. |
Fixes #27738
Implements reading the PackageDefinitions and
PackageDependencies
items inResolvePackageAssets
, so thatResolvePackageDependencies
doesn't need to be called at all unlessEmitLegacyAssetsFileItems
is true. This improve incremental build perf and also significantly improve the design time build perf (23%) for this large solution scenario by saving to the cache file the same items generated fromPreprocessPackageDependenciesDesignTime
.Note:
This implementation was taken from
PreprocessPackageDependenciesDesignTime.ExecuteCore