dependabot-nuget 0.321.3 → 0.322.1

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.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/Directory.Packages.props +22 -22
  3. data/helpers/lib/NuGetUpdater/DotNetPackageCorrelation.Cli/Program.cs +21 -7
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs +19 -11
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/CloneCommand.cs +19 -9
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +21 -14
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs +8 -5
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs +29 -16
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +20 -19
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Program.cs +2 -1
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +1 -1
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +10 -23
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Run.cs +9 -0
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +15 -232
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +1 -154
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +3 -12
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/GlobalJsonBuildFile.cs +5 -13
  18. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/PrivateSourceTimedOutException.cs +12 -0
  19. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/JobErrorBase.cs +4 -0
  20. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PrivateSourceTimedOut.cs +10 -0
  21. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/AzurePackageDetailFinder.cs +30 -0
  22. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGenerator.cs +237 -0
  23. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitHubPackageDetailFinder.cs +101 -0
  24. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitLabPackageDetailFinder.cs +107 -0
  25. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/HttpFetcher.cs +32 -0
  26. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IHttpFetcher.cs +30 -0
  27. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPackageDetailFinder.cs +47 -0
  28. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPullRequestBodyGenerator.cs +11 -0
  29. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/SimplePullRequestBodyGenerator.cs +15 -0
  30. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestTextGenerator.cs +7 -3
  31. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +3 -525
  32. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandler.cs +2 -2
  33. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/GroupUpdateAllVersionsHandler.cs +4 -4
  34. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandler.cs +2 -2
  35. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandler.cs +2 -2
  36. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandler.cs +2 -2
  37. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/FileWriterWorker.cs +85 -35
  38. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/XmlFileWriter.cs +27 -8
  39. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +1 -856
  40. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateOperationBase.cs +18 -7
  41. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +16 -200
  42. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +21 -556
  43. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +9 -73
  44. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Clone/CloneWorkerTests.cs +2 -2
  45. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolver/MSBuildDependencySolverTests.cs +1 -1
  46. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +1 -20
  47. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.GlobalJson.cs +0 -2
  48. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +3 -62
  49. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +13 -563
  50. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +20 -269
  51. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/SdkProjectDiscoveryTests.cs +2 -2
  52. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/GlobalJsonBuildFileTests.cs +0 -1
  53. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/EndToEndTests.cs +131 -131
  54. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/HttpApiHandlerTests.cs +1 -0
  55. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/JobErrorBaseTests.cs +7 -0
  56. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MessageReportTests.cs +11 -0
  57. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MiscellaneousTests.cs +0 -203
  58. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGeneratorTests.cs +871 -0
  59. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/IPackageDetailFinderTests.cs +28 -0
  60. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/TestHttpFetcher.cs +23 -0
  61. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestTextTests.cs +24 -24
  62. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +14 -12
  63. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandlerTests.cs +6 -6
  64. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/GroupUpdateAllVersionsHandlerTests.cs +18 -18
  65. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandlerTests.cs +15 -15
  66. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandlerTests.cs +21 -21
  67. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandlerTests.cs +15 -15
  68. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/UpdateHandlersTestsBase.cs +1 -8
  69. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs +2 -2
  70. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests_MiscellaneousTests.cs +45 -0
  71. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/XmlFileWriterTests.cs +111 -0
  72. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackageReferenceUpdaterTests.cs +1 -159
  73. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +26 -660
  74. data/helpers/lib/NuGetUpdater/global.json +1 -1
  75. metadata +18 -10
  76. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunResult.cs +0 -13
  77. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestMessageTests.cs +0 -296
  78. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +0 -3592
  79. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatePermittedAndMessageTests.cs +0 -457
  80. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +0 -378
  81. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterHelperTests.cs +0 -175
@@ -7,10 +7,9 @@ public partial class DiscoveryWorkerTests
7
7
  public class Projects : DiscoveryWorkerTestBase
8
8
  {
9
9
  [Fact]
10
- public async Task TargetFrameworksAreHonoredInConditions_DirectDiscovery()
10
+ public async Task TargetFrameworksAreHonoredInConditions()
11
11
  {
12
12
  await TestDiscoveryAsync(
13
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
14
13
  packages:
15
14
  [
16
15
  MockNuGetPackage.CreateSimplePackage("Package.A", "1.0.0", "net7.0"),
@@ -70,74 +69,9 @@ public partial class DiscoveryWorkerTests
70
69
  }
71
70
 
72
71
  [Fact]
73
- public async Task TargetFrameworksAreHonoredInConditions_TemporaryProjectDiscovery()
72
+ public async Task WithDirectoryBuildPropsAndTargets()
74
73
  {
75
74
  await TestDiscoveryAsync(
76
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
77
- packages:
78
- [
79
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.0.0", "net7.0"),
80
- MockNuGetPackage.CreateSimplePackage("Package.B", "2.0.0", "net7.0"),
81
- ],
82
- workspacePath: "",
83
- files: [
84
- ("myproj.csproj", """
85
- <Project Sdk="Microsoft.NET.Sdk">
86
- <PropertyGroup>
87
- <TargetFrameworks>net7.0;net8.0</TargetFrameworks>
88
- </PropertyGroup>
89
- <ItemGroup Condition=" '$(TargetFramework)' == 'net7.0' ">
90
- <PackageReference Include="Package.A" />
91
- <PackageReference Include="Package.B" />
92
- </ItemGroup>
93
- </Project>
94
- """),
95
- ("Directory.Build.props", "<Project />"),
96
- ("Directory.Packages.props", """
97
- <Project>
98
- <PropertyGroup>
99
- <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
100
- </PropertyGroup>
101
- <ItemGroup>
102
- <PackageVersion Include="Package.A" Version="1.0.0" />
103
- <PackageVersion Include="Package.B" Version="2.0.0" />
104
- </ItemGroup>
105
- </Project>
106
- """),
107
- ],
108
- expectedResult: new()
109
- {
110
- Path = "",
111
- Projects = [
112
- new()
113
- {
114
- FilePath = "myproj.csproj",
115
- Dependencies = [
116
- new("Package.A", "1.0.0", DependencyType.PackageReference, TargetFrameworks: ["net7.0", "net8.0"], IsDirect: true),
117
- new("Package.B", "2.0.0", DependencyType.PackageReference, TargetFrameworks: ["net7.0", "net8.0"], IsDirect: true),
118
- ],
119
- Properties = [
120
- new("ManagePackageVersionsCentrally", "true", "Directory.Packages.props"),
121
- new("TargetFrameworks", "net7.0;net8.0", "myproj.csproj"),
122
- ],
123
- TargetFrameworks = ["net7.0", "net8.0"],
124
- ReferencedProjectPaths = [],
125
- ImportedFiles = [
126
- "Directory.Build.props",
127
- "Directory.Packages.props",
128
- ],
129
- AdditionalFiles = [],
130
- },
131
- ],
132
- }
133
- );
134
- }
135
-
136
- [Fact]
137
- public async Task WithDirectoryBuildPropsAndTargets_DirectDiscovery()
138
- {
139
- await TestDiscoveryAsync(
140
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
141
75
  packages:
142
76
  [
143
77
  MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
@@ -204,80 +138,9 @@ public partial class DiscoveryWorkerTests
204
138
  }
205
139
 
206
140
  [Fact]
207
- public async Task WithDirectoryBuildPropsAndTargets_TemporaryProjectDiscovery()
208
- {
209
- await TestDiscoveryAsync(
210
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
211
- packages:
212
- [
213
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
214
- MockNuGetPackage.CreateSimplePackage("Package.B", "4.5.6", "net8.0"),
215
- ],
216
- workspacePath: "",
217
- files: [
218
- ("project.csproj", """
219
- <Project Sdk="Microsoft.NET.Sdk">
220
- <PropertyGroup>
221
- <OutputType>Exe</OutputType>
222
- <TargetFramework>net8.0</TargetFramework>
223
- <ImplicitUsings>enable</ImplicitUsings>
224
- <Nullable>enable</Nullable>
225
- </PropertyGroup>
226
- </Project>
227
- """),
228
- ("Directory.Build.props", """
229
- <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
230
- <ItemGroup>
231
- <PackageReference Include="Package.A" Version="1.2.3" />
232
- </ItemGroup>
233
- </Project>
234
- """),
235
- ("Directory.Build.targets", """
236
- <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
237
- <ItemGroup>
238
- <PackageReference Include="Package.B" Version="4.5.6">
239
- <PrivateAssets>all</PrivateAssets>
240
- <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
241
- </PackageReference>
242
- </ItemGroup>
243
- </Project>
244
- """),
245
- ],
246
- expectedResult: new()
247
- {
248
- Path = "",
249
- Projects = [
250
- new()
251
- {
252
- FilePath = "project.csproj",
253
- Dependencies = [
254
- new("Package.A", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
255
- new("Package.B", "4.5.6", DependencyType.PackageReference, TargetFrameworks: ["net8.0"]),
256
- ],
257
- Properties = [
258
- new("ImplicitUsings", "enable", "project.csproj"),
259
- new("Nullable", "enable", "project.csproj"),
260
- new("OutputType", "Exe", "project.csproj"),
261
- new("TargetFramework", "net8.0", "project.csproj"),
262
- ],
263
- TargetFrameworks = ["net8.0"],
264
- ReferencedProjectPaths = [],
265
- ImportedFiles = [
266
- "Directory.Build.props",
267
- "Directory.Build.targets"
268
- ],
269
- AdditionalFiles = [],
270
- }
271
- ],
272
- }
273
- );
274
- }
275
-
276
- [Fact]
277
- public async Task WithGlobalPackageReference_DirectDiscovery()
141
+ public async Task WithGlobalPackageReference()
278
142
  {
279
143
  await TestDiscoveryAsync(
280
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
281
144
  packages:
282
145
  [
283
146
  MockNuGetPackage.CreateSimplePackage("Global.Package", "1.2.3", "net8.0"),
@@ -328,64 +191,9 @@ public partial class DiscoveryWorkerTests
328
191
  }
329
192
 
330
193
  [Fact]
331
- public async Task WithGlobalPackageReference_TemporaryProjectDiscovery()
194
+ public async Task WithPackagesProps()
332
195
  {
333
196
  await TestDiscoveryAsync(
334
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
335
- packages:
336
- [
337
- MockNuGetPackage.CreateSimplePackage("Global.Package", "1.2.3", "net8.0"),
338
- ],
339
- workspacePath: "",
340
- files:
341
- [
342
- ("project.csproj", """
343
- <Project Sdk="Microsoft.NET.Sdk">
344
- <PropertyGroup>
345
- <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
346
- <TargetFramework>net8.0</TargetFramework>
347
- </PropertyGroup>
348
- </Project>
349
- """),
350
- ("Directory.Packages.props", """
351
- <Project>
352
- <ItemGroup>
353
- <GlobalPackageReference Include="Global.Package" Version="1.2.3" />
354
- </ItemGroup>
355
- </Project>
356
- """),
357
- ],
358
- expectedResult: new()
359
- {
360
- Path = "",
361
- Projects = [
362
- new()
363
- {
364
- FilePath = "project.csproj",
365
- Dependencies = [
366
- new("Global.Package", "1.2.3", DependencyType.GlobalPackageReference, TargetFrameworks: ["net8.0"]),
367
- ],
368
- Properties = [
369
- new("ManagePackageVersionsCentrally", "true", "project.csproj"),
370
- new("TargetFramework", "net8.0", "project.csproj"),
371
- ],
372
- TargetFrameworks = ["net8.0"],
373
- ReferencedProjectPaths = [],
374
- ImportedFiles = [
375
- "Directory.Packages.props"
376
- ],
377
- AdditionalFiles = [],
378
- },
379
- ],
380
- }
381
- );
382
- }
383
-
384
- [Fact]
385
- public async Task WithPackagesProps_DirectDiscovery()
386
- {
387
- await TestDiscoveryAsync(
388
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
389
197
  packages:
390
198
  [
391
199
  MockNuGetPackage.CentralPackageVersionsPackage,
@@ -451,80 +259,9 @@ public partial class DiscoveryWorkerTests
451
259
  }
452
260
 
453
261
  [Fact]
454
- public async Task WithPackagesProps_TemporaryProjectDiscovery()
455
- {
456
- await TestDiscoveryAsync(
457
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
458
- packages:
459
- [
460
- MockNuGetPackage.CentralPackageVersionsPackage,
461
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net7.0"),
462
- MockNuGetPackage.CreateSimplePackage("Package.B", "4.5.6", "net7.0"),
463
- MockNuGetPackage.CreateSimplePackage("Global.Package", "7.8.9", "net7.0"),
464
- ],
465
- workspacePath: "",
466
- files: [
467
- ("myproj.csproj", """
468
- <Project Sdk="Microsoft.NET.Sdk">
469
- <PropertyGroup>
470
- <TargetFramework>net7.0</TargetFramework>
471
- </PropertyGroup>
472
- <ItemGroup>
473
- <PackageReference Include="Package.A" Version="1.2.3" />
474
- <PackageReference Include="Package.B" />
475
- </ItemGroup>
476
- </Project>
477
- """),
478
- ("Packages.props", """
479
- <Project Sdk="Microsoft.NET.Sdk">
480
- <ItemGroup>
481
- <GlobalPackageReference Include="Global.Package" Version="7.8.9" />
482
- <PackageReference Update="@(GlobalPackageReference)" PrivateAssets="Build" />
483
- <PackageReference Update="Package.B" Version="4.5.6" />
484
- </ItemGroup>
485
- </Project>
486
- """),
487
- ("Directory.Build.targets", """
488
- <Project>
489
- <!-- this forces `Packages.props` to be imported -->
490
- <Sdk Name="Microsoft.Build.CentralPackageVersions" Version="2.1.3" />
491
- </Project>
492
- """),
493
- ],
494
- expectedResult: new()
495
- {
496
- Path = "",
497
- Projects = [
498
- new()
499
- {
500
- FilePath = "myproj.csproj",
501
- ExpectedDependencyCount = 4,
502
- Dependencies = [
503
- new("Package.A", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net7.0"], IsDirect: true),
504
- new("Package.B", "4.5.6", DependencyType.PackageReference, TargetFrameworks: ["net7.0"], IsDirect: true),
505
- new("Global.Package", "7.8.9", DependencyType.GlobalPackageReference, TargetFrameworks: ["net7.0"]),
506
- ],
507
- Properties = [
508
- new("TargetFramework", "net7.0", "myproj.csproj"),
509
- ],
510
- TargetFrameworks = ["net7.0"],
511
- ReferencedProjectPaths = [],
512
- ImportedFiles = [
513
- "Directory.Build.targets",
514
- "Packages.props",
515
- ],
516
- AdditionalFiles = [],
517
- },
518
- ],
519
- }
520
- );
521
- }
522
-
523
- [Fact]
524
- public async Task ReturnsDependenciesThatCannotBeEvaluated_DirectDiscovery()
262
+ public async Task ReturnsDependenciesThatCannotBeEvaluated()
525
263
  {
526
264
  await TestDiscoveryAsync(
527
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
528
265
  packages:
529
266
  [
530
267
  MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
@@ -569,58 +306,9 @@ public partial class DiscoveryWorkerTests
569
306
  }
570
307
 
571
308
  [Fact]
572
- public async Task ReturnsDependenciesThatCannotBeEvaluated_TemporaryProjectDiscovery()
309
+ public async Task TargetFrameworkCanBeResolvedFromImplicitlyImportedFile()
573
310
  {
574
311
  await TestDiscoveryAsync(
575
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
576
- packages:
577
- [
578
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
579
- MockNuGetPackage.CreateSimplePackage("Package.B", "4.5.6", "net8.0"),
580
- ],
581
- workspacePath: "",
582
- files: [
583
- ("myproj.csproj", """
584
- <Project Sdk="Microsoft.NET.Sdk">
585
- <PropertyGroup>
586
- <TargetFramework>net8.0</TargetFramework>
587
- </PropertyGroup>
588
- <ItemGroup>
589
- <PackageReference Include="Package.A" Version="1.2.3" />
590
- <PackageReference Include="Package.B" Version="$(ThisPropertyCannotBeResolved)" />
591
- </ItemGroup>
592
- </Project>
593
- """)
594
- ],
595
- expectedResult: new()
596
- {
597
- Path = "",
598
- Projects = [
599
- new()
600
- {
601
- FilePath = "myproj.csproj",
602
- ExpectedDependencyCount = 2,
603
- Dependencies = [
604
- new("Package.A", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net8.0"], IsDirect: true),
605
- ],
606
- Properties = [
607
- new("TargetFramework", "net8.0", "myproj.csproj"),
608
- ],
609
- TargetFrameworks = ["net8.0"],
610
- ReferencedProjectPaths = [],
611
- ImportedFiles = [],
612
- AdditionalFiles = [],
613
- }
614
- ],
615
- }
616
- );
617
- }
618
-
619
- [Fact]
620
- public async Task TargetFrameworkCanBeResolvedFromImplicitlyImportedFile_DirectDiscovery()
621
- {
622
- await TestDiscoveryAsync(
623
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
624
312
  packages:
625
313
  [
626
314
  MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
@@ -671,68 +359,9 @@ public partial class DiscoveryWorkerTests
671
359
  }
672
360
 
673
361
  [Fact]
674
- public async Task TargetFrameworkCanBeResolvedFromImplicitlyImportedFile_TemporaryProjectDiscovery()
675
- {
676
- await TestDiscoveryAsync(
677
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
678
- packages:
679
- [
680
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
681
- ],
682
- workspacePath: "",
683
- files: [
684
- ("myproj.csproj", """
685
- <Project Sdk="Microsoft.NET.Sdk">
686
- <PropertyGroup>
687
- <TargetFramework>$(SomeTfm)</TargetFramework>
688
- </PropertyGroup>
689
- <ItemGroup>
690
- <PackageReference Include="Package.A" Version="1.2.3" />
691
- </ItemGroup>
692
- </Project>
693
- """),
694
- ("Directory.Build.props", """
695
- <Project>
696
- <PropertyGroup>
697
- <SomeTfm>net8.0</SomeTfm>
698
- </PropertyGroup>
699
- </Project>
700
- """)
701
- ],
702
- expectedResult: new()
703
- {
704
- Path = "",
705
- Projects = [
706
- new()
707
- {
708
- FilePath = "myproj.csproj",
709
- Dependencies = [
710
- new("Package.A", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net8.0"], IsDirect: true),
711
- ],
712
- Properties = [
713
- new("SomeTfm", "net8.0", "Directory.Build.props"),
714
- new("TargetFramework", "$(SomeTfm)", "myproj.csproj"),
715
- ],
716
- TargetFrameworks = ["net8.0"],
717
- ReferencedProjectPaths = [],
718
- ImportedFiles = [
719
- "Directory.Build.props"
720
- ],
721
- AdditionalFiles = [],
722
- }
723
- ],
724
- }
725
- );
726
- }
727
-
728
- [Theory]
729
- [InlineData(true)]
730
- [InlineData(false)]
731
-
732
- public async Task NoDependenciesReturnedIfNoTargetFrameworkCanBeResolved(bool useDirectDiscovery)
362
+ public async Task NoDependenciesReturnedIfNoTargetFrameworkCanBeResolved()
733
363
  {
734
364
  await TestDiscoveryAsync(
735
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = useDirectDiscovery },
736
365
  packages: [],
737
366
  workspacePath: "",
738
367
  files: [
@@ -759,7 +388,6 @@ public partial class DiscoveryWorkerTests
759
388
  public async Task WildcardVersionNumberIsResolved()
760
389
  {
761
390
  await TestDiscoveryAsync(
762
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
763
391
  packages:
764
392
  [
765
393
  MockNuGetPackage.CreateSimplePackage("Some.Package", "1.2.3", "net8.0"),
@@ -801,10 +429,9 @@ public partial class DiscoveryWorkerTests
801
429
  }
802
430
 
803
431
  [Fact]
804
- public async Task DiscoverReportsTransitivePackageVersionsWithFourPartsForMultipleTargetFrameworks_DirectDiscovery()
432
+ public async Task DiscoverReportsTransitivePackageVersionsWithFourPartsForMultipleTargetFrameworks()
805
433
  {
806
434
  await TestDiscoveryAsync(
807
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
808
435
  packages:
809
436
  [
810
437
  new("Some.Package", "1.2.3.4", Files: [("lib/net7.0/Some.Package.dll", Array.Empty<byte>()), ("lib/net8.0/Some.Package.dll", Array.Empty<byte>())], DependencyGroups: [(null, [("Transitive.Dependency", "5.6.7.8")])]),
@@ -849,58 +476,9 @@ public partial class DiscoveryWorkerTests
849
476
  }
850
477
 
851
478
  [Fact]
852
- public async Task DiscoverReportsTransitivePackageVersionsWithFourPartsForMultipleTargetFrameworks_TemporaryProjectDiscovery()
479
+ public async Task DiscoverReportsPackagesThroughProjectReferenceElements()
853
480
  {
854
481
  await TestDiscoveryAsync(
855
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
856
- packages:
857
- [
858
- new("Some.Package", "1.2.3.4", Files: [("lib/net7.0/Some.Package.dll", Array.Empty<byte>()), ("lib/net8.0/Some.Package.dll", Array.Empty<byte>())], DependencyGroups: [(null, [("Transitive.Dependency", "5.6.7.8")])]),
859
- new("Transitive.Dependency", "5.6.7.8", Files: [("lib/net7.0/Transitive.Dependency.dll", Array.Empty<byte>()), ("lib/net8.0/Transitive.Dependency.dll", Array.Empty<byte>())]),
860
- ],
861
- workspacePath: "",
862
- files:
863
- [
864
- ("myproj.csproj", """
865
- <Project Sdk="Microsoft.NET.Sdk">
866
- <PropertyGroup>
867
- <TargetFrameworks>net7.0;net8.0</TargetFrameworks>
868
- </PropertyGroup>
869
- <ItemGroup>
870
- <PackageReference Include="Some.Package" Version="1.2.3.4" />
871
- </ItemGroup>
872
- </Project>
873
- """)
874
- ],
875
- expectedResult: new()
876
- {
877
- Path = "",
878
- Projects = [
879
- new()
880
- {
881
- FilePath = "myproj.csproj",
882
- Dependencies = [
883
- new("Some.Package", "1.2.3.4", DependencyType.PackageReference, TargetFrameworks: ["net7.0", "net8.0"], IsDirect: true),
884
- new("Transitive.Dependency", "5.6.7.8", DependencyType.Unknown, TargetFrameworks: ["net7.0", "net8.0"], IsTransitive: true),
885
- ],
886
- Properties = [
887
- new("TargetFrameworks", "net7.0;net8.0", "myproj.csproj"),
888
- ],
889
- TargetFrameworks = ["net7.0", "net8.0"],
890
- ReferencedProjectPaths = [],
891
- ImportedFiles = [],
892
- AdditionalFiles = [],
893
- }
894
- ],
895
- }
896
- );
897
- }
898
-
899
- [Fact]
900
- public async Task DiscoverReportsPackagesThroughProjectReferenceElements_DirectDiscovery()
901
- {
902
- await TestDiscoveryAsync(
903
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
904
482
  packages:
905
483
  [
906
484
  MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
@@ -973,82 +551,6 @@ public partial class DiscoveryWorkerTests
973
551
  );
974
552
  }
975
553
 
976
- [Fact]
977
- public async Task DiscoverReportsPackagesThroughProjectReferenceElements_TemporaryProjectDiscovery()
978
- {
979
- await TestDiscoveryAsync(
980
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
981
- packages:
982
- [
983
- MockNuGetPackage.CreateSimplePackage("Package.A", "1.2.3", "net8.0"),
984
- MockNuGetPackage.CreateSimplePackage("Package.B", "4.5.6", "net8.0"),
985
- ],
986
- workspacePath: "test",
987
- files:
988
- [
989
- ("test/unit-tests.csproj", """
990
- <Project Sdk="Microsoft.NET.Sdk">
991
- <PropertyGroup>
992
- <TargetFramework>net8.0</TargetFramework>
993
- </PropertyGroup>
994
- <ItemGroup>
995
- <ProjectReference Include="..\src\helpers.csproj" />
996
- </ItemGroup>
997
- <ItemGroup>
998
- <PackageReference Include="Package.A" Version="1.2.3" />
999
- </ItemGroup>
1000
- </Project>
1001
- """),
1002
- ("src/helpers.csproj", """
1003
- <Project Sdk="Microsoft.NET.Sdk">
1004
- <PropertyGroup>
1005
- <TargetFramework>net8.0</TargetFramework>
1006
- </PropertyGroup>
1007
- <ItemGroup>
1008
- <PackageReference Include="Package.B" Version="4.5.6" />
1009
- </ItemGroup>
1010
- </Project>
1011
- """)
1012
- ],
1013
- expectedResult: new()
1014
- {
1015
- Path = "test",
1016
- Projects = [
1017
- new()
1018
- {
1019
- FilePath = "unit-tests.csproj",
1020
- Dependencies = [
1021
- new("Package.A", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net8.0"], IsDirect: true)
1022
- ],
1023
- ReferencedProjectPaths = [
1024
- "../src/helpers.csproj",
1025
- ],
1026
- Properties = [
1027
- new("TargetFramework", "net8.0", @"test/unit-tests.csproj"),
1028
- ],
1029
- TargetFrameworks = ["net8.0"],
1030
- ImportedFiles = [],
1031
- AdditionalFiles = [],
1032
- },
1033
- new()
1034
- {
1035
- FilePath = "../src/helpers.csproj",
1036
- Dependencies = [
1037
- new("Package.B", "4.5.6", DependencyType.PackageReference, TargetFrameworks: ["net8.0"], IsDirect: true)
1038
- ],
1039
- Properties = [
1040
- new("TargetFramework", "net8.0", @"src/helpers.csproj"),
1041
- ],
1042
- TargetFrameworks = ["net8.0"],
1043
- ReferencedProjectPaths = [],
1044
- ImportedFiles = [],
1045
- AdditionalFiles = [],
1046
- }
1047
- ]
1048
- }
1049
- );
1050
- }
1051
-
1052
554
  [Fact]
1053
555
  public async Task DiscoverReportsPackagesThroughSolutionFilesNotInTheSameDirectoryTreeAsTheProjects()
1054
556
  {
@@ -1118,7 +620,6 @@ public partial class DiscoveryWorkerTests
1118
620
  public async Task WindowsSpecificProjectAndWindowsSpecificDependency()
1119
621
  {
1120
622
  await TestDiscoveryAsync(
1121
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
1122
623
  packages: [
1123
624
  MockNuGetPackage.CreateSimplePackage("Some.Os.Package", "1.2.3", "net6.0-windows7.0")
1124
625
  ],
@@ -1159,10 +660,9 @@ public partial class DiscoveryWorkerTests
1159
660
  }
1160
661
 
1161
662
  [Fact]
1162
- public async Task DiscoveryWithTargetPlaformVersion_DirectDiscovery()
663
+ public async Task DiscoveryWithTargetPlaformVersion()
1163
664
  {
1164
665
  await TestDiscoveryAsync(
1165
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
1166
666
  packages:
1167
667
  [
1168
668
  MockNuGetPackage.CreateSimplePackage("Some.Package", "1.2.3", "net8.0"),
@@ -1205,58 +705,9 @@ public partial class DiscoveryWorkerTests
1205
705
  }
1206
706
 
1207
707
  [Fact]
1208
- public async Task DiscoveryWithTargetPlaformVersion_TemporaryProjectDiscovery()
1209
- {
1210
- await TestDiscoveryAsync(
1211
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = false },
1212
- packages:
1213
- [
1214
- MockNuGetPackage.CreateSimplePackage("Some.Package", "1.2.3", "net8.0"),
1215
- ],
1216
- workspacePath: "src",
1217
- files:
1218
- [
1219
- ("src/project.csproj", """
1220
- <Project Sdk="Microsoft.NET.Sdk">
1221
- <PropertyGroup>
1222
- <TargetFrameworks>net8.0-ios;net8.0-android;net8.0-macos;net8.0-maccatalyst</TargetFrameworks>
1223
- </PropertyGroup>
1224
- <ItemGroup>
1225
- <PackageReference Include="Some.Package" Version="1.2.3" />
1226
- </ItemGroup>
1227
- </Project>
1228
- """),
1229
- ],
1230
- expectedResult: new()
1231
- {
1232
- Path = "src",
1233
- Projects = [
1234
- new()
1235
- {
1236
- FilePath = "project.csproj",
1237
- Dependencies = [
1238
- new("Some.Package", "1.2.3", DependencyType.PackageReference, TargetFrameworks: ["net8.0-android", "net8.0-ios", "net8.0-maccatalyst", "net8.0-macos"], IsDirect: true)
1239
- ],
1240
- Properties = [
1241
- new("TargetFrameworks", "net8.0-ios;net8.0-android;net8.0-macos;net8.0-maccatalyst", @"src/project.csproj"),
1242
- ],
1243
- TargetFrameworks = ["net8.0-android", "net8.0-ios", "net8.0-maccatalyst", "net8.0-macos"],
1244
- ReferencedProjectPaths = [],
1245
- ImportedFiles = [],
1246
- AdditionalFiles = [],
1247
- }
1248
- ]
1249
- }
1250
- );
1251
- }
1252
-
1253
- [Theory]
1254
- [InlineData(true)]
1255
- [InlineData(false)]
1256
- public async Task PackageLockJsonFileIsReported(bool useDirectDiscovery)
708
+ public async Task PackageLockJsonFileIsReported()
1257
709
  {
1258
710
  await TestDiscoveryAsync(
1259
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = useDirectDiscovery },
1260
711
  packages:
1261
712
  [
1262
713
  MockNuGetPackage.CreateSimplePackage("Some.Package", "1.2.3", "net8.0"),
@@ -1328,14 +779,14 @@ public partial class DiscoveryWorkerTests
1328
779
  }
1329
780
  }
1330
781
  }
1331
- """);
782
+ """, TestContext.Current.CancellationToken);
1332
783
  using var tempEnvironment = new TemporaryEnvironment([("DOTNET_PACKAGE_CORRELATION_FILE_PATH", packageCorrelationFile)]);
1333
784
 
1334
785
  // The SDK package handling is detected in a very specific circumstance; an assembly being removed from the
1335
786
  // `@(References)` item group in the `_HandlePackageFileConflicts` target. Since we don't want to involve
1336
787
  // the real SDK, we fake some required targets.
1337
788
  await TestDiscoveryAsync(
1338
- experimentsManager: new ExperimentsManager() { InstallDotnetSdks = true, UseDirectDiscovery = true },
789
+ experimentsManager: new ExperimentsManager() { InstallDotnetSdks = true },
1339
790
  packages: [],
1340
791
  workspacePath: "",
1341
792
  files:
@@ -1421,7 +872,6 @@ public partial class DiscoveryWorkerTests
1421
872
  // can't resolve the transitive dependencies; only the VS project system can, so there are some manual steps to allow
1422
873
  // dependency discovery.
1423
874
  await TestDiscoveryAsync(
1424
- experimentsManager: new ExperimentsManager() { UseDirectDiscovery = true },
1425
875
  packages: [
1426
876
  MockNuGetPackage.CreateSimplePackage("Some.Dependency", "1.0.0", "net48", [(null, [("Some.Transitive.Dependency", "2.0.0")])]),
1427
877
  MockNuGetPackage.CreateSimplePackage("Some.Transitive.Dependency", "2.0.0", "net48"),