dependabot-nuget 0.366.0 → 0.367.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: e0aedc20fa2f1df16323aca062c9c44c6eea43e7765b723de4e95a140684876d
4
- data.tar.gz: e4b9b5783a76aeb9a28c8af0ade2db202eeb93112a4d49a940860541a433c2fa
3
+ metadata.gz: 675b7604808dce85b65360a24471048101a7c42752bb09951888a406dc7cf7f1
4
+ data.tar.gz: a75674364b9ed467d976022a40838fd3cf412f804af8ce1dd73e0f564fe0fca8
5
5
  SHA512:
6
- metadata.gz: 2ac6071c674f86aaf2822d46bb9510d4ae8a9914bea75856864a50087e0aacc4eb36087e3d9403fcba55acc0ad88ae477d289e8134e27958ade18307cd278fe6
7
- data.tar.gz: 6c0ec49e96823dc4d6dc110ba9aef051031a9adba875242f087eaf8f1484ac49abf59a25e69e72a2f04457398aa32ef3de539c456ced39f677b0b4561ff9185f
6
+ metadata.gz: 76786b956a53f7482bbe291c25d9abb780683b804652d72ff2f5f8726cc711fedb7e784e9842bd1eca2da1fed17fab28246cb3ec8c247c85669bd8ed3f622d2f
7
+ data.tar.gz: ed556d26ad7a22992e30a80b3e2c844add33a65ee501158f9ec741e04924edd7ada871513854b64527fdab13969865605b0a7a3b58592cecafc302522be13cdf
@@ -253,21 +253,47 @@ public class XmlFileWriter : IFileWriter
253
253
  .ToArray();
254
254
  if (matchingPackageVersionElementsAndPaths.Length > 0)
255
255
  {
256
- // found matching `<PackageVersion>` element; if `Version` attribute is appropriate we're done, otherwise set `VersionOverride` attribute on new element
256
+ // found matching `<PackageVersion>` element
257
257
  var (matchingPackageVersionElement, filePath) = matchingPackageVersionElementsAndPaths.First();
258
258
  var versionAttribute = matchingPackageVersionElement.GetAttributeCaseInsensitive(VersionMetadataName);
259
+ var isVersionOverrideNeeded = false;
259
260
  if (versionAttribute is not null &&
260
- VersionRange.TryParse(versionAttribute.Value, out var existingVersionRange) &&
261
- existingVersionRange.MinVersion == requiredVersion)
261
+ VersionRange.TryParse(versionAttribute.Value, out var existingVersionRange))
262
262
  {
263
- // version matches; no update needed
264
- _logger.Info($"Dependency {requiredPackageVersion.Name} already set to {requiredVersion}; no override needed.");
263
+ if (existingVersionRange.MinVersion == requiredVersion)
264
+ {
265
+ // version matches; no update needed
266
+ _logger.Info($"Dependency {requiredPackageVersion.Name} already set to {requiredVersion} in file {filePath}; no update needed.");
267
+ }
268
+ else if (existingVersionRange.Satisfies(oldVersion))
269
+ {
270
+ // found matching old version; update the attribute directly
271
+ _logger.Info($"Dependency {requiredPackageVersion.Name} updated from version {oldVersion} to {requiredVersion} in file {filePath}.");
272
+ ReplaceNode(
273
+ filePath,
274
+ matchingPackageVersionElement.AsNode,
275
+ matchingPackageVersionElement.ReplaceAttribute(
276
+ versionAttribute,
277
+ versionAttribute.WithValue(requiredVersion.ToString())
278
+ ).AsNode
279
+ );
280
+ }
281
+ else
282
+ {
283
+ // version doesn't match; use `VersionOverride` attribute on new element
284
+ isVersionOverrideNeeded = true;
285
+ }
265
286
  }
266
287
  else
267
288
  {
268
- // version doesn't match; use `VersionOverride` attribute on new element
269
- _logger.Info($"Dependency {requiredPackageVersion.Name} set to {requiredVersion}; using `{VersionOverrideMetadataName}` attribute on new element.");
270
- newElement = (IXmlElementSyntax)ReplaceNode(
289
+ // version not found; use `VersionOverride` attribute on new element
290
+ isVersionOverrideNeeded = true;
291
+ }
292
+
293
+ if (isVersionOverrideNeeded)
294
+ {
295
+ _logger.Info($"Dependency {requiredPackageVersion.Name} set to {requiredVersion} using `{VersionOverrideMetadataName}` attribute on new element in file {projectRelativePath}.");
296
+ ReplaceNode(
271
297
  projectRelativePath,
272
298
  newElement.AsNode,
273
299
  newElement.WithAttribute(VersionOverrideMetadataName, requiredVersion.ToString()).AsNode
@@ -1949,4 +1949,52 @@ public class XmlFileWriterTests : FileWriterTestsBase
1949
1949
  ]
1950
1950
  );
1951
1951
  }
1952
+
1953
+ [Fact]
1954
+ public async Task UpdatingAPinnedCentrallyManagedPackageUpdatesJustTheVersionNumberWhenDeclarationIsPresent()
1955
+ {
1956
+ await TestAsync(
1957
+ useCentralPackageTransitivePinning: true,
1958
+ files: [
1959
+ ("src/project.csproj", """
1960
+ <?xml version="1.0"?>
1961
+ <Project Sdk="Microsoft.NET.Sdk">
1962
+ <ItemGroup>
1963
+ <PackageReference Include="Unrelated.Dependency" />
1964
+ </ItemGroup>
1965
+ </Project>
1966
+ """),
1967
+ ("Directory.Packages.props", """
1968
+ <?xml version="1.0"?>
1969
+ <Project>
1970
+ <ItemGroup>
1971
+ <PackageVersion Include="Some.Dependency" Version="1.0.0" />
1972
+ <PackageVersion Include="Unrelated.Dependency" Version="3.0.0" />
1973
+ </ItemGroup>
1974
+ </Project>
1975
+ """)
1976
+ ],
1977
+ initialProjectDependencyStrings: ["Some.Dependency/1.0.0"],
1978
+ requiredDependencyStrings: ["Some.Dependency/2.0.0"],
1979
+ expectedFiles: [
1980
+ ("src/project.csproj", """
1981
+ <?xml version="1.0"?>
1982
+ <Project Sdk="Microsoft.NET.Sdk">
1983
+ <ItemGroup>
1984
+ <PackageReference Include="Unrelated.Dependency" />
1985
+ </ItemGroup>
1986
+ </Project>
1987
+ """),
1988
+ ("Directory.Packages.props", """
1989
+ <?xml version="1.0"?>
1990
+ <Project>
1991
+ <ItemGroup>
1992
+ <PackageVersion Include="Some.Dependency" Version="2.0.0" />
1993
+ <PackageVersion Include="Unrelated.Dependency" Version="3.0.0" />
1994
+ </ItemGroup>
1995
+ </Project>
1996
+ """)
1997
+ ]
1998
+ );
1999
+ }
1952
2000
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-nuget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.366.0
4
+ version: 0.367.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.366.0
18
+ version: 0.367.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.366.0
25
+ version: 0.367.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -553,7 +553,7 @@ licenses:
553
553
  - MIT
554
554
  metadata:
555
555
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
556
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.366.0
556
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.367.0
557
557
  rdoc_options: []
558
558
  require_paths:
559
559
  - lib