Skip to content
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

DTB only returns top-level package references #11358

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c65e15f
Remove unused property setters
drewnoakes Mar 17, 2020
4148ba5
Update documentation
drewnoakes Mar 17, 2020
ce14bf9
Simplify lazy initialization
drewnoakes Mar 17, 2020
1e77c0a
Make methods static
drewnoakes Mar 17, 2020
e71eec1
Reduce string allocations
drewnoakes Mar 17, 2020
6a54585
Avoid array covariance
drewnoakes Mar 17, 2020
69d73a1
Remove redundant assignments
drewnoakes Mar 17, 2020
046b8e9
Array cannot be null or have negative item length
drewnoakes Mar 17, 2020
4b9f980
Inline out var declarations
drewnoakes Mar 17, 2020
2c9da2b
Reduce constructor visibilities
drewnoakes Mar 17, 2020
b556fab
Use local function
drewnoakes Mar 17, 2020
4f69a00
Formatting
drewnoakes Mar 17, 2020
23256d3
Remove diagnostics from PreprocessPackageDependenciesDesignTime
drewnoakes Mar 19, 2020
4535ef6
Documentation
drewnoakes Apr 1, 2020
dfcbaf3
Make local functions static
drewnoakes Apr 1, 2020
a3971a1
Convert property to local variable
drewnoakes Apr 1, 2020
0343967
Replace O(N) with O(1) lookup
drewnoakes Apr 1, 2020
10fce0c
Reduce allocation when applying item metadata
drewnoakes Apr 2, 2020
78088a7
Remove assemblies from PreprocessPackageDependenciesDesignTime
drewnoakes Apr 2, 2020
82c9d0e
Remove non-top-level packages from PreprocessPackageDependenciesDesig…
drewnoakes Apr 2, 2020
4632176
Filter DTB packages by TargetFrameworkMoniker
drewnoakes Apr 2, 2020
aa3947c
Don't set IsTopLevelDependency metadata
drewnoakes Apr 2, 2020
455892a
Don't set Type metadata
drewnoakes Apr 2, 2020
b286e4b
Require Name for DTB resolved package reference items
drewnoakes Apr 2, 2020
24672f7
Extract var for common subexpression
drewnoakes Apr 2, 2020
a515ab9
Update unit tests for PreprocessPackageDependenciesDesignTime
drewnoakes Apr 3, 2020
f868606
Remove ReportAssetsLogMessages task
drewnoakes May 11, 2020
88f514f
Make methods static
drewnoakes May 11, 2020
0f1b57e
Discard unused out parameters
drewnoakes May 11, 2020
d1a5111
Inline methods
drewnoakes May 11, 2020
28e7900
ResolvePackageDependencies produces fewer outputs
drewnoakes May 11, 2020
e5e26b7
Document property value
drewnoakes May 13, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions src/Tasks/Common/DiagnosticMessageSeverity.cs

This file was deleted.

58 changes: 0 additions & 58 deletions src/Tasks/Common/DiagnosticsHelper.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public class GivenAResolvePackageDependenciesTask

[Theory]
[MemberData(nameof(ItemCounts))]
public void ItRaisesLockFileToMSBuildItems(string projectName, int [] counts)
public void ItRaisesLockFileToMSBuildItems(string projectName, int[] counts, bool emitLegacyAssetsFileItems)
{
var task = GetExecutedTaskFromPrefix(projectName);
var task = GetExecutedTaskFromPrefix(projectName, out _, emitLegacyAssetsFileItems);

task.PackageDefinitions .Count().Should().Be(counts[0]);
task.FileDefinitions .Count().Should().Be(counts[1]);
Expand All @@ -39,22 +39,42 @@ public static IEnumerable<object[]> ItemCounts
{
new object[] {
"dotnet.new",
new int[] { 110, 2536, 1, 846, 73 }
new int[] { 110, 2536, 1, 846, 73 },
true
},
new object[] {
"dotnet.new",
new int[] { 110, 0, 0, 846, 0 },
false
},
new object[] {
"simple.dependencies",
new int[] { 113, 2613, 1, 878, 94 },
true
},
new object[] {
"simple.dependencies",
new int[] { 113, 2613, 1, 878, 94}
new int[] { 113, 0, 0, 878, 0 },
false
},
};
}
}

[Fact]
public void ItOmitsLegacyItemsByDefault()
{
var task = new ResolvePackageDependencies();

task.EmitLegacyAssetsFileItems.Should().Be(false);
}

[Theory]
[InlineData("dotnet.new")]
[InlineData("simple.dependencies")]
public void ItAssignsTypeMetaDataToEachDefinition(string projectName)
{
var task = GetExecutedTaskFromPrefix(projectName);
var task = GetExecutedTaskFromPrefix(projectName, out _);

Func<ITaskItem[], bool> allTyped =
(items) => items.All(x => !string.IsNullOrEmpty(x.GetMetadata(MetadataKeys.Type)));
Expand Down Expand Up @@ -129,7 +149,7 @@ public void ItAssignsExpectedTopLevelDependencies()
}
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

var topLevels = task.PackageDependencies
.Where(t => string.IsNullOrEmpty(t.GetMetadata(MetadataKeys.ParentPackage)));
Expand Down Expand Up @@ -166,7 +186,7 @@ public void ItAssignsExpectedTopLevelDependenciesFromAllTargets()
}
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

var topLevels = task.PackageDependencies
.Where(t => string.IsNullOrEmpty(t.GetMetadata(MetadataKeys.ParentPackage)));
Expand Down Expand Up @@ -199,7 +219,7 @@ public void ItAssignsTargetDefinitionMetadata()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

task.TargetDefinitions.Count().Should().Be(2);

Expand Down Expand Up @@ -338,7 +358,7 @@ public void ItAssignsFileDefinitionMetadata()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

IEnumerable<ITaskItem> fileDefns;

Expand Down Expand Up @@ -385,7 +405,7 @@ public void ItAssignsFileDependenciesMetadata()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

IEnumerable<ITaskItem> fileDeps;

Expand Down Expand Up @@ -426,7 +446,7 @@ public void ItRaisesAssetPropertiesToFileDependenciesMetadata()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

IEnumerable<ITaskItem> fileDeps;

Expand Down Expand Up @@ -474,7 +494,7 @@ public void ItExcludesPlaceholderFiles()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

task.FileDefinitions
.Any(t => t.GetMetadata(MetadataKeys.Path) == "lib/file/Z.dll")
Expand Down Expand Up @@ -524,7 +544,8 @@ public void ItAddsAnalyzerMetadataAndFileDependencies()
{
ProjectAssetsFile = lockFile.Path,
ProjectPath = null,
ProjectLanguage = projectLanguage // set language
ProjectLanguage = projectLanguage, // set language
EmitLegacyAssetsFileItems = true
};
task.Execute().Should().BeTrue();

Expand Down Expand Up @@ -608,7 +629,8 @@ public void ItFiltersAnalyzersByProjectLanguage()
{
ProjectAssetsFile = lockFile.Path,
ProjectPath = null,
ProjectLanguage = projectLanguage // set language
ProjectLanguage = projectLanguage, // set language
EmitLegacyAssetsFileItems = true
};
task.Execute().Should().BeTrue();

Expand Down Expand Up @@ -677,7 +699,7 @@ public void ItUsesResolvedPackageVersionFromSameTarget()
projectFileDependencyGroups: new string[] { ProjectGroup, NETCoreGroup, NETCoreOsxGroup }
);

var task = GetExecutedTaskFromContents(lockFileContent);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

var chiDeps = task.PackageDependencies
.Where(t => t.ItemSpec.StartsWith("Dep.Lib.Chi"));
Expand Down Expand Up @@ -749,7 +771,7 @@ public void ItMarksTransitiveProjectReferences()
}
);

var task = GetExecutedTaskFromContents(lockFileContent, out var lockFile);
var task = GetExecutedTaskFromContents(lockFileContent, out _);

task.PackageDependencies.Count().Should().Be(6);

Expand All @@ -766,44 +788,33 @@ public void ItMarksTransitiveProjectReferences()
others.Where(t => t.ItemSpec == "ProjF/1.0.0").Count().Should().Be(1);
}

private ResolvePackageDependencies GetExecutedTaskFromPrefix(string lockFilePrefix)
{
LockFile lockFile;
return GetExecutedTaskFromPrefix(lockFilePrefix, out lockFile);
}

private ResolvePackageDependencies GetExecutedTaskFromPrefix(string lockFilePrefix, out LockFile lockFile)
private static ResolvePackageDependencies GetExecutedTaskFromPrefix(string lockFilePrefix, out LockFile lockFile, bool emitLegacyAssetsFileItems = true)
{
lockFile = TestLockFiles.GetLockFile(lockFilePrefix);
return GetExecutedTask(lockFile);
}

private ResolvePackageDependencies GetExecutedTaskFromContents(string lockFileContents)
{
LockFile lockFile;
return GetExecutedTaskFromContents(lockFileContents, out lockFile);
return GetExecutedTask(lockFile, emitLegacyAssetsFileItems);
}

private ResolvePackageDependencies GetExecutedTaskFromContents(string lockFileContents, out LockFile lockFile)
private static ResolvePackageDependencies GetExecutedTaskFromContents(string lockFileContents, out LockFile lockFile, bool emitLegacyAssetsFileItems = true)
{
lockFile = TestLockFiles.CreateLockFile(lockFileContents);
return GetExecutedTask(lockFile);
return GetExecutedTask(lockFile, emitLegacyAssetsFileItems);
}

private ResolvePackageDependencies GetExecutedTask(LockFile lockFile)
private static ResolvePackageDependencies GetExecutedTask(LockFile lockFile, bool emitLegacyAssetsFileItems)
{
var resolver = new MockPackageResolver(_packageRoot);

var task = new ResolvePackageDependencies(lockFile, resolver)
{
ProjectAssetsFile = lockFile.Path,
ProjectPath = _projectPath,
ProjectLanguage = null
ProjectLanguage = null,
EmitLegacyAssetsFileItems = emitLegacyAssetsFileItems
};

task.Execute().Should().BeTrue();

return task;
}
}
}
}
Loading