dependabot-nuget 0.267.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 +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:
|