dependabot-nuget 0.345.0 → 0.346.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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1560ef2944db7a46d2e26478b56c91abc4a054bbb325003e4435d89e6e23ae94
|
|
4
|
+
data.tar.gz: 0d00ce7b7ebdeaea3752ed889b904a87648e5bc1a13e1ac9c1e53abab9835b53
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90b739b20c70f4ee18fdde1704d7bed69e7cc0fbe45f948cdee8fd0e6f0ad1e7b48dfdc36a356af0def8831c0b490c2865ad38861d660d8c02b57734209c3f13
|
|
7
|
+
data.tar.gz: d01ff80fcd31819a6b8a098b4201cfa5a291878d5c8311c81f98eecd55d9a02feb9c82efad44ec51a1dd5d876372e754e02bd0e9856d80576d1eacc257d38b73
|
|
@@ -209,7 +209,62 @@ public class FileWriterWorker
|
|
|
209
209
|
foreach (var projectDiscovery in orderedProjectDiscovery)
|
|
210
210
|
{
|
|
211
211
|
var projectFullPath = Path.Join(repoContentsPath.FullName, initialDiscoveryResult.Path, projectDiscovery.FilePath).FullyNormalizedRootedPath();
|
|
212
|
-
var
|
|
212
|
+
var projectDirectory = new DirectoryInfo(Path.GetDirectoryName(projectFullPath)!);
|
|
213
|
+
var projectRelativePath = Path.GetRelativePath(repoContentsPath.FullName, projectFullPath).FullyNormalizedRootedPath();
|
|
214
|
+
var projectRelativeDirectory = Path.GetDirectoryName(projectRelativePath)!.NormalizePathToUnix();
|
|
215
|
+
_logger.Info($"Attempting to update {dependencyName} for {projectRelativePath}");
|
|
216
|
+
|
|
217
|
+
// rerun discovery because a previous file update may have already fixed this
|
|
218
|
+
var rerunWorkspaceDiscovery = await _discoveryWorker.RunAsync(repoContentsPath.FullName, projectRelativeDirectory);
|
|
219
|
+
var rerunProjectDiscovery = rerunWorkspaceDiscovery.GetProjectDiscoveryFromFullPath(repoContentsPath, new FileInfo(projectFullPath));
|
|
220
|
+
if (rerunProjectDiscovery is null)
|
|
221
|
+
{
|
|
222
|
+
_logger.Warn($" Unable to re-run project discovery for project {projectRelativePath}.");
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
var candidateDependencyToUpdate = rerunProjectDiscovery.Dependencies.FirstOrDefault(d => d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase));
|
|
227
|
+
if (candidateDependencyToUpdate?.Version is null)
|
|
228
|
+
{
|
|
229
|
+
_logger.Warn($" Unable to find dependency after discovery rerun.");
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if (!NuGetVersion.TryParse(candidateDependencyToUpdate.Version, out var candidateDependencyCurrentVersion))
|
|
234
|
+
{
|
|
235
|
+
_logger.Warn($" Unable to parse discovered version number from string: {candidateDependencyToUpdate.Version}");
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (candidateDependencyCurrentVersion >= newDependencyVersion)
|
|
240
|
+
{
|
|
241
|
+
_logger.Info($" Dependency is already up to date at version {candidateDependencyCurrentVersion}, possibly from a previous operation.");
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
var rerunTopLevelDependencies = rerunProjectDiscovery.Dependencies
|
|
246
|
+
.Where(d => !d.IsTransitive)
|
|
247
|
+
.ToImmutableArray();
|
|
248
|
+
var rerunDesiredDependencies = rerunTopLevelDependencies.Any(d => d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase))
|
|
249
|
+
? rerunTopLevelDependencies.Select(d => d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase) ? newDependency : d).ToImmutableArray()
|
|
250
|
+
: rerunTopLevelDependencies.Concat([newDependency]).ToImmutableArray();
|
|
251
|
+
var resolvedDependenciesInThisproject = await _dependencySolver.SolveAsync(rerunTopLevelDependencies, rerunDesiredDependencies, targetFramework);
|
|
252
|
+
if (resolvedDependenciesInThisproject is null)
|
|
253
|
+
{
|
|
254
|
+
_logger.Warn($" Unable to solve dependency conflicts for {projectRelativePath}/{targetFramework}.");
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
var updatedFiles = await TryPerformFileWritesAsync(_fileWriter, repoContentsPath, projectDirectory, rerunProjectDiscovery!, resolvedDependenciesInThisproject.Value);
|
|
259
|
+
if (updatedFiles.Length == 0)
|
|
260
|
+
{
|
|
261
|
+
_logger.Info(" Files were unable to be updated.");
|
|
262
|
+
}
|
|
263
|
+
else
|
|
264
|
+
{
|
|
265
|
+
_logger.Info($" Successfully updated the following files: {string.Join(", ", updatedFiles)}");
|
|
266
|
+
}
|
|
267
|
+
|
|
213
268
|
allUpdatedFiles.AddRange(updatedFiles);
|
|
214
269
|
}
|
|
215
270
|
|
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs
CHANGED
|
@@ -812,10 +812,12 @@ public class FileWriterWorkerTests : TestBase
|
|
|
812
812
|
discoveryWorker: new TestDiscoveryWorker(args =>
|
|
813
813
|
{
|
|
814
814
|
discoveryRequestCount++;
|
|
815
|
-
|
|
815
|
+
if (discoveryRequestCount <= 3)
|
|
816
816
|
{
|
|
817
|
-
// initial request
|
|
818
|
-
|
|
817
|
+
// 1 - initial request
|
|
818
|
+
// 2 - pre-edit request
|
|
819
|
+
// 3 - post-edit request - no change made, indicates failure
|
|
820
|
+
return Task.FromResult(new WorkspaceDiscoveryResult()
|
|
819
821
|
{
|
|
820
822
|
Path = "/",
|
|
821
823
|
Projects = [
|
|
@@ -829,26 +831,10 @@ public class FileWriterWorkerTests : TestBase
|
|
|
829
831
|
ReferencedProjectPaths = []
|
|
830
832
|
}
|
|
831
833
|
]
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
Path = "/",
|
|
837
|
-
Projects = [
|
|
838
|
-
new ProjectDiscoveryResult()
|
|
839
|
-
{
|
|
840
|
-
FilePath = "project.csproj",
|
|
841
|
-
Dependencies = [new Dependency("Some.Dependency", "1.0.0", DependencyType.PackageReference)],
|
|
842
|
-
TargetFrameworks = ["net9.0"],
|
|
843
|
-
AdditionalFiles = [],
|
|
844
|
-
ImportedFiles = [],
|
|
845
|
-
ReferencedProjectPaths = []
|
|
846
|
-
}
|
|
847
|
-
]
|
|
848
|
-
},
|
|
849
|
-
_ => throw new NotSupportedException($"Didn't expect {discoveryRequestCount} discovery requests"),
|
|
850
|
-
};
|
|
851
|
-
return Task.FromResult(result);
|
|
834
|
+
});
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
throw new NotSupportedException($"Didn't expect {discoveryRequestCount} discovery requests");
|
|
852
838
|
}),
|
|
853
839
|
dependencySolver: null, // use real worker
|
|
854
840
|
fileWriter: null, // use real worker
|
|
@@ -867,6 +853,80 @@ public class FileWriterWorkerTests : TestBase
|
|
|
867
853
|
);
|
|
868
854
|
}
|
|
869
855
|
|
|
856
|
+
[Fact]
|
|
857
|
+
public async Task EndToEnd_PriorFileEditResolvedDependencyInSubsequentFile()
|
|
858
|
+
{
|
|
859
|
+
// via a ProjectReference, two projects have the same dependency and updating the root causes the other dependency to also be updated and not result in unnecessarily pinning anything
|
|
860
|
+
await TestAsync(
|
|
861
|
+
dependencyName: "Some.Dependency",
|
|
862
|
+
oldDependencyVersion: "1.0.0",
|
|
863
|
+
newDependencyVersion: "2.0.0",
|
|
864
|
+
files: [
|
|
865
|
+
("src/a/a.csproj", """
|
|
866
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
867
|
+
<PropertyGroup>
|
|
868
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
869
|
+
</PropertyGroup>
|
|
870
|
+
<ItemGroup>
|
|
871
|
+
<ProjectReference Include="..\b\b.csproj" />
|
|
872
|
+
</ItemGroup>
|
|
873
|
+
<ItemGroup>
|
|
874
|
+
<PackageReference Include="Unrelated.Dependency" Version="3.0.0" />
|
|
875
|
+
</ItemGroup>
|
|
876
|
+
</Project>
|
|
877
|
+
"""),
|
|
878
|
+
("src/b/b.csproj", """
|
|
879
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
880
|
+
<PropertyGroup>
|
|
881
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
882
|
+
</PropertyGroup>
|
|
883
|
+
<ItemGroup>
|
|
884
|
+
<PackageReference Include="Some.Dependency" Version="1.0.0" />
|
|
885
|
+
</ItemGroup>
|
|
886
|
+
</Project>
|
|
887
|
+
"""),
|
|
888
|
+
("Directory.Build.props", "<Project />"),
|
|
889
|
+
("Directory.Build.targets", "<Project />"),
|
|
890
|
+
],
|
|
891
|
+
packages: [
|
|
892
|
+
MockNuGetPackage.CreateSimplePackage("Some.Dependency", "1.0.0", "net9.0"),
|
|
893
|
+
MockNuGetPackage.CreateSimplePackage("Some.Dependency", "2.0.0", "net9.0"),
|
|
894
|
+
MockNuGetPackage.CreateSimplePackage("Unrelated.Dependency", "3.0.0", "net9.0"),
|
|
895
|
+
],
|
|
896
|
+
discoveryWorker: null, // use real worker
|
|
897
|
+
dependencySolver: null, // use real worker
|
|
898
|
+
fileWriter: null, // use real worker
|
|
899
|
+
expectedFiles: [
|
|
900
|
+
("src/a/a.csproj", """
|
|
901
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
902
|
+
<PropertyGroup>
|
|
903
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
904
|
+
</PropertyGroup>
|
|
905
|
+
<ItemGroup>
|
|
906
|
+
<ProjectReference Include="..\b\b.csproj" />
|
|
907
|
+
</ItemGroup>
|
|
908
|
+
<ItemGroup>
|
|
909
|
+
<PackageReference Include="Unrelated.Dependency" Version="3.0.0" />
|
|
910
|
+
</ItemGroup>
|
|
911
|
+
</Project>
|
|
912
|
+
"""),
|
|
913
|
+
("src/b/b.csproj", """
|
|
914
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
915
|
+
<PropertyGroup>
|
|
916
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
917
|
+
</PropertyGroup>
|
|
918
|
+
<ItemGroup>
|
|
919
|
+
<PackageReference Include="Some.Dependency" Version="2.0.0" />
|
|
920
|
+
</ItemGroup>
|
|
921
|
+
</Project>
|
|
922
|
+
"""),
|
|
923
|
+
],
|
|
924
|
+
expectedOperations: [
|
|
925
|
+
new PinnedUpdate() { DependencyName = "Some.Dependency", NewVersion = NuGetVersion.Parse("2.0.0"), UpdatedFiles = ["/src/b/b.csproj"] }
|
|
926
|
+
]
|
|
927
|
+
);
|
|
928
|
+
}
|
|
929
|
+
|
|
870
930
|
private static async Task TestAsync(
|
|
871
931
|
string dependencyName,
|
|
872
932
|
string oldDependencyVersion,
|
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.
|
|
4
|
+
version: 0.346.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.
|
|
18
|
+
version: 0.346.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.
|
|
25
|
+
version: 0.346.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: debug
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -551,7 +551,7 @@ licenses:
|
|
|
551
551
|
- MIT
|
|
552
552
|
metadata:
|
|
553
553
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
554
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
|
554
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.346.0
|
|
555
555
|
rdoc_options: []
|
|
556
556
|
require_paths:
|
|
557
557
|
- lib
|