/ducttape

A workflow management system for researchers who heart Unix.

Primary LanguageScalaOtherNOASSERTION

Travis CI Build Status: Build Status

Introduction

This is the in-progress baking of Ducttape, a workflow management system for researchers who heart unix. This is a complete overhaul of the LoonyBin workflow manager. Currently, it is not yet suitable for production use.

For a basic tutorial on the syntax of Ducttape that currently works, see tutorial.md.

Design Principles

  • Simple things should remain simple.

  • You should be able to start simple. Run. Add complexity. And re-run.

  • Workflow management and data flows have very different design patterns than other sorts of code. Writing them in C++, Java, or XML is annoying.

Updates

To keep updated on the latest versions of ducttape, subscribe to our low-traffic announcement mailing list: https://groups.google.com/group/ducttape-announce

To stay in the loop on ducttape development, subscribe to our higher traffic development mailing list: https://groups.google.com/group/ducttape-dev

To keep updated on bleeding edge development of ducttape, subscribe to our higher traffic commits mailing list: https://groups.google.com/group/ducttape-commits

Building

TODO: Move this section to a separate file once we move out of alpha...

Assuming you have Scala 2.9.2+ installed, just run:

./build.sh

This will produce ducttape.jar.

Documentation

To generate the tutorial documentation as doc/doc.pdf:

./doc.sh

To generate scaladoc:

./scaladoc.sh

Testing

To test low level data structures, run:

TODO (Currently Eclipse JUnit is used)

To test high-level functionality, run:

./test-regression.sh

This will run all of the example files associated with the tutorial, which also serve as regression tests.

Emacs Mode

To get syntax highlighting in emacs, add a line similar to the following in your ~/.emacs file:

(load "$PATH_TO_DUCTTAPE_HERE/tool-support/emacs/ducttape.el")

Vim Mode

To get syntax highlighting in vim, copy (or symlink) the ducttape's vim syntax highlighting file, like so:

$ mkdir -p ~/.vim/syntax
$ cp $PATH_TO_DUCTTAPE_HERE/tool-support/vim/ducttape.vim ~/.vim/syntax/ducctape.vim

Then add a line to your ~/.vimrc to create an association with .tape files:

syntax on
filetype on
au BufRead,BufNewFile *.tape set filetype=ducttape