dependabot-nuget 0.268.0 → 0.270.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3dbd572d869f156e22c4020848387b9b54611ad236c08be6b3ca4cce3e5e7ebc
4
- data.tar.gz: f9578fc6352ff07629255fdd1bb2032cda9b0109090507fc39eed9e1b369a68d
3
+ metadata.gz: 690337cc223bbf06e50f9f66fff955f966931bbc4368fe4d5849efb386c4a123
4
+ data.tar.gz: bce0d34b0c79064c99a511b88b8087f5d287ff7fef85aa01bb32b6d3b824a7d4
5
5
  SHA512:
6
- metadata.gz: 8c91cd7ef8d66d4aa48de704d70d41087ad8b6f867946f1cf59038a22f22d06febb5227e637d339fe93ec8fa5c086f8d410e16d00c3f70a4c8c348993de01c28
7
- data.tar.gz: 161deea8269b8c3fe00013ef83da37e96ddedf9518e9463bdf952034a03ef00be0fac713495b4706ccbcb3d08d072aec700b7921dcbf01506e8e4d432c4fc634
6
+ metadata.gz: 431e6a7b442ce8a7430882a125ccebe3b77b54dfc68698aa5c6279be0cde427a924c3faafceb0b1414d2e0feff35ad43e29e31aa410b11ea3bf451ac5cbf5288
7
+ data.tar.gz: 805297f077777b6cc7f8fdccbe46a37909b008bd7a09abfc86816ad3cdfda1da837b8fa49f8c4086e5910c27f61bc2179b4b550d84e26cabc378d34201aee4f5
@@ -407,6 +407,7 @@ public partial class EntryPointTests
407
407
  try
408
408
  {
409
409
  await MockNuGetPackagesInDirectory(packages, path);
410
+
410
411
  var args = getArgs(path);
411
412
  var result = await Program.Main(args);
412
413
  if (result != 0)
@@ -255,6 +255,12 @@ public partial class AnalyzeWorker
255
255
  CancellationToken cancellationToken)
256
256
  {
257
257
  var versions = versionResult.GetVersions();
258
+ if (versions.Length == 0)
259
+ {
260
+ // if absolutely nothing was found, then we can't update
261
+ return null;
262
+ }
263
+
258
264
  var orderedVersions = findLowestVersion
259
265
  ? versions.OrderBy(v => v) // If we are fixing a vulnerability, then we want the lowest version that is safe.
260
266
  : versions.OrderByDescending(v => v); // If we are just updating versions, then we want the highest version possible.
@@ -84,24 +84,27 @@ internal static class CompatibilityChecker
84
84
  var reader = new NuspecReader(nuspecStream);
85
85
 
86
86
  var isDevDependency = reader.GetDevelopmentDependency();
87
+ var tfms = new HashSet<NuGetFramework>();
88
+ var dependencyGroups = reader.GetDependencyGroups().ToArray();
87
89
 
88
- var tfms = reader.GetDependencyGroups()
89
- .Select(d => d.TargetFramework)
90
- .ToImmutableArray();
91
- if (tfms.Length == 0)
90
+ foreach (var d in dependencyGroups)
92
91
  {
93
- // If the nuspec doesn't have any dependency groups,
94
- // try to get the TargetFramework from files in the lib folder.
95
92
  var libItems = (await readers.ContentReader.GetLibItemsAsync(cancellationToken)).ToList();
96
- if (libItems.Count == 0)
93
+
94
+ foreach (var item in libItems)
97
95
  {
98
- // If there is no lib folder in this package, then assume it is a dev dependency.
99
- isDevDependency = true;
96
+ tfms.Add(item.TargetFramework);
100
97
  }
101
98
 
102
- tfms = libItems.Select(item => item.TargetFramework)
103
- .Distinct()
104
- .ToImmutableArray();
99
+ if (!d.TargetFramework.IsAny)
100
+ {
101
+ tfms.Add(d.TargetFramework);
102
+ }
103
+ }
104
+
105
+ if (!tfms.Any())
106
+ {
107
+ tfms.Add(NuGetFramework.AnyFramework);
105
108
  }
106
109
 
107
110
  // The interfaces we given are not disposable but the underlying type can be.
@@ -109,7 +112,7 @@ internal static class CompatibilityChecker
109
112
  (readers.CoreReader as IDisposable)?.Dispose();
110
113
  (readers.ContentReader as IDisposable)?.Dispose();
111
114
 
112
- return (isDevDependency, tfms);
115
+ return (isDevDependency, tfms.ToImmutableArray());
113
116
  }
114
117
 
115
118
  internal static PackageReaders ReadPackage(string tempPackagePath)
@@ -116,7 +116,14 @@ public class IndividualRequirement : Requirement
116
116
  : [requirement[..(splitIndex + 1)].Trim(), requirement[(splitIndex + 1)..].Trim()];
117
117
 
118
118
  var op = parts.Length == 1 ? "=" : parts[0];
119
- var version = NuGetVersion.Parse(parts[^1]);
119
+ var versionString = parts[^1];
120
+
121
+ // allow for single character wildcards; may be asterisk (NuGet-style: 1.*) or a single letter (alternate style: 1.x)
122
+ var versionParts = versionString.Split('.');
123
+ var recreatedVersionParts = versionParts.Select(vp => vp.Length == 1 && (vp == "*" || char.IsAsciiLetter(vp[0])) ? "0" : vp).ToArray();
124
+
125
+ var rebuiltVersionString = string.Join(".", recreatedVersionParts);
126
+ var version = NuGetVersion.Parse(rebuiltVersionString);
120
127
 
121
128
  return new IndividualRequirement(op, version);
122
129
  }
@@ -24,6 +24,7 @@ internal static class SdkPackageUpdater
24
24
 
25
25
  // Get the set of all top-level dependencies in the current project
26
26
  var topLevelDependencies = MSBuildHelper.GetTopLevelPackageDependencyInfos(buildFiles).ToArray();
27
+
27
28
  if (!await DoesDependencyRequireUpdateAsync(repoRootPath, projectPath, tfms, topLevelDependencies, dependencyName, newDependencyVersion, logger))
28
29
  {
29
30
  return;
@@ -306,6 +307,7 @@ internal static class SdkPackageUpdater
306
307
  IDictionary<string, string> peerDependencies,
307
308
  Logger logger)
308
309
  {
310
+
309
311
  var result = TryUpdateDependencyVersion(buildFiles, dependencyName, previousDependencyVersion, newDependencyVersion, logger);
310
312
  if (result == UpdateResult.NotFound)
311
313
  {
@@ -324,7 +326,20 @@ internal static class SdkPackageUpdater
324
326
  {
325
327
  foreach (string tfm in targetFrameworks)
326
328
  {
327
- Dependency[]? resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRootPath, projectFile.Path, tfm, updatedTopLevelDependencies, logger);
329
+ if (MSBuildHelper.UseNewDependencySolver())
330
+ {
331
+ // Find the index of the dependency we are updating and revert it to the previous version
332
+ int dependencyIndex = Array.FindIndex(updatedTopLevelDependencies, d => string.Equals(d.Name, dependencyName, StringComparison.OrdinalIgnoreCase));
333
+ if (dependencyIndex != -1)
334
+ {
335
+ var originalDependency = updatedTopLevelDependencies[dependencyIndex];
336
+ updatedTopLevelDependencies[dependencyIndex] = originalDependency with { Version = previousDependencyVersion };
337
+ }
338
+
339
+ }
340
+ Dependency[] update = [new Dependency(dependencyName, newDependencyVersion, DependencyType.PackageReference)];
341
+ Dependency[]? resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRootPath, projectFile.Path, tfm, updatedTopLevelDependencies, update, logger);
342
+
328
343
  if (resolvedDependencies is null)
329
344
  {
330
345
  logger.Log($" Unable to resolve dependency conflicts for {projectFile.Path}.");
@@ -345,7 +360,7 @@ internal static class SdkPackageUpdater
345
360
  continue;
346
361
  }
347
362
 
348
- // update all other dependencies
363
+ // update all dependencies
349
364
  foreach (Dependency resolvedDependency in resolvedDependencies
350
365
  .Where(d => !d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase))
351
366
  .Where(d => d.Version is not null))