dependabot-nuget 0.267.0 → 0.270.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +1 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/AnalyzeWorker.cs +6 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/CompatabilityChecker.cs +16 -13
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/Requirement.cs +8 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs +33 -14
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs +689 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +226 -23
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +84 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/RequirementTests.cs +14 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TemporaryEnvironment.cs +23 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +164 -55
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +186 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +785 -1
- data/lib/dependabot/nuget/file_updater.rb +44 -22
- data/lib/dependabot/nuget/native_helpers.rb +6 -1
- metadata +7 -5
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
using System.Collections.Immutable;
|
2
|
+
using System.Text;
|
2
3
|
using System.Text.Json;
|
3
4
|
|
5
|
+
using NuGet;
|
6
|
+
|
4
7
|
using NuGetUpdater.Core.Updater;
|
5
8
|
|
6
9
|
using Xunit;
|
@@ -1663,67 +1666,173 @@ public partial class UpdateWorkerTests
|
|
1663
1666
|
[Fact]
|
1664
1667
|
public async Task PackageCanBeUpdatedWhenAnotherInstalledPackageHasBeenDelisted()
|
1665
1668
|
{
|
1666
|
-
// updating one package (
|
1667
|
-
|
1669
|
+
// updating one package (Some.Package) when another installed package (Delisted.Package/5.0.0) has been delisted
|
1670
|
+
// this test can't be faked with a local package source and requires an HTTP endpoint; the important part is
|
1671
|
+
// the `"listed": false` in the registration index
|
1672
|
+
static (int, byte[]) TestHttpHandler(string uriString)
|
1673
|
+
{
|
1674
|
+
var uri = new Uri(uriString, UriKind.Absolute);
|
1675
|
+
var baseUrl = $"{uri.Scheme}://{uri.Host}:{uri.Port}";
|
1676
|
+
return uri.PathAndQuery switch
|
1677
|
+
{
|
1678
|
+
"/index.json" => (200, Encoding.UTF8.GetBytes($$"""
|
1679
|
+
{
|
1680
|
+
"version": "3.0.0",
|
1681
|
+
"resources": [
|
1682
|
+
{
|
1683
|
+
"@id": "{{baseUrl}}/download",
|
1684
|
+
"@type": "PackageBaseAddress/3.0.0"
|
1685
|
+
},
|
1686
|
+
{
|
1687
|
+
"@id": "{{baseUrl}}/query",
|
1688
|
+
"@type": "SearchQueryService"
|
1689
|
+
},
|
1690
|
+
{
|
1691
|
+
"@id": "{{baseUrl}}/registrations",
|
1692
|
+
"@type": "RegistrationsBaseUrl"
|
1693
|
+
}
|
1694
|
+
]
|
1695
|
+
}
|
1696
|
+
""")),
|
1697
|
+
"/registrations/delisted.package/index.json" => (200, Encoding.UTF8.GetBytes($$"""
|
1698
|
+
{
|
1699
|
+
"count": 1,
|
1700
|
+
"items": [
|
1701
|
+
{
|
1702
|
+
"lower": "5.0.0",
|
1703
|
+
"upper": "5.0.0",
|
1704
|
+
"items": [
|
1705
|
+
{
|
1706
|
+
"catalogEntry": {
|
1707
|
+
"id": "Delisted.Package",
|
1708
|
+
"listed": false,
|
1709
|
+
"version": "5.0.0"
|
1710
|
+
},
|
1711
|
+
"packageContent": "{{baseUrl}}/download/delisted.package/5.0.0/delisted.package.5.0.0.nupkg",
|
1712
|
+
}
|
1713
|
+
]
|
1714
|
+
}
|
1715
|
+
]
|
1716
|
+
}
|
1717
|
+
""")),
|
1718
|
+
"/registrations/some.package/index.json" => (200, Encoding.UTF8.GetBytes($$"""
|
1719
|
+
{
|
1720
|
+
"count": 1,
|
1721
|
+
"items": [
|
1722
|
+
{
|
1723
|
+
"lower": "1.0.0",
|
1724
|
+
"upper": "2.0.0",
|
1725
|
+
"items": [
|
1726
|
+
{
|
1727
|
+
"catalogEntry": {
|
1728
|
+
"id": "Some.Package",
|
1729
|
+
"listed": true,
|
1730
|
+
"version": "1.0.0"
|
1731
|
+
},
|
1732
|
+
"packageContent": "{{baseUrl}}/download/some.package/1.0.0/some.package.1.0.0.nupkg",
|
1733
|
+
},
|
1734
|
+
{
|
1735
|
+
"catalogEntry": {
|
1736
|
+
"id": "Some.Package",
|
1737
|
+
"listed": true,
|
1738
|
+
"version": "2.0.0"
|
1739
|
+
},
|
1740
|
+
"packageContent": "{{baseUrl}}/download/some.package/2.0.0/some.package.2.0.0.nupkg",
|
1741
|
+
}
|
1742
|
+
]
|
1743
|
+
}
|
1744
|
+
]
|
1745
|
+
}
|
1746
|
+
""")),
|
1747
|
+
"/download/delisted.package/5.0.0/delisted.package.5.0.0.nupkg" =>
|
1748
|
+
(200, MockNuGetPackage.CreateSimplePackage("Delisted.Package", "5.0.0", "net45").GetZipStream().ReadAllBytes()),
|
1749
|
+
"/download/some.package/1.0.0/some.package.1.0.0.nupkg" =>
|
1750
|
+
(200, MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net45").GetZipStream().ReadAllBytes()),
|
1751
|
+
"/download/some.package/2.0.0/some.package.2.0.0.nupkg" =>
|
1752
|
+
(200, MockNuGetPackage.CreateSimplePackage("Some.Package", "2.0.0", "net45").GetZipStream().ReadAllBytes()),
|
1753
|
+
_ => (404, Encoding.UTF8.GetBytes("{}")), // everything is missing
|
1754
|
+
};
|
1755
|
+
}
|
1756
|
+
using var cache = new TemporaryDirectory();
|
1757
|
+
using var env = new TemporaryEnvironment([
|
1758
|
+
("NUGET_PACKAGES", Path.Join(cache.DirectoryPath, "NUGET_PACKAGES")),
|
1759
|
+
("NUGET_HTTP_CACHE_PATH", Path.Join(cache.DirectoryPath, "NUGET_HTTP_CACHE_PATH")),
|
1760
|
+
("NUGET_SCRATCH", Path.Join(cache.DirectoryPath, "NUGET_SCRATCH")),
|
1761
|
+
("NUGET_PLUGINS_CACHE_PATH", Path.Join(cache.DirectoryPath, "NUGET_PLUGINS_CACHE_PATH")),
|
1762
|
+
]);
|
1763
|
+
using var http = TestHttpServer.CreateTestServer(TestHttpHandler);
|
1764
|
+
await TestUpdateForProject("Some.Package", "1.0.0", "2.0.0",
|
1668
1765
|
// existing
|
1669
1766
|
projectContents: """
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
|
1688
|
-
|
1689
|
-
|
1690
|
-
|
1767
|
+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
1768
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
1769
|
+
<PropertyGroup>
|
1770
|
+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
1771
|
+
</PropertyGroup>
|
1772
|
+
<ItemGroup>
|
1773
|
+
<None Include="packages.config" />
|
1774
|
+
</ItemGroup>
|
1775
|
+
<ItemGroup>
|
1776
|
+
<Reference Include="Delisted.Package">
|
1777
|
+
<HintPath>packages\Delisted.Package.5.0.0\lib\net45\Delisted.Package.dll</HintPath>
|
1778
|
+
<Private>True</Private>
|
1779
|
+
</Reference>
|
1780
|
+
<Reference Include="Some.Package">
|
1781
|
+
<HintPath>packages\Some.Package.1.0.0\lib\net45\Some.Package.dll</HintPath>
|
1782
|
+
<Private>True</Private>
|
1783
|
+
</Reference>
|
1784
|
+
</ItemGroup>
|
1785
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
1786
|
+
</Project>
|
1787
|
+
""",
|
1691
1788
|
packagesConfigContents: """
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1789
|
+
<packages>
|
1790
|
+
<package id="Delisted.Package" version="5.0.0" targetFramework="net462" />
|
1791
|
+
<package id="Some.Package" version="1.0.0" targetFramework="net462" />
|
1792
|
+
</packages>
|
1793
|
+
""",
|
1794
|
+
additionalFiles:
|
1795
|
+
[
|
1796
|
+
("NuGet.Config", $"""
|
1797
|
+
<configuration>
|
1798
|
+
<packageSources>
|
1799
|
+
<clear />
|
1800
|
+
<add key="private_feed" value="{http.BaseUrl.TrimEnd('/')}/index.json" allowInsecureConnections="true" />
|
1801
|
+
</packageSources>
|
1802
|
+
</configuration>
|
1803
|
+
""")
|
1804
|
+
],
|
1697
1805
|
// expected
|
1698
1806
|
expectedProjectContents: """
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1807
|
+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
1808
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
1809
|
+
<PropertyGroup>
|
1810
|
+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
1811
|
+
</PropertyGroup>
|
1812
|
+
<ItemGroup>
|
1813
|
+
<None Include="packages.config" />
|
1814
|
+
</ItemGroup>
|
1815
|
+
<ItemGroup>
|
1816
|
+
<Reference Include="Delisted.Package">
|
1817
|
+
<HintPath>packages\Delisted.Package.5.0.0\lib\net45\Delisted.Package.dll</HintPath>
|
1818
|
+
<Private>True</Private>
|
1819
|
+
</Reference>
|
1820
|
+
<Reference Include="Some.Package">
|
1821
|
+
<HintPath>packages\Some.Package.2.0.0\lib\net45\Some.Package.dll</HintPath>
|
1822
|
+
<Private>True</Private>
|
1823
|
+
</Reference>
|
1824
|
+
</ItemGroup>
|
1825
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
1826
|
+
</Project>
|
1827
|
+
""",
|
1720
1828
|
expectedPackagesConfigContents: """
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1829
|
+
<?xml version="1.0" encoding="utf-8"?>
|
1830
|
+
<packages>
|
1831
|
+
<package id="Delisted.Package" version="5.0.0" targetFramework="net462" />
|
1832
|
+
<package id="Some.Package" version="2.0.0" targetFramework="net462" />
|
1833
|
+
</packages>
|
1834
|
+
"""
|
1835
|
+
);
|
1727
1836
|
}
|
1728
1837
|
|
1729
1838
|
[Fact]
|
@@ -52,10 +52,13 @@ public partial class UpdateWorkerTests
|
|
52
52
|
);
|
53
53
|
}
|
54
54
|
|
55
|
-
[
|
56
|
-
|
55
|
+
[Theory]
|
56
|
+
[InlineData("true")]
|
57
|
+
[InlineData(null)]
|
58
|
+
public async Task UpdateVersionChildElement_InProjectFile_ForPackageReferenceIncludeTheory(string variableValue)
|
57
59
|
{
|
58
60
|
// update Some.Package from 9.0.1 to 13.0.1
|
61
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]);
|
59
62
|
await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1",
|
60
63
|
packages:
|
61
64
|
[
|
@@ -91,6 +94,43 @@ public partial class UpdateWorkerTests
|
|
91
94
|
);
|
92
95
|
}
|
93
96
|
|
97
|
+
[Fact]
|
98
|
+
public async Task CallingResolveDependencyConflictsNew()
|
99
|
+
{
|
100
|
+
// update Microsoft.CodeAnalysis.Common from 4.9.2 to 4.10.0
|
101
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", "true")]);
|
102
|
+
await TestUpdateForProject("Microsoft.CodeAnalysis.Common", "4.9.2", "4.10.0",
|
103
|
+
// initial
|
104
|
+
projectContents: $"""
|
105
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
106
|
+
<PropertyGroup>
|
107
|
+
<TargetFramework>net8.0</TargetFramework>
|
108
|
+
</PropertyGroup>
|
109
|
+
<ItemGroup>
|
110
|
+
<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="4.9.2" />
|
111
|
+
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.9.2" />
|
112
|
+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.9.2" />
|
113
|
+
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.9.2" />
|
114
|
+
</ItemGroup>
|
115
|
+
</Project>
|
116
|
+
""",
|
117
|
+
// expected
|
118
|
+
expectedProjectContents: $"""
|
119
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
120
|
+
<PropertyGroup>
|
121
|
+
<TargetFramework>net8.0</TargetFramework>
|
122
|
+
</PropertyGroup>
|
123
|
+
<ItemGroup>
|
124
|
+
<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="4.10.0" />
|
125
|
+
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.10.0" />
|
126
|
+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.10.0" />
|
127
|
+
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.10.0" />
|
128
|
+
</ItemGroup>
|
129
|
+
</Project>
|
130
|
+
"""
|
131
|
+
);
|
132
|
+
}
|
133
|
+
|
94
134
|
[Fact]
|
95
135
|
public async Task UpdateVersions_InProjectFile_ForDuplicatePackageReferenceInclude()
|
96
136
|
{
|
@@ -489,9 +529,12 @@ public partial class UpdateWorkerTests
|
|
489
529
|
);
|
490
530
|
}
|
491
531
|
|
492
|
-
[
|
493
|
-
|
532
|
+
[Theory]
|
533
|
+
[InlineData(null)]
|
534
|
+
[InlineData("true")]
|
535
|
+
public async Task AddPackageReference_InProjectFile_ForTransientDependency(string variableValue)
|
494
536
|
{
|
537
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]);
|
495
538
|
// add transient package Some.Transient.Dependency from 5.0.1 to 5.0.2
|
496
539
|
await TestUpdateForProject("Some.Transient.Dependency", "5.0.1", "5.0.2", isTransitive: true,
|
497
540
|
packages:
|
@@ -532,6 +575,127 @@ public partial class UpdateWorkerTests
|
|
532
575
|
);
|
533
576
|
}
|
534
577
|
|
578
|
+
[Fact]
|
579
|
+
public async Task TransitiveDependencyCanBeAddedWithMismatchingSdk()
|
580
|
+
{
|
581
|
+
await TestUpdateForProject("Some.Transitive.Package", "1.0.0", "1.0.1", isTransitive: true,
|
582
|
+
packages:
|
583
|
+
[
|
584
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0", [(null, [("Some.Transitive.Package", "1.0.0")])]),
|
585
|
+
MockNuGetPackage.CreateSimplePackage("Some.Transitive.Package", "1.0.0", "net8.0"),
|
586
|
+
MockNuGetPackage.CreateSimplePackage("Some.Transitive.Package", "1.0.1", "net8.0"),
|
587
|
+
],
|
588
|
+
projectContents: """
|
589
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
590
|
+
<PropertyGroup>
|
591
|
+
<TargetFramework>net8.0</TargetFramework>
|
592
|
+
</PropertyGroup>
|
593
|
+
<ItemGroup>
|
594
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
595
|
+
</ItemGroup>
|
596
|
+
</Project>
|
597
|
+
""",
|
598
|
+
additionalFiles:
|
599
|
+
[
|
600
|
+
("global.json", """
|
601
|
+
{
|
602
|
+
"sdk": {
|
603
|
+
"version": "99.99.999" // this version doesn't match anything that's installed
|
604
|
+
}
|
605
|
+
}
|
606
|
+
""")
|
607
|
+
],
|
608
|
+
expectedProjectContents: """
|
609
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
610
|
+
<PropertyGroup>
|
611
|
+
<TargetFramework>net8.0</TargetFramework>
|
612
|
+
</PropertyGroup>
|
613
|
+
<ItemGroup>
|
614
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
615
|
+
<PackageReference Include="Some.Transitive.Package" Version="1.0.1" />
|
616
|
+
</ItemGroup>
|
617
|
+
</Project>
|
618
|
+
"""
|
619
|
+
);
|
620
|
+
}
|
621
|
+
|
622
|
+
[Fact]
|
623
|
+
public async Task TransitiveDependencyCanBeAddedWithCustomMSBuildSdk()
|
624
|
+
{
|
625
|
+
await TestUpdateForProject("Some.Transitive.Package", "1.0.0", "1.0.1", isTransitive: true,
|
626
|
+
packages:
|
627
|
+
[
|
628
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0", [(null, [("Some.Transitive.Package", "1.0.0")])]),
|
629
|
+
MockNuGetPackage.CreateSimplePackage("Some.Transitive.Package", "1.0.0", "net8.0"),
|
630
|
+
MockNuGetPackage.CreateSimplePackage("Some.Transitive.Package", "1.0.1", "net8.0"),
|
631
|
+
MockNuGetPackage.CreateMSBuildSdkPackage("Custom.MSBuild.Sdk", "1.2.3"),
|
632
|
+
],
|
633
|
+
projectContents: """
|
634
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
635
|
+
<PropertyGroup>
|
636
|
+
<TargetFramework>net8.0</TargetFramework>
|
637
|
+
</PropertyGroup>
|
638
|
+
<ItemGroup>
|
639
|
+
<PackageReference Include="Some.Package" />
|
640
|
+
</ItemGroup>
|
641
|
+
</Project>
|
642
|
+
""",
|
643
|
+
additionalFiles:
|
644
|
+
[
|
645
|
+
("Directory.Build.props", """
|
646
|
+
<Project>
|
647
|
+
<Import Project="Sdk.props" Sdk="Custom.MSBuild.Sdk" />
|
648
|
+
</Project>
|
649
|
+
"""),
|
650
|
+
("Directory.Packages.props", """
|
651
|
+
<Project>
|
652
|
+
<PropertyGroup>
|
653
|
+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
654
|
+
</PropertyGroup>
|
655
|
+
<ItemGroup>
|
656
|
+
<PackageVersion Include="Some.Package" Version="1.0.0" />
|
657
|
+
</ItemGroup>
|
658
|
+
</Project>
|
659
|
+
"""),
|
660
|
+
("global.json", """
|
661
|
+
{
|
662
|
+
"sdk": {
|
663
|
+
"version": "99.99.999" // this version doesn't match anything that's installed
|
664
|
+
},
|
665
|
+
"msbuild-sdks": {
|
666
|
+
"Custom.MSBuild.Sdk": "1.2.3"
|
667
|
+
}
|
668
|
+
}
|
669
|
+
""")
|
670
|
+
],
|
671
|
+
expectedProjectContents: """
|
672
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
673
|
+
<PropertyGroup>
|
674
|
+
<TargetFramework>net8.0</TargetFramework>
|
675
|
+
</PropertyGroup>
|
676
|
+
<ItemGroup>
|
677
|
+
<PackageReference Include="Some.Package" />
|
678
|
+
<PackageReference Include="Some.Transitive.Package" />
|
679
|
+
</ItemGroup>
|
680
|
+
</Project>
|
681
|
+
""",
|
682
|
+
additionalFilesExpected:
|
683
|
+
[
|
684
|
+
("Directory.Packages.props", """
|
685
|
+
<Project>
|
686
|
+
<PropertyGroup>
|
687
|
+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
688
|
+
</PropertyGroup>
|
689
|
+
<ItemGroup>
|
690
|
+
<PackageVersion Include="Some.Package" Version="1.0.0" />
|
691
|
+
<PackageVersion Include="Some.Transitive.Package" Version="1.0.1" />
|
692
|
+
</ItemGroup>
|
693
|
+
</Project>
|
694
|
+
""")
|
695
|
+
]
|
696
|
+
);
|
697
|
+
}
|
698
|
+
|
535
699
|
[Fact]
|
536
700
|
public async Task UpdateVersionAttribute_InProjectFile_ForAnalyzerPackageReferenceInclude()
|
537
701
|
{
|
@@ -2741,9 +2905,13 @@ public partial class UpdateWorkerTests
|
|
2741
2905
|
);
|
2742
2906
|
}
|
2743
2907
|
|
2744
|
-
[
|
2745
|
-
|
2908
|
+
[Theory]
|
2909
|
+
[InlineData("true")]
|
2910
|
+
[InlineData(null)]
|
2911
|
+
public async Task NoChange_IfThereAreIncoherentVersions(string variableValue)
|
2746
2912
|
{
|
2913
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]);
|
2914
|
+
|
2747
2915
|
// trying to update `Transitive.Dependency` to 1.1.0 would normally pull `Some.Package` from 1.0.0 to 1.1.0,
|
2748
2916
|
// but the TFM doesn't allow it
|
2749
2917
|
await TestNoChangeforProject("Transitive.Dependency", "1.0.0", "1.1.0",
|
@@ -2827,9 +2995,13 @@ public partial class UpdateWorkerTests
|
|
2827
2995
|
);
|
2828
2996
|
}
|
2829
2997
|
|
2830
|
-
[
|
2831
|
-
|
2998
|
+
[Theory]
|
2999
|
+
[InlineData("true")]
|
3000
|
+
[InlineData(null)]
|
3001
|
+
public async Task UnresolvablePropertyDoesNotStopOtherUpdates(string variableValue)
|
2832
3002
|
{
|
3003
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]);
|
3004
|
+
|
2833
3005
|
// the property `$(SomeUnresolvableProperty)` cannot be resolved
|
2834
3006
|
await TestUpdateForProject("Some.Package", "7.0.1", "13.0.1",
|
2835
3007
|
packages:
|
@@ -2863,9 +3035,13 @@ public partial class UpdateWorkerTests
|
|
2863
3035
|
);
|
2864
3036
|
}
|
2865
3037
|
|
2866
|
-
[
|
2867
|
-
|
3038
|
+
[Theory]
|
3039
|
+
[InlineData("true")]
|
3040
|
+
[InlineData(null)]
|
3041
|
+
public async Task UpdatingPackageAlsoUpdatesAnythingWithADependencyOnTheUpdatedPackage(string variableValue)
|
2868
3042
|
{
|
3043
|
+
using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]);
|
3044
|
+
|
2869
3045
|
// updating Some.Package from 3.3.30 requires that Some.Package.Extensions also be updated
|
2870
3046
|
await TestUpdateForProject("Some.Package", "3.3.30", "3.4.3",
|
2871
3047
|
packages:
|