From 706a977e19ef3afe03516927c8bcae29f1ae78a5 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 19 Mar 2015 13:40:11 +0200 Subject: [PATCH] Fix upload v2 core packages fpco/stackage#481 Simple fix: was only adding packages from the build plan, not from the core libraries list. Most of the annoyance in the patch is just dealing with the multiple PackageName and Version types. --- Handler/UploadV2.hs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/Handler/UploadV2.hs b/Handler/UploadV2.hs index cd3b2d9..e8c104e 100644 --- a/Handler/UploadV2.hs +++ b/Handler/UploadV2.hs @@ -244,21 +244,17 @@ finishUpload , ltsStackage = sid } - let cores :: Set PackageName - cores = setFromList - $ map (PackageName . display . fst) - $ mapToList + let cores, nonCores :: Map PackageName Version + cores = mapKeysWith const (PackageName . display) + $ fmap (Version . display) $ siCorePackages $ bpSystemInfo siPlan - forM_ (mapToList $ fmap ppVersion $ bpPackages siPlan) $ \(name', version') -> do - let nameT = display name' - mpair = (,) - <$> fromPathPiece nameT - <*> fromPathPiece (display version') - (name, version) <- - case mpair of - Nothing -> error $ "Could not parse: " ++ show (name', version') - Just pair -> return pair + nonCores + = mapKeysWith const (PackageName . display) + $ fmap (Version . display . ppVersion) + $ bpPackages siPlan + forM_ (mapToList $ cores ++ nonCores) $ \(name, version) -> do + let PackageName nameT = name insert_ Package { packageStackage = sid , packageName' = name