dependabot-nuget 0.287.0 → 0.289.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/helpers/lib/NuGetUpdater/.gitignore +1 -0
- data/helpers/lib/NuGetUpdater/Directory.Build.targets +17 -0
- data/helpers/lib/NuGetUpdater/Directory.Packages.props +26 -17
- data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Packaging/NuGet.Packaging.csproj +0 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +7 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +3 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +88 -47
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/AnalyzeWorker.cs +31 -16
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/CompatabilityChecker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/RequirementArrayConverter.cs +39 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/VersionFinder.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Clone/ShellGitCommandHandler.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyDiscovery.props +7 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyDiscovery.targets +10 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +64 -53
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DotNetToolsJsonDiscovery.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/GlobalJsonDiscovery.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/PackagesConfigDiscovery.cs +17 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/PackagesConfigDiscoveryResult.cs +3 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/ProjectDiscoveryResult.cs +3 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +429 -12
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/WorkspaceDiscoveryResult.cs +0 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +12 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/JsonBuildFile.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/CompatabilityChecker.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/NuGetUpdater.Core.csproj +7 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Job.cs +23 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +43 -58
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/TargetFrameworkReporter.targets +13 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/BindingRedirectManager.cs +13 -43
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/DotNetToolsJsonUpdater.cs +4 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/GlobalJsonUpdater.cs +5 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/LockFileUpdater.cs +3 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +40 -33
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs +12 -11
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +16 -12
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/CollectionExtensions.cs +17 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ConsoleLogger.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs +19 -19
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ILogger.cs +11 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +74 -20
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs +1 -17
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathComparer.cs +31 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs +46 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ProjectHelper.cs +96 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +135 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +71 -38
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +66 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Proj.cs +11 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +808 -222
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +477 -97
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/ExpectedDiscoveryResults.cs +5 -9
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/SdkProjectDiscoveryTests.cs +494 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/MockNuGetPackage.cs +46 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/NuGetUpdater.Core.Test.csproj +0 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +401 -77
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +35 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatedDependencyListTests.cs +60 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TemporaryDirectory.cs +3 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestLogger.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/BindingRedirectsTests.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +8 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackageReference.cs +40 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/AssertEx.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/LinuxOnlyAttribute.cs +12 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +8 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/PathHelperTests.cs +49 -3
- data/lib/dependabot/nuget/analysis/analysis_json_reader.rb +3 -1
- data/lib/dependabot/nuget/file_fetcher.rb +12 -393
- data/lib/dependabot/nuget/file_parser.rb +23 -54
- data/lib/dependabot/nuget/file_updater.rb +21 -16
- data/lib/dependabot/nuget/native_discovery/native_dependency_file_discovery.rb +2 -9
- data/lib/dependabot/nuget/native_discovery/native_discovery_json_reader.rb +183 -80
- data/lib/dependabot/nuget/native_discovery/native_project_discovery.rb +25 -3
- data/lib/dependabot/nuget/native_discovery/native_workspace_discovery.rb +1 -11
- data/lib/dependabot/nuget/native_helpers.rb +13 -4
- data/lib/dependabot/nuget/native_update_checker/native_update_checker.rb +17 -4
- metadata +15 -12
- data/helpers/lib/NuGetUpdater/NuGetProjects/Directory.Packages.props +0 -29
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/RequirementConverter.cs +0 -17
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DirectoryPackagesPropsDiscovery.cs +0 -69
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DirectoryPackagesPropsDiscoveryResult.cs +0 -11
- data/lib/dependabot/nuget/file_fetcher/import_paths_finder.rb +0 -73
- data/lib/dependabot/nuget/file_fetcher/sln_project_paths_finder.rb +0 -60
- data/lib/dependabot/nuget/native_discovery/native_directory_packages_props_discovery.rb +0 -44
@@ -63,7 +63,10 @@ public class RunWorkerTests
|
|
63
63
|
Dependencies =
|
64
64
|
[
|
65
65
|
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
66
|
-
]
|
66
|
+
],
|
67
|
+
ReferencedProjectPaths = [],
|
68
|
+
ImportedFiles = [],
|
69
|
+
AdditionalFiles = [],
|
67
70
|
}
|
68
71
|
]
|
69
72
|
});
|
@@ -268,7 +271,10 @@ public class RunWorkerTests
|
|
268
271
|
[
|
269
272
|
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
270
273
|
new("Some.Package2", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
271
|
-
]
|
274
|
+
],
|
275
|
+
ReferencedProjectPaths = [],
|
276
|
+
ImportedFiles = [],
|
277
|
+
AdditionalFiles = [],
|
272
278
|
}
|
273
279
|
]
|
274
280
|
});
|
@@ -288,7 +294,7 @@ public class RunWorkerTests
|
|
288
294
|
}),
|
289
295
|
updaterWorker: new TestUpdaterWorker(async input =>
|
290
296
|
{
|
291
|
-
Assert.Contains(input.Item3,
|
297
|
+
Assert.Contains(input.Item3, new List<string> { "Some.Package", "Some.Package2" });
|
292
298
|
Assert.Equal("1.0.0", input.Item4);
|
293
299
|
Assert.Equal("1.0.1", input.Item5);
|
294
300
|
var projectPath = input.Item1 + input.Item2;
|
@@ -584,7 +590,10 @@ public class RunWorkerTests
|
|
584
590
|
[
|
585
591
|
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
586
592
|
new("Some.Package2", "2.0.0", DependencyType.PackagesConfig, TargetFrameworks: ["net8.0"]),
|
587
|
-
]
|
593
|
+
],
|
594
|
+
ReferencedProjectPaths = [],
|
595
|
+
ImportedFiles = [],
|
596
|
+
AdditionalFiles = ["packages.config"],
|
588
597
|
}
|
589
598
|
]
|
590
599
|
});
|
@@ -607,9 +616,9 @@ public class RunWorkerTests
|
|
607
616
|
CanUpdate = true,
|
608
617
|
UpdatedVersion = "2.0.1",
|
609
618
|
UpdatedDependencies =
|
610
|
-
|
611
|
-
|
612
|
-
|
619
|
+
[
|
620
|
+
new("Some.Package2", "2.0.1", DependencyType.Unknown, TargetFrameworks: ["net8.0"], InfoUrl: "https://nuget.example.com/some-package2"),
|
621
|
+
]
|
613
622
|
},
|
614
623
|
_ => throw new NotSupportedException(),
|
615
624
|
};
|
@@ -674,6 +683,17 @@ public class RunWorkerTests
|
|
674
683
|
{
|
675
684
|
Base64DependencyFiles =
|
676
685
|
[
|
686
|
+
new DependencyFile()
|
687
|
+
{
|
688
|
+
Directory = "/some-dir",
|
689
|
+
Name = "packages.config",
|
690
|
+
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
691
|
+
<?xml version="1.0" encoding="utf-8"?>
|
692
|
+
<packages>
|
693
|
+
<package id="Some.Package2" version="2.0.0" targetFramework="net8.0" />
|
694
|
+
</packages>
|
695
|
+
"""))
|
696
|
+
},
|
677
697
|
new DependencyFile()
|
678
698
|
{
|
679
699
|
Directory = "/some-dir",
|
@@ -689,17 +709,6 @@ public class RunWorkerTests
|
|
689
709
|
</Project>
|
690
710
|
"""))
|
691
711
|
},
|
692
|
-
new DependencyFile()
|
693
|
-
{
|
694
|
-
Directory = "/some-dir",
|
695
|
-
Name = "packages.config",
|
696
|
-
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
697
|
-
<?xml version="1.0" encoding="utf-8"?>
|
698
|
-
<packages>
|
699
|
-
<package id="Some.Package2" version="2.0.0" targetFramework="net8.0" />
|
700
|
-
</packages>
|
701
|
-
"""))
|
702
|
-
}
|
703
712
|
],
|
704
713
|
BaseCommitSha = "TEST-COMMIT-SHA",
|
705
714
|
},
|
@@ -732,13 +741,13 @@ public class RunWorkerTests
|
|
732
741
|
new ReportedRequirement()
|
733
742
|
{
|
734
743
|
Requirement = "2.0.0",
|
735
|
-
File = "/some-dir/
|
744
|
+
File = "/some-dir/project.csproj",
|
736
745
|
Groups = ["dependencies"],
|
737
746
|
}
|
738
747
|
]
|
739
748
|
}
|
740
749
|
],
|
741
|
-
DependencyFiles = ["/some-dir/
|
750
|
+
DependencyFiles = ["/some-dir/packages.config", "/some-dir/project.csproj"],
|
742
751
|
},
|
743
752
|
new IncrementMetric()
|
744
753
|
{
|
@@ -790,7 +799,7 @@ public class RunWorkerTests
|
|
790
799
|
new ReportedRequirement()
|
791
800
|
{
|
792
801
|
Requirement = "2.0.1",
|
793
|
-
File = "/some-dir/
|
802
|
+
File = "/some-dir/project.csproj",
|
794
803
|
Groups = ["dependencies"],
|
795
804
|
Source = new()
|
796
805
|
{
|
@@ -805,7 +814,7 @@ public class RunWorkerTests
|
|
805
814
|
new ReportedRequirement()
|
806
815
|
{
|
807
816
|
Requirement = "2.0.0",
|
808
|
-
File = "/some-dir/
|
817
|
+
File = "/some-dir/project.csproj",
|
809
818
|
Groups = ["dependencies"],
|
810
819
|
}
|
811
820
|
],
|
@@ -813,6 +822,17 @@ public class RunWorkerTests
|
|
813
822
|
],
|
814
823
|
UpdatedDependencyFiles =
|
815
824
|
[
|
825
|
+
new DependencyFile()
|
826
|
+
{
|
827
|
+
Name = "packages.config",
|
828
|
+
Directory = "/some-dir",
|
829
|
+
Content = """
|
830
|
+
<?xml version="1.0" encoding="utf-8"?>
|
831
|
+
<packages>
|
832
|
+
<package id="Some.Package2" version="2.0.1" targetFramework="net8.0" />
|
833
|
+
</packages>
|
834
|
+
""",
|
835
|
+
},
|
816
836
|
new DependencyFile()
|
817
837
|
{
|
818
838
|
Name = "project.csproj",
|
@@ -834,17 +854,6 @@ public class RunWorkerTests
|
|
834
854
|
</Project>
|
835
855
|
""",
|
836
856
|
},
|
837
|
-
new DependencyFile()
|
838
|
-
{
|
839
|
-
Name = "packages.config",
|
840
|
-
Directory = "/some-dir",
|
841
|
-
Content = """
|
842
|
-
<?xml version="1.0" encoding="utf-8"?>
|
843
|
-
<packages>
|
844
|
-
<package id="Some.Package2" version="2.0.1" targetFramework="net8.0" />
|
845
|
-
</packages>
|
846
|
-
""",
|
847
|
-
},
|
848
857
|
],
|
849
858
|
BaseCommitSha = "TEST-COMMIT-SHA",
|
850
859
|
CommitMessage = "TODO: message",
|
@@ -936,7 +945,10 @@ public class RunWorkerTests
|
|
936
945
|
[
|
937
946
|
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
938
947
|
new("Some.Package2", "2.0.0", DependencyType.PackagesConfig, TargetFrameworks: ["net8.0"]),
|
939
|
-
]
|
948
|
+
],
|
949
|
+
ReferencedProjectPaths = [],
|
950
|
+
ImportedFiles = [],
|
951
|
+
AdditionalFiles = ["packages.config"],
|
940
952
|
},
|
941
953
|
new()
|
942
954
|
{
|
@@ -946,7 +958,10 @@ public class RunWorkerTests
|
|
946
958
|
[
|
947
959
|
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
948
960
|
new("Some.Package2", "2.0.0", DependencyType.PackagesConfig, TargetFrameworks: ["net8.0"]),
|
949
|
-
]
|
961
|
+
],
|
962
|
+
ReferencedProjectPaths = [],
|
963
|
+
ImportedFiles = [],
|
964
|
+
AdditionalFiles = ["packages.config"],
|
950
965
|
}
|
951
966
|
]
|
952
967
|
});
|
@@ -969,9 +984,9 @@ public class RunWorkerTests
|
|
969
984
|
CanUpdate = true,
|
970
985
|
UpdatedVersion = "2.0.1",
|
971
986
|
UpdatedDependencies =
|
972
|
-
|
973
|
-
|
974
|
-
|
987
|
+
[
|
988
|
+
new("Some.Package2", "2.0.1", DependencyType.Unknown, TargetFrameworks: ["net8.0"], InfoUrl: "https://nuget.example.com/some-package2"),
|
989
|
+
]
|
975
990
|
},
|
976
991
|
_ => throw new NotSupportedException(),
|
977
992
|
};
|
@@ -1081,22 +1096,7 @@ public class RunWorkerTests
|
|
1081
1096
|
[
|
1082
1097
|
new DependencyFile()
|
1083
1098
|
{
|
1084
|
-
Directory = "/some-dir/
|
1085
|
-
Name = "ProjectB.csproj",
|
1086
|
-
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1087
|
-
<Project Sdk="Microsoft.NET.Sdk">
|
1088
|
-
<PropertyGroup>
|
1089
|
-
<TargetFramework>net8.0</TargetFramework>
|
1090
|
-
</PropertyGroup>
|
1091
|
-
<ItemGroup>
|
1092
|
-
<PackageReference Include="Some.Package" Version="1.0.0" />
|
1093
|
-
</ItemGroup>
|
1094
|
-
</Project>
|
1095
|
-
"""))
|
1096
|
-
},
|
1097
|
-
new DependencyFile()
|
1098
|
-
{
|
1099
|
-
Directory = "/some-dir/ProjectB",
|
1099
|
+
Directory = "/some-dir/ProjectA",
|
1100
1100
|
Name = "packages.config",
|
1101
1101
|
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1102
1102
|
<?xml version="1.0" encoding="utf-8"?>
|
@@ -1125,7 +1125,7 @@ public class RunWorkerTests
|
|
1125
1125
|
},
|
1126
1126
|
new DependencyFile()
|
1127
1127
|
{
|
1128
|
-
Directory = "/some-dir/
|
1128
|
+
Directory = "/some-dir/ProjectB",
|
1129
1129
|
Name = "packages.config",
|
1130
1130
|
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1131
1131
|
<?xml version="1.0" encoding="utf-8"?>
|
@@ -1134,6 +1134,21 @@ public class RunWorkerTests
|
|
1134
1134
|
</packages>
|
1135
1135
|
"""))
|
1136
1136
|
},
|
1137
|
+
new DependencyFile()
|
1138
|
+
{
|
1139
|
+
Directory = "/some-dir/ProjectB",
|
1140
|
+
Name = "ProjectB.csproj",
|
1141
|
+
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1142
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1143
|
+
<PropertyGroup>
|
1144
|
+
<TargetFramework>net8.0</TargetFramework>
|
1145
|
+
</PropertyGroup>
|
1146
|
+
<ItemGroup>
|
1147
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
1148
|
+
</ItemGroup>
|
1149
|
+
</Project>
|
1150
|
+
"""))
|
1151
|
+
},
|
1137
1152
|
],
|
1138
1153
|
BaseCommitSha = "TEST-COMMIT-SHA",
|
1139
1154
|
},
|
@@ -1166,7 +1181,7 @@ public class RunWorkerTests
|
|
1166
1181
|
new ReportedRequirement()
|
1167
1182
|
{
|
1168
1183
|
Requirement = "2.0.0",
|
1169
|
-
File = "/some-dir/ProjectB/
|
1184
|
+
File = "/some-dir/ProjectB/ProjectB.csproj",
|
1170
1185
|
Groups = ["dependencies"],
|
1171
1186
|
}
|
1172
1187
|
]
|
@@ -1194,13 +1209,13 @@ public class RunWorkerTests
|
|
1194
1209
|
new ReportedRequirement()
|
1195
1210
|
{
|
1196
1211
|
Requirement = "2.0.0",
|
1197
|
-
File = "/some-dir/ProjectA/
|
1212
|
+
File = "/some-dir/ProjectA/ProjectA.csproj",
|
1198
1213
|
Groups = ["dependencies"],
|
1199
1214
|
}
|
1200
1215
|
]
|
1201
1216
|
},
|
1202
1217
|
],
|
1203
|
-
DependencyFiles = ["/some-dir/
|
1218
|
+
DependencyFiles = ["/some-dir/ProjectA/packages.config", "/some-dir/ProjectA/ProjectA.csproj", "/some-dir/ProjectB/packages.config", "/some-dir/ProjectB/ProjectB.csproj"],
|
1204
1219
|
},
|
1205
1220
|
new IncrementMetric()
|
1206
1221
|
{
|
@@ -1252,7 +1267,7 @@ public class RunWorkerTests
|
|
1252
1267
|
new ReportedRequirement()
|
1253
1268
|
{
|
1254
1269
|
Requirement = "2.0.1",
|
1255
|
-
File = "/some-dir/ProjectB/
|
1270
|
+
File = "/some-dir/ProjectB/ProjectB.csproj",
|
1256
1271
|
Groups = ["dependencies"],
|
1257
1272
|
Source = new()
|
1258
1273
|
{
|
@@ -1267,7 +1282,7 @@ public class RunWorkerTests
|
|
1267
1282
|
new ReportedRequirement()
|
1268
1283
|
{
|
1269
1284
|
Requirement = "2.0.0",
|
1270
|
-
File = "/some-dir/ProjectB/
|
1285
|
+
File = "/some-dir/ProjectB/ProjectB.csproj",
|
1271
1286
|
Groups = ["dependencies"],
|
1272
1287
|
}
|
1273
1288
|
],
|
@@ -1310,7 +1325,7 @@ public class RunWorkerTests
|
|
1310
1325
|
new ReportedRequirement()
|
1311
1326
|
{
|
1312
1327
|
Requirement = "2.0.1",
|
1313
|
-
File = "/some-dir/ProjectA/
|
1328
|
+
File = "/some-dir/ProjectA/ProjectA.csproj",
|
1314
1329
|
Groups = ["dependencies"],
|
1315
1330
|
Source = new()
|
1316
1331
|
{
|
@@ -1325,7 +1340,7 @@ public class RunWorkerTests
|
|
1325
1340
|
new ReportedRequirement()
|
1326
1341
|
{
|
1327
1342
|
Requirement = "2.0.0",
|
1328
|
-
File = "/some-dir/ProjectA/
|
1343
|
+
File = "/some-dir/ProjectA/ProjectA.csproj",
|
1329
1344
|
Groups = ["dependencies"],
|
1330
1345
|
}
|
1331
1346
|
],
|
@@ -1335,8 +1350,19 @@ public class RunWorkerTests
|
|
1335
1350
|
[
|
1336
1351
|
new DependencyFile()
|
1337
1352
|
{
|
1338
|
-
Name = "
|
1339
|
-
Directory = "/some-dir/
|
1353
|
+
Name = "packages.config",
|
1354
|
+
Directory = "/some-dir/ProjectA",
|
1355
|
+
Content = """
|
1356
|
+
<?xml version="1.0" encoding="utf-8"?>
|
1357
|
+
<packages>
|
1358
|
+
<package id="Some.Package2" version="2.0.1" targetFramework="net8.0" />
|
1359
|
+
</packages>
|
1360
|
+
""",
|
1361
|
+
},
|
1362
|
+
new DependencyFile()
|
1363
|
+
{
|
1364
|
+
Name = "ProjectA.csproj",
|
1365
|
+
Directory = "/some-dir/ProjectA",
|
1340
1366
|
Content = """
|
1341
1367
|
<Project Sdk="Microsoft.NET.Sdk">
|
1342
1368
|
<PropertyGroup>
|
@@ -1345,6 +1371,9 @@ public class RunWorkerTests
|
|
1345
1371
|
<ItemGroup>
|
1346
1372
|
<PackageReference Include="Some.Package" Version="1.0.1" />
|
1347
1373
|
</ItemGroup>
|
1374
|
+
<ItemGroup>
|
1375
|
+
<ProjectReference Include="../ProjectB/ProjectB.csproj" />
|
1376
|
+
</ItemGroup>
|
1348
1377
|
<ItemGroup>
|
1349
1378
|
<Reference Include="Some.Package2">
|
1350
1379
|
<HintPath>..\packages\Some.Package2.2.0.1\lib\net8.0\Some.Package2.dll</HintPath>
|
@@ -1367,8 +1396,8 @@ public class RunWorkerTests
|
|
1367
1396
|
},
|
1368
1397
|
new DependencyFile()
|
1369
1398
|
{
|
1370
|
-
Name = "
|
1371
|
-
Directory = "/some-dir/
|
1399
|
+
Name = "ProjectB.csproj",
|
1400
|
+
Directory = "/some-dir/ProjectB",
|
1372
1401
|
Content = """
|
1373
1402
|
<Project Sdk="Microsoft.NET.Sdk">
|
1374
1403
|
<PropertyGroup>
|
@@ -1377,9 +1406,6 @@ public class RunWorkerTests
|
|
1377
1406
|
<ItemGroup>
|
1378
1407
|
<PackageReference Include="Some.Package" Version="1.0.1" />
|
1379
1408
|
</ItemGroup>
|
1380
|
-
<ItemGroup>
|
1381
|
-
<ProjectReference Include="../ProjectB/ProjectB.csproj" />
|
1382
|
-
</ItemGroup>
|
1383
1409
|
<ItemGroup>
|
1384
1410
|
<Reference Include="Some.Package2">
|
1385
1411
|
<HintPath>..\packages\Some.Package2.2.0.1\lib\net8.0\Some.Package2.dll</HintPath>
|
@@ -1389,17 +1415,315 @@ public class RunWorkerTests
|
|
1389
1415
|
</Project>
|
1390
1416
|
""",
|
1391
1417
|
},
|
1418
|
+
],
|
1419
|
+
BaseCommitSha = "TEST-COMMIT-SHA",
|
1420
|
+
CommitMessage = "TODO: message",
|
1421
|
+
PrTitle = "TODO: title",
|
1422
|
+
PrBody = "TODO: body",
|
1423
|
+
},
|
1424
|
+
new MarkAsProcessed("TEST-COMMIT-SHA")
|
1425
|
+
]
|
1426
|
+
);
|
1427
|
+
}
|
1428
|
+
|
1429
|
+
[Fact]
|
1430
|
+
public async Task UpdatedFilesAreOnlyReportedOnce()
|
1431
|
+
{
|
1432
|
+
await RunAsync(
|
1433
|
+
job: new()
|
1434
|
+
{
|
1435
|
+
PackageManager = "nuget",
|
1436
|
+
Source = new()
|
1437
|
+
{
|
1438
|
+
Provider = "github",
|
1439
|
+
Repo = "test/repo",
|
1440
|
+
Directory = "/",
|
1441
|
+
},
|
1442
|
+
AllowedUpdates =
|
1443
|
+
[
|
1444
|
+
new() { UpdateType = "all" }
|
1445
|
+
]
|
1446
|
+
},
|
1447
|
+
packages:
|
1448
|
+
[
|
1449
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0"),
|
1450
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.1.0", "net8.0"),
|
1451
|
+
],
|
1452
|
+
files:
|
1453
|
+
[
|
1454
|
+
("dirs.proj", """
|
1455
|
+
<Project>
|
1456
|
+
<ItemGroup>
|
1457
|
+
<ProjectFile Include="project1/project1.csproj" />
|
1458
|
+
<ProjectFile Include="project2/project2.csproj" />
|
1459
|
+
</ItemGroup>
|
1460
|
+
</Project>
|
1461
|
+
"""),
|
1462
|
+
("Directory.Build.props", """
|
1463
|
+
<Project>
|
1464
|
+
<PropertyGroup>
|
1465
|
+
<SomePackageVersion>1.0.0</SomePackageVersion>
|
1466
|
+
</PropertyGroup>
|
1467
|
+
</Project>
|
1468
|
+
"""),
|
1469
|
+
("project1/project1.csproj", """
|
1470
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1471
|
+
<PropertyGroup>
|
1472
|
+
<TargetFramework>net8.0</TargetFramework>
|
1473
|
+
</PropertyGroup>
|
1474
|
+
<ItemGroup>
|
1475
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
1476
|
+
</ItemGroup>
|
1477
|
+
</Project>
|
1478
|
+
"""),
|
1479
|
+
("project2/project2.csproj", """
|
1480
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1481
|
+
<PropertyGroup>
|
1482
|
+
<TargetFramework>net8.0</TargetFramework>
|
1483
|
+
</PropertyGroup>
|
1484
|
+
<ItemGroup>
|
1485
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
1486
|
+
</ItemGroup>
|
1487
|
+
</Project>
|
1488
|
+
""")
|
1489
|
+
],
|
1490
|
+
discoveryWorker: new TestDiscoveryWorker(_input =>
|
1491
|
+
{
|
1492
|
+
return Task.FromResult(new WorkspaceDiscoveryResult()
|
1493
|
+
{
|
1494
|
+
Path = "",
|
1495
|
+
Projects = [
|
1496
|
+
new()
|
1497
|
+
{
|
1498
|
+
FilePath = "project1/project1.csproj",
|
1499
|
+
TargetFrameworks = ["net8.0"],
|
1500
|
+
Dependencies = [
|
1501
|
+
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
1502
|
+
],
|
1503
|
+
ReferencedProjectPaths = [],
|
1504
|
+
ImportedFiles = [
|
1505
|
+
"../Directory.Build.props",
|
1506
|
+
],
|
1507
|
+
AdditionalFiles = [],
|
1508
|
+
},
|
1509
|
+
new()
|
1510
|
+
{
|
1511
|
+
FilePath = "project2/project2.csproj",
|
1512
|
+
TargetFrameworks = ["net8.0"],
|
1513
|
+
Dependencies = [
|
1514
|
+
new("Some.Package", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
|
1515
|
+
],
|
1516
|
+
ReferencedProjectPaths = [],
|
1517
|
+
ImportedFiles = [
|
1518
|
+
"../Directory.Build.props",
|
1519
|
+
],
|
1520
|
+
AdditionalFiles = [],
|
1521
|
+
},
|
1522
|
+
]
|
1523
|
+
});
|
1524
|
+
}),
|
1525
|
+
analyzeWorker: new TestAnalyzeWorker(_input =>
|
1526
|
+
{
|
1527
|
+
return Task.FromResult(new AnalysisResult()
|
1528
|
+
{
|
1529
|
+
CanUpdate = true,
|
1530
|
+
UpdatedVersion = "1.1.0",
|
1531
|
+
UpdatedDependencies =
|
1532
|
+
[
|
1533
|
+
new("Some.Package", "1.1.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
1534
|
+
]
|
1535
|
+
});
|
1536
|
+
}),
|
1537
|
+
updaterWorker: new TestUpdaterWorker(async input =>
|
1538
|
+
{
|
1539
|
+
var repoRootPath = input.Item1;
|
1540
|
+
var filePath = input.Item2;
|
1541
|
+
var packageName = input.Item3;
|
1542
|
+
var previousVersion = input.Item4;
|
1543
|
+
var newVersion = input.Item5;
|
1544
|
+
var _isTransitive = input.Item6;
|
1545
|
+
|
1546
|
+
var directoryBuildPropsPath = Path.Join(repoRootPath, "Directory.Build.props");
|
1547
|
+
await File.WriteAllTextAsync(directoryBuildPropsPath, """
|
1548
|
+
<Project>
|
1549
|
+
<PropertyGroup>
|
1550
|
+
<SomePackageVersion>1.1.0</SomePackageVersion>
|
1551
|
+
</PropertyGroup>
|
1552
|
+
</Project>
|
1553
|
+
""");
|
1554
|
+
return new UpdateOperationResult();
|
1555
|
+
}),
|
1556
|
+
expectedResult: new RunResult()
|
1557
|
+
{
|
1558
|
+
Base64DependencyFiles =
|
1559
|
+
[
|
1560
|
+
new DependencyFile()
|
1561
|
+
{
|
1562
|
+
Directory = "/",
|
1563
|
+
Name = "Directory.Build.props",
|
1564
|
+
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1565
|
+
<Project>
|
1566
|
+
<PropertyGroup>
|
1567
|
+
<SomePackageVersion>1.0.0</SomePackageVersion>
|
1568
|
+
</PropertyGroup>
|
1569
|
+
</Project>
|
1570
|
+
"""))
|
1571
|
+
},
|
1572
|
+
new DependencyFile()
|
1573
|
+
{
|
1574
|
+
Directory = "/project1",
|
1575
|
+
Name = "project1.csproj",
|
1576
|
+
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1577
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1578
|
+
<PropertyGroup>
|
1579
|
+
<TargetFramework>net8.0</TargetFramework>
|
1580
|
+
</PropertyGroup>
|
1581
|
+
<ItemGroup>
|
1582
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
1583
|
+
</ItemGroup>
|
1584
|
+
</Project>
|
1585
|
+
"""))
|
1586
|
+
},
|
1587
|
+
new DependencyFile()
|
1588
|
+
{
|
1589
|
+
Directory = "/project2",
|
1590
|
+
Name = "project2.csproj",
|
1591
|
+
Content = Convert.ToBase64String(Encoding.UTF8.GetBytes("""
|
1592
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1593
|
+
<PropertyGroup>
|
1594
|
+
<TargetFramework>net8.0</TargetFramework>
|
1595
|
+
</PropertyGroup>
|
1596
|
+
<ItemGroup>
|
1597
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
1598
|
+
</ItemGroup>
|
1599
|
+
</Project>
|
1600
|
+
"""))
|
1601
|
+
},
|
1602
|
+
],
|
1603
|
+
BaseCommitSha = "TEST-COMMIT-SHA",
|
1604
|
+
},
|
1605
|
+
expectedApiMessages:
|
1606
|
+
[
|
1607
|
+
new UpdatedDependencyList()
|
1608
|
+
{
|
1609
|
+
Dependencies =
|
1610
|
+
[
|
1611
|
+
new ReportedDependency()
|
1612
|
+
{
|
1613
|
+
Name = "Some.Package",
|
1614
|
+
Version = "1.0.0",
|
1615
|
+
Requirements =
|
1616
|
+
[
|
1617
|
+
new ReportedRequirement()
|
1618
|
+
{
|
1619
|
+
Requirement = "1.0.0",
|
1620
|
+
File = "/project1/project1.csproj",
|
1621
|
+
Groups = ["dependencies"],
|
1622
|
+
}
|
1623
|
+
]
|
1624
|
+
},
|
1625
|
+
new ReportedDependency()
|
1626
|
+
{
|
1627
|
+
Name = "Some.Package",
|
1628
|
+
Version = "1.0.0",
|
1629
|
+
Requirements =
|
1630
|
+
[
|
1631
|
+
new ReportedRequirement()
|
1632
|
+
{
|
1633
|
+
Requirement = "1.0.0",
|
1634
|
+
File = "/project2/project2.csproj",
|
1635
|
+
Groups = ["dependencies"],
|
1636
|
+
}
|
1637
|
+
]
|
1638
|
+
}
|
1639
|
+
],
|
1640
|
+
DependencyFiles = ["/Directory.Build.props", "/project1/project1.csproj", "/project2/project2.csproj"],
|
1641
|
+
},
|
1642
|
+
new IncrementMetric()
|
1643
|
+
{
|
1644
|
+
Metric = "updater.started",
|
1645
|
+
Tags = new()
|
1646
|
+
{
|
1647
|
+
["operation"] = "group_update_all_versions"
|
1648
|
+
}
|
1649
|
+
},
|
1650
|
+
new CreatePullRequest()
|
1651
|
+
{
|
1652
|
+
Dependencies =
|
1653
|
+
[
|
1654
|
+
new ReportedDependency()
|
1655
|
+
{
|
1656
|
+
Name = "Some.Package",
|
1657
|
+
Version = "1.1.0",
|
1658
|
+
Requirements =
|
1659
|
+
[
|
1660
|
+
new ReportedRequirement()
|
1661
|
+
{
|
1662
|
+
Requirement = "1.1.0",
|
1663
|
+
File = "/project1/project1.csproj",
|
1664
|
+
Groups = ["dependencies"],
|
1665
|
+
Source = new()
|
1666
|
+
{
|
1667
|
+
SourceUrl = null,
|
1668
|
+
Type = "nuget_repo",
|
1669
|
+
}
|
1670
|
+
}
|
1671
|
+
],
|
1672
|
+
PreviousVersion = "1.0.0",
|
1673
|
+
PreviousRequirements =
|
1674
|
+
[
|
1675
|
+
new ReportedRequirement()
|
1676
|
+
{
|
1677
|
+
Requirement = "1.0.0",
|
1678
|
+
File = "/project1/project1.csproj",
|
1679
|
+
Groups = ["dependencies"],
|
1680
|
+
}
|
1681
|
+
],
|
1682
|
+
},
|
1683
|
+
new ReportedDependency()
|
1684
|
+
{
|
1685
|
+
Name = "Some.Package",
|
1686
|
+
Version = "1.1.0",
|
1687
|
+
Requirements =
|
1688
|
+
[
|
1689
|
+
new ReportedRequirement()
|
1690
|
+
{
|
1691
|
+
Requirement = "1.1.0",
|
1692
|
+
File = "/project2/project2.csproj",
|
1693
|
+
Groups = ["dependencies"],
|
1694
|
+
Source = new()
|
1695
|
+
{
|
1696
|
+
SourceUrl = null,
|
1697
|
+
Type = "nuget_repo",
|
1698
|
+
}
|
1699
|
+
}
|
1700
|
+
],
|
1701
|
+
PreviousVersion = "1.0.0",
|
1702
|
+
PreviousRequirements =
|
1703
|
+
[
|
1704
|
+
new ReportedRequirement()
|
1705
|
+
{
|
1706
|
+
Requirement = "1.0.0",
|
1707
|
+
File = "/project2/project2.csproj",
|
1708
|
+
Groups = ["dependencies"],
|
1709
|
+
}
|
1710
|
+
],
|
1711
|
+
},
|
1712
|
+
],
|
1713
|
+
UpdatedDependencyFiles =
|
1714
|
+
[
|
1392
1715
|
new DependencyFile()
|
1393
1716
|
{
|
1394
|
-
Name = "
|
1395
|
-
Directory = "/
|
1717
|
+
Name = "Directory.Build.props",
|
1718
|
+
Directory = "/",
|
1396
1719
|
Content = """
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1720
|
+
<Project>
|
1721
|
+
<PropertyGroup>
|
1722
|
+
<SomePackageVersion>1.1.0</SomePackageVersion>
|
1723
|
+
</PropertyGroup>
|
1724
|
+
</Project>
|
1401
1725
|
""",
|
1402
|
-
}
|
1726
|
+
}
|
1403
1727
|
],
|
1404
1728
|
BaseCommitSha = "TEST-COMMIT-SHA",
|
1405
1729
|
CommitMessage = "TODO: message",
|
@@ -1429,7 +1753,7 @@ public class RunWorkerTests
|
|
1429
1753
|
experimentsManager ??= new ExperimentsManager();
|
1430
1754
|
var testApiHandler = new TestApiHandler();
|
1431
1755
|
var logger = new TestLogger();
|
1432
|
-
discoveryWorker ??= new DiscoveryWorker(logger);
|
1756
|
+
discoveryWorker ??= new DiscoveryWorker(experimentsManager, logger);
|
1433
1757
|
analyzeWorker ??= new AnalyzeWorker(logger);
|
1434
1758
|
updaterWorker ??= new UpdaterWorker(experimentsManager, logger);
|
1435
1759
|
|