-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | The project management tool for hackers -- -- Master Plan is a tool that parses files that describes projects using -- a simple and powerful syntax in which project structures are encoded -- using a special algebra with combinators for specifying the different -- kinds of dependencies. It also supports estimations of cost and risk, -- as well as some metadata. The tool is then able to compute the -- priority of execution that minimizes costs, and also output a nice -- visual representation of the structure. Becase the plan description is -- plan text, it's portable and fits well within source control. @package master-plan @version 0.1.0.0 module MasterPlan.Data -- | Structure of a project expression data ProjectExpr Sum :: (NonEmpty ProjectExpr) -> ProjectExpr Product :: (NonEmpty ProjectExpr) -> ProjectExpr Sequence :: (NonEmpty ProjectExpr) -> ProjectExpr Reference :: ProjectKey -> ProjectExpr -- | Any binding (with a name) may have associated properties data ProjectProperties ProjectProperties :: String -> Maybe String -> Maybe String -> Maybe String -> ProjectProperties [title] :: ProjectProperties -> String [description] :: ProjectProperties -> Maybe String [url] :: ProjectProperties -> Maybe String [owner] :: ProjectProperties -> Maybe String -- | A project system defines the bindins (mapping from names to -- expressions or tasks) and properties, which can be associated to any -- binding newtype ProjectSystem ProjectSystem :: Map ProjectKey Binding -> ProjectSystem [bindings] :: ProjectSystem -> Map ProjectKey Binding -- | A binding of a name can refer to an expression. If there are no -- associated expressions (i.e. equation) then it can have task-level -- properties data Binding BindingAtomic :: ProjectProperties -> Cost -> Trust -> Progress -> Binding BindingExpr :: ProjectProperties -> ProjectExpr -> Binding BindingPlaceholder :: ProjectProperties -> Binding type ProjectKey = String data ProjProperty PTitle :: ProjProperty PDescription :: ProjProperty PUrl :: ProjProperty POwner :: ProjProperty PCost :: ProjProperty PTrust :: ProjProperty PProgress :: ProjProperty type Trust = Float type Cost = Float type Progress = Float defaultProjectProps :: ProjectProperties defaultCost :: Cost defaultTrust :: Trust defaultProgress :: Progress defaultTaskProj :: ProjectProperties -> Binding bindingTitle :: Binding -> String -- | Expected cost cost :: ProjectSystem -> ProjectExpr -> Cost progress :: ProjectSystem -> ProjectExpr -> Progress -- | Expected probability of succeeding trust :: ProjectSystem -> ProjectExpr -> Trust -- | Simplify a project binding structure simplify :: ProjectSystem -> ProjectSystem -- | Simplify a project expression structure 1) transform singleton -- collections into it's only child 2) flatten same constructor of the -- collection simplifyProj :: ProjectExpr -> ProjectExpr -- | Sort projects in the system order that minimizes cost prioritizeSys :: ProjectSystem -> ProjectSystem -- | Sort project in order that minimizes cost prioritizeProj :: ProjectSystem -> ProjectExpr -> ProjectExpr instance Data.Data.Data MasterPlan.Data.ProjectSystem instance GHC.Show.Show MasterPlan.Data.ProjectSystem instance GHC.Classes.Eq MasterPlan.Data.ProjectSystem instance GHC.Enum.Bounded MasterPlan.Data.ProjProperty instance GHC.Enum.Enum MasterPlan.Data.ProjProperty instance GHC.Classes.Eq MasterPlan.Data.ProjProperty instance Data.Data.Data MasterPlan.Data.Binding instance GHC.Show.Show MasterPlan.Data.Binding instance GHC.Classes.Eq MasterPlan.Data.Binding instance Data.Data.Data MasterPlan.Data.ProjectProperties instance GHC.Show.Show MasterPlan.Data.ProjectProperties instance GHC.Classes.Eq MasterPlan.Data.ProjectProperties instance Data.Data.Data MasterPlan.Data.ProjectExpr instance GHC.Show.Show MasterPlan.Data.ProjectExpr instance GHC.Classes.Eq MasterPlan.Data.ProjectExpr instance GHC.Show.Show MasterPlan.Data.ProjProperty module MasterPlan.Internal.Debug -- | Print a ProjectSystem to standard output debugSys :: ProjectSystem -> IO () -- | Print a Project Expression in a Project System to standard output. The -- expression is printed in a tree like fashion. debugProj :: ProjectSystem -> ProjectExpr -> IO () module MasterPlan.Parser runParser :: FilePath -> Text -> Either String ProjectSystem module MasterPlan.Backend.Identity -- | Plain text renderer render :: ProjectSystem -> [ProjProperty] -> Text module MasterPlan.Backend.Graph -- | The main rendering function render :: FilePath -> RenderOptions -> ProjectSystem -> IO () -- | Options for rendering data RenderOptions RenderOptions :: Bool -> Integer -> Integer -> ProjectKey -> [ProjProperty] -> RenderOptions -- | Whether to color boxes depending on progress [colorByProgress] :: RenderOptions -> Bool -- | The width of the output image [renderWidth] :: RenderOptions -> Integer -- | The height of the output image [renderHeight] :: RenderOptions -> Integer -- | The name of the root project [rootKey] :: RenderOptions -> ProjectKey -- | Properties that should be rendered [whitelistedProps] :: RenderOptions -> [ProjProperty] instance GHC.Show.Show MasterPlan.Backend.Graph.RenderOptions instance GHC.Classes.Eq MasterPlan.Backend.Graph.RenderOptions