Concise Common Workflow Language (ccwl)

Sorry, your browser does not support SVG. Sorry, your browser does not support SVG. Sorry, your browser does not support SVG.

The Concise Common Workflow Language (ccwl) is a concise syntax to express CWL workflows. It is implemented as an Embedded Domain Specific Language (EDSL) in the Scheme programming language, a minimalist dialect of the Lisp family of programming languages.

ccwl is a compiler to generate CWL workflows from concise descriptions in ccwl. In the future, ccwl will also have a runtime whereby users can interactively execute workflows while developing them.

Download

Download release tarballs.

Download public signing key.

Browse the development version of ccwl hosted on GitHub.

Installation

Using binary software bundles

If you don't have GNU Guix set up, the easiest way to quickly try ccwl is to using the provided software bundles—either using the Guix tarball pack or the Docker image.

Using the Guix tarball pack

Download the Guix tarball pack from the GitHub releases page and extract it. Then, run ccwl with command-line arguments of your choice.

$ tar -xf ccwl-pack.tar.gz
$ ./opt/gnu/bin/ccwl [ARGS...]

Using the Docker image

Download the Docker image from the GitHub releases page and load it. Then, run ccwl with command-line arguments of your choice.

$ docker load -i ccwl-docker.tar.gz
$ docker run ccwl [ARGS...]

When passing files into the Docker container, remember to share the filesystem. The following command is one way to share the current directory with the container.

$ docker run -v "$PWD:$PWD" -w "$PWD" ccwl compile foo.scm

Using Guix

The easiest and best way (considering reproducibility) is to install ccwl through GNU Guix. The Guix package definition for ccwl is in the file guix.scm. You can use it to install ccwl by running

$ guix package -if guix.scm

Manually from source

You can also install ccwl more traditionally using the provided GNU build system scripts. You will have to ensure that the necessary dependencies (guile and guile-libyaml) are installed, and then run

$ ./bootstrap.sh
$ ./configure; make; make install

If you are using a release tarball, you may skip the bootstrap.sh step.

Documentation

Documentation for ccwl is available online. If ccwl is installed on your machine, you may also read the manual using your info browser. The Tutorial section of the manual provides a gentle introduction to ccwl.

Contributing

Feedback, suggestions, feature requests, bug reports and pull requests are all welcome. Unclear and unspecific error messages are considered a bug. Do report them!

License

ccwl is free software released under the terms of the GNU General Public License, either version 3 of the License, or (at your option) any later version.