From 2c8c845cf35013689dc12c18c80b54a8b3033d1a Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Tue, 31 May 2016 09:56:34 +0200 Subject: [PATCH] Groups with different sources should not resolve to wrong packages - fixes #1711 --- RELEASE_NOTES.md | 3 +++ .../UpdateGroupsSpecs.fs | 22 +++++++++++++++++- .../before/TestA/Test.0.0.1.nupkg | Bin 0 -> 1609 bytes .../before/TestB/Test.0.0.1.nupkg | Bin 0 -> 1609 bytes .../before/paket.dependencies | 6 +++++ .../before/TestA/Test.0.0.1.nupkg | Bin 0 -> 1609 bytes .../before/TestB/Test.0.0.1.nupkg | Bin 0 -> 1609 bytes .../before/paket.dependencies | 2 ++ src/Paket.Core/UpdateProcess.fs | 7 +++--- src/Paket/Paket.fsproj | 4 ++-- 10 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 integrationtests/scenarios/i001711-wrong-groupsource/before/TestA/Test.0.0.1.nupkg create mode 100644 integrationtests/scenarios/i001711-wrong-groupsource/before/TestB/Test.0.0.1.nupkg create mode 100644 integrationtests/scenarios/i001711-wrong-groupsource/before/paket.dependencies create mode 100644 integrationtests/scenarios/i001711-wrong-source/before/TestA/Test.0.0.1.nupkg create mode 100644 integrationtests/scenarios/i001711-wrong-source/before/TestB/Test.0.0.1.nupkg create mode 100644 integrationtests/scenarios/i001711-wrong-source/before/paket.dependencies diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 40eeaa36cd..be4dab06c2 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,6 @@ +#### 2.66.6 - 31.05.2016 +* BUGFIX: Groups with different sources should not resolve to wrong packages - https://github.com/fsprojects/Paket/issues/1711 + #### 2.66.5 - 30.05.2016 * BUGFIX: Don't remove trailing zero if version is in package path - https://github.com/fsprojects/Paket/issues/1708 diff --git a/integrationtests/Paket.IntegrationTests/UpdateGroupsSpecs.fs b/integrationtests/Paket.IntegrationTests/UpdateGroupsSpecs.fs index e8b05e1b81..9db9e1c4f9 100644 --- a/integrationtests/Paket.IntegrationTests/UpdateGroupsSpecs.fs +++ b/integrationtests/Paket.IntegrationTests/UpdateGroupsSpecs.fs @@ -30,4 +30,24 @@ let ``#1018 update group legacy``() = lockFile.Groups.[Constants.MainDependencyGroup].Resolution.[PackageName "NUnit"].Version |> shouldEqual (SemVer.Parse "2.6.1") lockFile.Groups.[GroupName "Legacy"].Resolution.[PackageName "Newtonsoft.Json"].Version - |> shouldBeGreaterThan (SemVer.Parse "5.0.2") \ No newline at end of file + |> shouldBeGreaterThan (SemVer.Parse "5.0.2") + +[] +let ``#1711 update main group with correct source``() = + update "i001711-wrong-source" |> ignore + let lockFile = LockFile.LoadFrom(Path.Combine(scenarioTempPath "i001711-wrong-source","paket.lock")) + let p1 = lockFile.Groups.[Constants.MainDependencyGroup].Resolution.[PackageName "Test"] + p1.Version |> shouldEqual (SemVer.Parse "0.0.1") + p1.Source.Url |> shouldEqual "TestA" + +[] +let ``#1711 update main group with correct source with multiple groups``() = + update "i001711-wrong-groupsource" |> ignore + let lockFile = LockFile.LoadFrom(Path.Combine(scenarioTempPath "i001711-wrong-groupsource","paket.lock")) + let p1 = lockFile.Groups.[Constants.MainDependencyGroup].Resolution.[PackageName "Test"] + p1.Version |> shouldEqual (SemVer.Parse "0.0.1") + p1.Source.Url |> shouldEqual "TestA" + + let p2 = lockFile.Groups.[GroupName "Cumulus.1.0"].Resolution.[PackageName "Test"] + p2.Version |> shouldEqual (SemVer.Parse "0.0.1") + p2.Source.Url |> shouldEqual "TestB" \ No newline at end of file diff --git a/integrationtests/scenarios/i001711-wrong-groupsource/before/TestA/Test.0.0.1.nupkg b/integrationtests/scenarios/i001711-wrong-groupsource/before/TestA/Test.0.0.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..865a500de2477d776915da4d60b9c3b36fcb5bf4 GIT binary patch literal 1609 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 eq9+oB#`DZrlT3g&E2w^8U() + let allVersions = Dictionary() let getSortedAndCachedVersionsF sources resolverStrategy groupName packageName : seq = - match allVersions.TryGetValue(packageName) with + let key = packageName,sources + match allVersions.TryGetValue key with | false,_ -> let versions = verbosefn " - fetching versions for %O" packageName @@ -20,7 +21,7 @@ let selectiveUpdate force getSha1 getSortedVersionsF getPackageDetailsF (lockFil if Seq.isEmpty versions then failwithf "Couldn't retrieve versions for %O." packageName - allVersions.Add(packageName,versions) + allVersions.Add(key,versions) versions | true,versions -> versions |> List.toSeq diff --git a/src/Paket/Paket.fsproj b/src/Paket/Paket.fsproj index 6514da7fd1..00253f110a 100644 --- a/src/Paket/Paket.fsproj +++ b/src/Paket/Paket.fsproj @@ -50,8 +50,8 @@ D:\code\PaketKopie update -f D:\code\Paket\integrationtests\scenarios\i001117-aws\temp - install - D:\code\PaketWithXUnit + update + D:\code\Paket\integrationtests\scenarios\i001711-wrong-groupsource\temp 11