-- Initial laborantin-hs.cabal generated by cabal init. For further -- documentation, see http://haskell.org/cabal/users-guide/ name: laborantin-hs version: 0.1.3.0 synopsis: an experiment management framework description: Laborantin is a framework and DSL to run and manage results from scientific experiments. Good targets for Laborantin are experiments that you can run /offline/ such as benchmark and batch analytics. . Writing experiments with Laborantin has at least two advantages over rolling your own scripts. First, Laborantin standardizes the workflow of your experimentations. There is one-way to describe what a project can do, what experiments where already run, how to delete files corresponding to a specific experiment etc. Second, Laborantin builds on years of experience running experiments. Using Laborantin should alleviates common pain points such as querying for experiments, managing dependencies between results . Laborantin's DSL lets you express experiment parameters, setup, teardown, and recovery hooks in a systematic way. In addition, this DSL let you express dependencies on your experiments so that you can run prior experiments or data analyses. . Laborantin comes with a default backend that stores experiment results in a filesystem-hierarchy. Laborantin also comes with a default command-line that let you specify which experiments to run, analyze, or delete. . > ping :: ScenarioDescription EnvIO > ping = scenario "ping" $ do > describe "ping to a remote server" > parameter "destination" $ do > describe "a destination server (host or ip)" > values [str "example.com", str "probecraft.net"] > parameter "packet-size" $ do > describe "packet size in bytes" > values [num 50, num 1500] > run $ do > (StringParam srv) <- param "destination" > (StringParam ps) <- param "packet-size" > liftIO (executePingCommand srv ps) >>= writeResult "raw-result" > where executePingCommand :: Text -> Rational -> IO (Text) > executePingCommand host packetSize = ... > > main :: IO () > main = defaultMain [ping] homepage: https://github.com/lucasdicioccio/laborantin-hs license: Apache-2.0 license-file: LICENSE author: lucas dicioccio maintainer: lucas@dicioccio.fr -- copyright: category: Experiment build-type: Simple extra-source-files: README.md cabal-version: >=1.10 library exposed-modules: Laborantin, Laborantin.DSL, Laborantin.Implementation, Laborantin.Types, Laborantin.CLI, Laborantin.Query other-modules: Laborantin.Query.Parse, Laborantin.Query.Interpret other-extensions: FlexibleContexts, OverloadedStrings, TupleSections build-depends: base >=4.6 && <4.7, transformers >=0.3 && <0.4, mtl >=2.1 && <2.2, containers >=0.5 && <0.6, text >=0.11 && <0.12, bytestring >=0.10 && <0.11, aeson >=0.6 && <0.7, uuid >=1.2 && <1.3, directory >=1.2 && <1.3, random >=1.0 && <1.1, hslogger >=1.2 && <1.3, cmdlib >= 0.3.5, split >= 0.2.2, time >= 1.4.0.1, parsec >= 3.1.0, old-locale >=1.0.0.5 -- hs-source-dirs: default-language: Haskell2010 executable labor-example main-is: main.hs ghc-options: -Wall hs-source-dirs: examples build-depends: base >=4.6 && <4.7, transformers >=0.3 && <0.4, mtl >=2.1 && <2.2, containers >=0.5 && <0.6, text >=0.11 && <0.12, bytestring >=0.10 && <0.11, aeson >=0.6 && <0.7, uuid >=1.2 && <1.3, directory >=1.2 && <1.3, random >=1.0 && <1.1, hslogger >=1.2 && <1.3, cmdlib >= 0.3.5, split >= 0.2.2, laborantin-hs >= 0.1.1.2 default-language: Haskell2010