on master help sign in
Delete previous results when unregistering

Previously, package install status was determined by checking the package database. However, this didn't work for executables, so I switched it to keep explicit track of build results. I forgot to then clear those results when unregistering a package. Pinging @manny-fp @chrisdone

commit8f74bbee495532162ab3d58225ff0a9661ccc019 authorMichael Snoyman <michael@snoyman.com> dateSat 14 Mar 2015, 20:47 (12 years ago) parente404fd2
2 files changed+8−4
Stackage/GhcPkg.hs+7−4 Stackage/PerformBuild.hs+1
Stackage/GhcPkg.hs+7−4
@@ -28,15 +28,16 @@ setupPackageDatabase
2828 -> FilePath -- ^ documentation root
2929 -> (ByteString -> IO ()) -- ^ logging
3030 -> Map PackageName Version -- ^ packages and versions to be installed
31+ -> (PackageIdentifier -> IO ()) -- ^ callback to be used when unregistering a package
3132 -> IO (Set PackageName) -- ^ packages remaining in the database after cleanup
32−setupPackageDatabase mdb docDir log' toInstall = do
33+setupPackageDatabase mdb docDir log' toInstall onUnregister = do
3334 registered1 <- getRegisteredPackages flags
3435 forM_ registered1 $ \pi@(PackageIdentifier name version) ->
3536 case lookup name toInstall of
36− Just version' | version /= version' -> unregisterPackage log' docDir flags pi
37+ Just version' | version /= version' -> unregisterPackage log' onUnregister docDir flags pi
3738 _ -> return ()
3839 broken <- getBrokenPackages flags
39− forM_ broken $ unregisterPackage log' docDir flags
40+ forM_ broken $ unregisterPackage log' onUnregister docDir flags
4041 foldMap (\(PackageIdentifier name _) -> singletonSet name)
4142 <$> getRegisteredPackages flags
4243 where
@@ -78,10 +79,12 @@ parsePackageIdent = fmap fst .
7879
7980-- | Unregister a package.
8081unregisterPackage :: (ByteString -> IO ()) -- ^ log func
82+ -> (PackageIdentifier -> IO ()) -- ^ callback to be used when unregistering a package
8183 -> FilePath -- ^ doc directory
8284 -> [String] -> PackageIdentifier -> IO ()
83−unregisterPackage log' docDir flags ident@(PackageIdentifier name _) = do
85+unregisterPackage log' onUnregister docDir flags ident@(PackageIdentifier name _) = do
8486 log' $ "Unregistering " ++ encodeUtf8 (display ident) ++ "\n"
87+ onUnregister ident
8588 void (readProcessWithExitCode
8689 "ghc-pkg"
8790 ("unregister": flags ++ ["--force", unpack $ display name])
Stackage/PerformBuild.hs+1
@@ -198,6 +198,7 @@ performBuild' pb@PerformBuild {..} = withBuildDir $ \builddir -> do
198198 (pbDocDir pb)
199199 pbLog
200200 (ppVersion <$> bpPackages pbPlan)
201+ (deletePreviousResults pb)
201202
202203 forM_ packageMap $ \pi -> void $ async $ singleBuild pb registeredPackages
203204 SingleBuild