cooperative-computing-lab/cctools — pull request #194 by rampantmonkey (2013-09-12 14:43:39+00:00)
Title: Python linker with explicit dependencies

This pull request contains the first piece of the workflow linker.

### Overview
The linker starts with a Makeflow workflow description and recursively traverses the dependency tree. Once all of the dependencies are found the linker creates a packaged version of the original workflow. This packaged version contains all of the necessary files to run successfully.

### This Request

In this set of changes the linker extracts the dependencies from Makeflow and Python files.

I have three goals for this pull request.

* Get feedback on the structure of my code and its location in the project source tree.
* Discuss a better testing strategy.
* Eventually include the changes in master.

### Potential Issues

One open question is testing the linker. As of now I included a correctly packaged version of the shrimp workflow which is used as a reference for comparison with the output of the linker. There are a few issues with this approach.

* Correctness potentially depends on the version of Python installed
* Finding the Python driver depends on $PATH
* Ordering of files in the package and linker output may differ, but still be correct.

### Warning

I have not run Autobuild against all commits in this pull request so it will most likely fail. Most of the commits are for explanatory purposes and to provide checkpoints during development. I would recommend [squashing](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html) the commits into a single commit before merging the changes.