Skip to content

Commit d9f3f83

Browse files
authored
Remove PackageSpec.Dependencies (#6830)
1 parent d94327d commit d9f3f83

27 files changed

Lines changed: 182 additions & 545 deletions

src/NuGet.Core/NuGet.Build.Tasks.Pack/PackTaskLogic.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -924,10 +924,7 @@ private void InitializePackageDependencies(
924924
continue;
925925
}
926926

927-
// First, add each of the generic package dependencies
928-
AddDependencies(assetsFile.PackageSpec.Dependencies, dependenciesByFramework, framework, assetsFile, packageSpecificNoWarnProperties);
929-
930-
// Next, the framework-specific dependencies
927+
// First, the framework-specific dependencies
931928
var newFrameworkDependencies = AddDependencies(framework.Dependencies, dependenciesByFramework, framework, assetsFile, packageSpecificNoWarnProperties);
932929
framework = new TargetFrameworkInformation(framework) { Dependencies = newFrameworkDependencies };
933930

src/NuGet.Core/NuGet.Commands/RestoreCommand/Diagnostics/UnexpectedDependencyMessages.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -315,18 +315,8 @@ private static bool IsNonFloatingPackageDependency(this LibraryDependency depend
315315
private static string[] GetDependencyTargetGraphs(PackageSpec spec, LibraryDependency dependency)
316316
{
317317
var infos = new List<TargetFrameworkInformation>();
318-
319-
if (spec.Dependencies.Contains(dependency))
320-
{
321-
// If the dependency is top level add it for all tfms
322-
infos.AddRange(spec.TargetFrameworks);
323-
}
324-
else
325-
{
326-
// Add all tfms where the dependency is found
327-
infos.AddRange(spec.TargetFrameworks.Where(e => e.Dependencies.Contains(dependency)));
328-
}
329-
318+
// Add all tfms where the dependency is found
319+
infos.AddRange(spec.TargetFrameworks.Where(e => e.Dependencies.Contains(dependency)));
330320
// Convert framework to target graph name.
331321
return infos.Select(e => e.FrameworkName.ToString()).ToArray();
332322
}

src/NuGet.Core/NuGet.Commands/RestoreCommand/LockFileBuilder.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -393,13 +393,6 @@ private static string GetFallbackFrameworkString(NuGetFramework framework)
393393

394394
private static void AddProjectFileDependenciesForSpec(PackageSpec project, LockFile lockFile)
395395
{
396-
// Use empty string as the key of dependencies shared by all frameworks
397-
lockFile.ProjectFileDependencyGroups.Add(new ProjectFileDependencyGroup(
398-
string.Empty,
399-
project.Dependencies
400-
.Select(group => group.LibraryRange.ToLockFileDependencyGroupString())
401-
.OrderBy(group => group, StringComparer.Ordinal)));
402-
403396
foreach (var frameworkInfo in project.TargetFrameworks
404397
.OrderBy(framework => framework.FrameworkName.ToString(),
405398
StringComparer.Ordinal))
@@ -421,7 +414,6 @@ private static void AddProjectFileDependenciesForPackageReference(PackageSpec pr
421414
StringComparer.Ordinal))
422415
{
423416
var dependencies = new List<LibraryRange>();
424-
dependencies.AddRange(project.Dependencies.Select(e => e.LibraryRange));
425417
dependencies.AddRange(frameworkInfo.Dependencies.Select(e => e.LibraryRange));
426418

427419
var targetGraph = targetGraphs.SingleOrDefault(graph =>

src/NuGet.Core/NuGet.Commands/RestoreCommand/Logging/PackageSpecificWarningProperties.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,6 @@ public static PackageSpecificWarningProperties CreatePackageSpecificWarningPrope
3333
// NuGetLogCode -> LibraryId -> Set of Frameworks.
3434
var warningProperties = new PackageSpecificWarningProperties();
3535

36-
foreach (var dependency in packageSpec.Dependencies)
37-
{
38-
foreach (var framework in packageSpec.TargetFrameworks)
39-
{
40-
warningProperties.AddRangeOfCodes(dependency.NoWarn, dependency.Name, framework.FrameworkName);
41-
}
42-
}
43-
4436
foreach (var framework in packageSpec.TargetFrameworks)
4537
{
4638
foreach (var dependency in framework.Dependencies)
@@ -64,11 +56,6 @@ public static PackageSpecificWarningProperties CreatePackageSpecificWarningPrope
6456
// NuGetLogCode -> LibraryId -> Set of Frameworks.
6557
var warningProperties = new PackageSpecificWarningProperties();
6658

67-
foreach (var dependency in packageSpec.Dependencies)
68-
{
69-
warningProperties.AddRangeOfCodes(dependency.NoWarn, dependency.Name, framework);
70-
}
71-
7259
var targetFrameworkInformation = packageSpec.GetTargetFramework(framework);
7360

7461
foreach (var dependency in targetFrameworkInformation.Dependencies)

src/NuGet.Core/NuGet.Commands/RestoreCommand/Utility/IncludeFlagUtils.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,11 @@ internal static Dictionary<string, LibraryIncludeFlags> FlattenDependencyTypes(
3838
FlattenDependencyTypesUnified(targetGraph, result);
3939

4040
// Override flags for direct dependencies
41-
var directDependencies = spec.Dependencies.ToList();
42-
43-
// Add dependencies defined under the framework node
4441
var specFramework = spec.GetTargetFramework(targetGraph.Framework);
45-
if (specFramework?.Dependencies != null)
46-
{
47-
directDependencies.AddRange(specFramework.Dependencies);
48-
}
4942

5043
// Override the flags for direct dependencies. This lets the
5144
// user take control when needed.
52-
foreach (var dependency in directDependencies)
45+
foreach (var dependency in specFramework?.Dependencies)
5346
{
5447
LibraryIncludeFlags includeType = IsDependencyPruned(dependency, specFramework?.PackagesToPrune) ?
5548
LibraryIncludeFlags.None :

src/NuGet.Core/NuGet.Commands/RestoreCommand/Utility/MSBuildRestoreUtility.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,8 +632,7 @@ private static bool AddDependencyIfNotExist(PackageSpec spec, string targetAlias
632632
var frameworkInfo = spec.TargetFrameworks[index];
633633
var dependencies = frameworkInfo.Dependencies;
634634

635-
if (!spec.Dependencies
636-
.Concat(dependencies)
635+
if (!dependencies
637636
.Select(d => d.Name)
638637
.Contains(dependency.Name, StringComparer.OrdinalIgnoreCase))
639638
{

src/NuGet.Core/NuGet.Commands/RestoreCommand/Utility/SpecValidationUtility.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ private static void ValidateProjectSpecOther(PackageSpec spec, IEnumerable<strin
315315
var message = string.Format(
316316
CultureInfo.CurrentCulture,
317317
Strings.PropertyNotAllowed,
318-
nameof(spec.Dependencies));
318+
"dependencies");
319319

320320
throw RestoreSpecException.Create(message, files);
321321
}
@@ -409,8 +409,7 @@ private static void ValidateProjectMSBuildMetadata(PackageSpec spec, IEnumerable
409409

410410
private static IEnumerable<LibraryDependency> GetAllDependencies(PackageSpec spec)
411411
{
412-
return spec.Dependencies
413-
.Concat(spec.TargetFrameworks.SelectMany(f => f.Dependencies));
412+
return spec.TargetFrameworks.SelectMany(f => f.Dependencies);
414413
}
415414
}
416415
}

src/NuGet.Core/NuGet.Commands/RestoreCommand/Utility/ToolRestoreUtility.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public static PackageSpec GetSpec(string projectFilePath, string id, VersionRang
2929
{
3030
Name = name, // make sure this package never collides with a dependency
3131
FilePath = projectFilePath,
32-
Dependencies = new List<LibraryDependency>(),
3332
TargetFrameworks =
3433
{
3534
new TargetFrameworkInformation
@@ -161,7 +160,7 @@ public static LibraryDependency GetToolDependencyOrNullFromSpec(PackageSpec spec
161160
return null;
162161
}
163162

164-
return spec.Dependencies.Concat(spec.TargetFrameworks.SelectMany(e => e.Dependencies)).SingleOrDefault();
163+
return spec.TargetFrameworks.SelectMany(e => e.Dependencies).SingleOrDefault();
165164
}
166165

167166
public static LockFileTargetLibrary GetToolTargetLibrary(LockFile toolLockFile, string toolId)

src/NuGet.Core/NuGet.Commands/Utility/Extensions.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,14 @@ internal static class Extensions
1919
public static ISet<LibraryDependency> GetAllPackageDependencies(this PackageSpec project)
2020
{
2121
// Remove non-package dependencies such as framework assembly references.
22-
return new HashSet<LibraryDependency>(
23-
project.Dependencies.Concat(project.TargetFrameworks.SelectMany(e => e.Dependencies))
22+
return new HashSet<LibraryDependency>(project.TargetFrameworks.SelectMany(e => e.Dependencies)
2423
.Where(e => e.LibraryRange.TypeConstraintAllows(LibraryDependencyTarget.Package)));
2524
}
2625

2726
public static ISet<LibraryDependency> GetPackageDependenciesForFramework(this PackageSpec project, NuGetFramework framework)
2827
{
2928
// Remove non-package dependencies such as framework assembly references.
30-
return new HashSet<LibraryDependency>(
31-
project.Dependencies.Concat(project.GetTargetFramework(framework).Dependencies)
29+
return new HashSet<LibraryDependency>(project.GetTargetFramework(framework).Dependencies
3230
.Where(e => e.LibraryRange.TypeConstraintAllows(LibraryDependencyTarget.Package)));
3331
}
3432

src/NuGet.Core/NuGet.ProjectModel/GlobalSuppressions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
[assembly: SuppressMessage("Build", "CA2227:Change 'ToolsAssemblies' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.LockFileTargetLibrary.ToolsAssemblies")]
5858
[assembly: SuppressMessage("Build", "CA2227:Change 'Targets' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.PackagesLockFile.Targets")]
5959
[assembly: SuppressMessage("Build", "CA2227:Change 'Dependencies' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.PackagesLockFileTarget.Dependencies")]
60-
[assembly: SuppressMessage("Build", "CA2227:Change 'Dependencies' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.PackageSpec.Dependencies")]
6160
[assembly: SuppressMessage("Build", "CA2227:Change 'ConfigFilePaths' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.ProjectRestoreMetadata.ConfigFilePaths")]
6261
[assembly: SuppressMessage("Build", "CA2227:Change 'FallbackFolders' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.ProjectRestoreMetadata.FallbackFolders")]
6362
[assembly: SuppressMessage("Build", "CA2227:Change 'Files' to be read-only by removing the property setter.", Justification = "<Pending>", Scope = "member", Target = "~P:NuGet.ProjectModel.ProjectRestoreMetadata.Files")]

0 commit comments

Comments
 (0)