@@ -614,12 +614,14 @@ data Project = Project
614614 -- ^ Extra configuration intended exclusively for usage by the
615615 -- curator tool. In other words, this is /not/ part of the
616616 -- documented and exposed Stack API. SUBJECT TO CHANGE.
617+ , projectDropPackages :: ! (Set PackageName )
618+ -- ^ Packages to drop from the 'projectResolver'.
617619 }
618620 deriving Show
619621
620622instance ToJSON Project where
621623 -- Expanding the constructor fully to ensure we don't miss any fields.
622- toJSON (Project userMsg packages extraDeps flags resolver mcompiler extraPackageDBs mcurator) = object $ concat
624+ toJSON (Project userMsg packages extraDeps flags resolver mcompiler extraPackageDBs mcurator drops ) = object $ concat
623625 [ maybe [] (\ cv -> [" compiler" .= cv]) mcompiler
624626 , maybe [] (\ msg -> [" user-message" .= msg]) userMsg
625627 , if null extraPackageDBs then [] else [" extra-package-dbs" .= extraPackageDBs]
@@ -628,6 +630,7 @@ instance ToJSON Project where
628630 , [" packages" .= packages]
629631 , [" resolver" .= resolver]
630632 , maybe [] (\ c -> [" curator" .= c]) mcurator
633+ , if Set. null drops then [] else [" drop-packages" .= Set. map CabalString drops]
631634 ]
632635
633636-- | Extra configuration intended exclusively for usage by the
@@ -1444,6 +1447,7 @@ parseProjectAndConfigMonoid rootDir =
14441447 config <- parseConfigMonoidObject rootDir o
14451448 extraPackageDBs <- o ..:? " extra-package-dbs" ..!= []
14461449 mcurator <- jsonSubWarningsT (o ..:? " curator" )
1450+ drops <- o ..:? " drop-packages" ..!= mempty
14471451 return $ do
14481452 deps' <- mapM (resolvePaths (Just rootDir)) deps
14491453 resolver' <- resolvePaths (Just rootDir) resolver
@@ -1456,6 +1460,7 @@ parseProjectAndConfigMonoid rootDir =
14561460 , projectDependencies = concatMap toList (deps' :: [NonEmpty RawPackageLocation ])
14571461 , projectFlags = flags
14581462 , projectCurator = mcurator
1463+ , projectDropPackages = Set. map unCabalString drops
14591464 }
14601465 pure $ ProjectAndConfigMonoid project config
14611466
0 commit comments