diff --git a/build/dependencies.props b/build/dependencies.props
index 85681bb4a0..11afdc2485 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -2,85 +2,30 @@
4.5.0-preview2-26403-05
- 2.1.0-preview2-26403-06
2.1.0-preview2-26403-06
2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-05
4.5.0-preview2-26403-05
4.7.0-preview4.5065
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
- 2.1.0-preview2-26403-06
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
1.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 1.2.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
1.6.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
- 4.5.0-preview2-26403-05
4.5.0-preview2-26403-05
4.9.0-preview2-26403-05
4.5.0-preview2-26403-05
@@ -96,20 +41,17 @@
$(KoreBuildVersion)
$(KoreBuildVersion)
- $(KoreBuildVersion)
0.9.9
0.10.13
- 2.4.337
4.2.1
2.1.0-prerelease-02430-04
2.0.0
8.7.0
4.2.1
- 1.0.5
3.1.0
1.10.0
2.1.1
@@ -127,13 +69,6 @@
2.6.1
2.6.1
2.6.1
- 2.6.1
- 2.6.1
- 2.6.1
- 2.6.1
- 2.6.1
- 2.6.1
- 2.6.1
1.7.0
0.2.0-beta-62606-02
1.0.0-rc3-003121
@@ -146,15 +81,12 @@
2.0.0
1.0.1
15.6.1
- 3.0.1
3.0.1
3.0.1
3.0.1
15.0.26606
- 15.6.161-preview
15.6.161-preview
15.6.161-preview
- 2.6.1
7.10.6070
15.3.224
2.0.6142705
@@ -166,11 +98,7 @@
8.0.50727
9.0.30729
7.10.6071
- 15.6.161-preview
- 15.6.161-preview
15.6.161-preview
- 15.6.161-preview
- 7.0.0
1.4.0
1.3.8
1.0.1
@@ -194,7 +122,6 @@
1.0.0
5.2.0
3.1.1
- 6.1.7601.17515
4.3.2
3.1.1
4.3.0
@@ -205,11 +132,7 @@
2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
- 2.7.0-beta3-62512-06
- 2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
- 2.7.0-beta3-62512-06
- 2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
2.7.0-beta3-62512-06
diff --git a/build/external-dependencies.props b/build/external-dependencies.props
index 4d86192b53..1f0d434a39 100644
--- a/build/external-dependencies.props
+++ b/build/external-dependencies.props
@@ -19,10 +19,8 @@
-
-
@@ -30,7 +28,6 @@
-
@@ -42,8 +39,6 @@
-
-
@@ -51,26 +46,15 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -82,20 +66,13 @@
-
-
-
-
-
-
-
@@ -109,11 +86,7 @@
-
-
-
-
@@ -137,36 +110,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -176,51 +119,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/tasks/AnalyzeBuildGraph.cs b/build/tasks/AnalyzeBuildGraph.cs
index 076706eef0..60baca737b 100644
--- a/build/tasks/AnalyzeBuildGraph.cs
+++ b/build/tasks/AnalyzeBuildGraph.cs
@@ -93,15 +93,19 @@ namespace RepoTasks
{
// ensure versions cascade
var buildPackageMap = packages.ToDictionary(p => p.PackageInfo.Id, p => p, StringComparer.OrdinalIgnoreCase);
- var dependencyMap = new Dictionary>(StringComparer.OrdinalIgnoreCase);
+ var dependencyMap = new Dictionary>(StringComparer.OrdinalIgnoreCase);
foreach (var dep in Dependencies)
{
if (!dependencyMap.TryGetValue(dep.ItemSpec, out var versions))
{
- dependencyMap[dep.ItemSpec] = versions = new List();
+ dependencyMap[dep.ItemSpec] = versions = new List();
}
- versions.Add(dep.GetMetadata("Version"));
+ versions.Add(new ExternalDependency
+ {
+ PackageId = dep.ItemSpec,
+ Version = dep.GetMetadata("Version"),
+ });
}
var inconsistentVersions = new List();
@@ -115,15 +119,18 @@ namespace RepoTasks
{
if (!buildPackageMap.TryGetValue(dependency.Key, out var package))
{
+ var idx = -1;
// This dependency is not one of the packages that will be compiled by this run of Universe.
if (!dependencyMap.TryGetValue(dependency.Key, out var externalVersions)
- || !externalVersions.Contains(dependency.Value.Version))
+ || (idx = externalVersions.FindIndex(0, externalVersions.Count, i => i.Version == dependency.Value.Version)) < 0)
{
Log.LogKoreBuildError(
project.FullPath,
KoreBuildErrors.UndefinedExternalDependency,
message: $"Undefined external dependency on {dependency.Key}/{dependency.Value.Version}");
}
+
+ externalVersions[idx].IsReferenced = true;
continue;
}
@@ -174,6 +181,15 @@ namespace RepoTasks
Log.LogError("Package versions are inconsistent. See build log for details.");
}
+ foreach (var versions in dependencyMap.Values)
+ {
+ foreach (var item in versions.Where(i => !i.IsReferenced))
+ {
+ // See https://github.com/aspnet/Universe/wiki/Build-warning-and-error-codes#potentially-unused-external-dependency for details
+ Log.LogMessage(MessageImportance.Normal, $"Potentially unused external dependency: {item.PackageId}/{item.Version}. See https://github.com/aspnet/Universe/wiki/Build-warning-and-error-codes for details.");
+ }
+ }
+
foreach (var repo in reposThatShouldPatch)
{
Log.LogError($"{repo} should not be a 'ShippedRepository'. Version changes in other repositories mean it should be patched to perserve cascading version upgrades.");
@@ -211,13 +227,13 @@ namespace RepoTasks
projectGroup.Add(new Project(proj.PackageId)
- {
- Repository = repo,
- PackageReferences = new HashSet(proj
+ {
+ Repository = repo,
+ PackageReferences = new HashSet(proj
.Frameworks
.SelectMany(f => f.Dependencies.Keys)
.Concat(proj.Tools.Select(t => t.Id)), StringComparer.OrdinalIgnoreCase),
- });
+ });
}
foreach (var packageId in packages.Keys)
diff --git a/build/tasks/BuildGraph/ExternalDependency.cs b/build/tasks/BuildGraph/ExternalDependency.cs
new file mode 100644
index 0000000000..5bdc67d027
--- /dev/null
+++ b/build/tasks/BuildGraph/ExternalDependency.cs
@@ -0,0 +1,12 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace RepoTools.BuildGraph
+{
+ internal class ExternalDependency
+ {
+ public string PackageId { get; set; }
+ public string Version { get; set; }
+ public bool IsReferenced { get; set; }
+ }
+}