-- 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.3.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 newtype ProjectKey ProjectKey :: String -> ProjectKey [getProjectKey] :: ProjectKey -> String data ProjAttribute PTitle :: ProjAttribute PDescription :: ProjAttribute PUrl :: ProjAttribute POwner :: ProjAttribute PCost :: ProjAttribute PTrust :: ProjAttribute PProgress :: ProjAttribute newtype Trust Trust :: Float -> Trust [getTrust] :: Trust -> Float newtype Cost Cost :: Float -> Cost [getCost] :: Cost -> Float newtype Progress Progress :: Float -> Progress [getProgress] :: 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.ProjAttribute instance GHC.Enum.Enum MasterPlan.Data.ProjAttribute instance GHC.Classes.Eq MasterPlan.Data.ProjAttribute 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 Data.String.IsString MasterPlan.Data.ProjectKey instance GHC.Classes.Ord MasterPlan.Data.ProjectKey instance Data.Data.Data MasterPlan.Data.ProjectKey instance GHC.Classes.Eq MasterPlan.Data.ProjectKey instance GHC.Show.Show MasterPlan.Data.ProjectKey instance GHC.Real.Fractional MasterPlan.Data.Progress instance GHC.Real.RealFrac MasterPlan.Data.Progress instance GHC.Real.Real MasterPlan.Data.Progress instance GHC.Num.Num MasterPlan.Data.Progress instance GHC.Classes.Ord MasterPlan.Data.Progress instance Data.Data.Data MasterPlan.Data.Progress instance GHC.Classes.Eq MasterPlan.Data.Progress instance GHC.Show.Show MasterPlan.Data.Progress instance GHC.Real.Fractional MasterPlan.Data.Cost instance GHC.Real.RealFrac MasterPlan.Data.Cost instance GHC.Real.Real MasterPlan.Data.Cost instance GHC.Num.Num MasterPlan.Data.Cost instance GHC.Classes.Ord MasterPlan.Data.Cost instance Data.Data.Data MasterPlan.Data.Cost instance GHC.Classes.Eq MasterPlan.Data.Cost instance GHC.Show.Show MasterPlan.Data.Cost instance GHC.Real.Fractional MasterPlan.Data.Trust instance GHC.Real.RealFrac MasterPlan.Data.Trust instance GHC.Real.Real MasterPlan.Data.Trust instance GHC.Num.Num MasterPlan.Data.Trust instance GHC.Classes.Ord MasterPlan.Data.Trust instance Data.Data.Data MasterPlan.Data.Trust instance GHC.Classes.Eq MasterPlan.Data.Trust instance GHC.Show.Show MasterPlan.Data.Trust instance GHC.Show.Show MasterPlan.Data.ProjAttribute 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 -> [ProjAttribute] -> Text module MasterPlan.Backend.Graph -- | The main rendering function render :: FilePath -> RenderOptions -> ProjectSystem -> IO () -- | Render a multi-line text to file renderText :: FilePath -> RenderOptions -> [String] -> IO () -- | Options for rendering data RenderOptions RenderOptions :: Bool -> Integer -> Integer -> ProjectKey -> [ProjAttribute] -> 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 -> [ProjAttribute] instance GHC.Show.Show MasterPlan.Backend.Graph.RenderOptions instance GHC.Classes.Eq MasterPlan.Backend.Graph.RenderOptions