diff --git a/build/dependencies.props b/build/dependencies.props index 53c3a9eb35..2464ada95d 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -1,36 +1,9 @@  - + - 4.5.0 - 2.1.0 2.1.0 2.1.0 - 4.5.0 - 4.7.0 - 4.5.0 - 1.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 1.6.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.5.0 - 4.9.0 - 4.5.0 - 4.5.0 @@ -55,6 +28,7 @@ 4.2.1 3.1.0 1.10.0 + 1.7.3.4 2.1.1 2.2.1 5.2.6 @@ -70,9 +44,11 @@ 2.8.0 2.8.0 2.8.0 + 4.5.0 1.7.0 0.2.0-beta-62606-02 1.0.0-rc3-003121 + 2.1.0 1.1.0 3.14.2 5.2.0 @@ -101,14 +77,15 @@ 7.10.6071 15.6.161-preview 1.4.0 + 4.5.0 1.3.8 1.0.1 4.7.49 - 1.7.3.4 1.6.1 2.0.3 1.0.1 11.0.2 + 4.7.0 12.2.1100 2.0.1 6.0.1 @@ -121,12 +98,35 @@ 1.2.4 1.1.92 1.0.0 + 4.5.0 + 1.5.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.5.0 5.2.0 3.1.1 + 4.5.0 + 4.5.0 4.3.2 + 4.5.0 + 4.5.0 + 4.5.0 3.1.1 4.3.0 + 1.6.0 + 4.5.0 4.3.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.5.0 + 4.9.0 + 4.5.0 + 4.5.0 1.3.7 9.0.1 2.8.0 diff --git a/build/external-dependencies.props b/build/external-dependencies.props index fe426974c5..30d47c4ccf 100644 --- a/build/external-dependencies.props +++ b/build/external-dependencies.props @@ -244,7 +244,7 @@ - + diff --git a/build/repo.targets b/build/repo.targets index 8a6a62e73f..30104914a8 100644 --- a/build/repo.targets +++ b/build/repo.targets @@ -202,6 +202,10 @@ + + diff --git a/build/tasks/CheckVersionOverrides.cs b/build/tasks/CheckVersionOverrides.cs new file mode 100644 index 0000000000..ad75aa8b2b --- /dev/null +++ b/build/tasks/CheckVersionOverrides.cs @@ -0,0 +1,45 @@ +// 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. + +using System; +using System.Linq; +using Microsoft.Build.Construction; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +namespace RepoTasks +{ + public class CheckVersionOverrides : Task + { + [Required] + public string DotNetPackageVersionPropsPath { get; set; } + + [Required] + public string DependenciesFile { get; set; } + + public override bool Execute() + { + Log.LogMessage($"Verifying versions set in {DotNetPackageVersionPropsPath} match expected versions set in {DependenciesFile}"); + + var versionOverrides = ProjectRootElement.Open(DotNetPackageVersionPropsPath); + var dependencies = ProjectRootElement.Open(DependenciesFile); + var pinnedVersions = dependencies.PropertyGroups + .Where(p => !string.Equals("Package Versions: Auto", p.Label)) + .SelectMany(p => p.Properties) + .ToDictionary(p => p.Name, p => p.Value, StringComparer.OrdinalIgnoreCase); + + foreach (var prop in versionOverrides.Properties) + { + if (pinnedVersions.TryGetValue(prop.Name, out var pinnedVersion)) + { + if (!string.Equals(pinnedVersion, prop.Value, StringComparison.OrdinalIgnoreCase)) + { + Log.LogError($"The imported package version props file conflicts with a pinned version variable {prop.Name}. Imported value: {prop.Value}, Pinned value: {pinnedVersion}"); + } + } + } + + return !Log.HasLoggedErrors; + } + } +} diff --git a/build/tasks/RepoTasks.tasks b/build/tasks/RepoTasks.tasks index 1122b7026d..336e4beeda 100644 --- a/build/tasks/RepoTasks.tasks +++ b/build/tasks/RepoTasks.tasks @@ -6,8 +6,9 @@ - + +