Development Guidelines ---------------------- The idea behind this repository is to keep track of the CHIME pipeline development, such that the union of the input data and this repository always gives the same output. This requires that we keep track of not only the code and scripts in this repository, but also any dependencies (discussed below). As far as possible the pipeline code should be using Kiyo's pipeline task module `caput.pipeline` ([doc](http://bao.phas.ubc.ca/codedoc/caput/)). Structure ^^^^^^^^^ Tasks should go into `draco`. Branches ^^^^^^^^ Development should be done in `passX` branches, or in feature branches that are merged back in. Dependencies ^^^^^^^^^^^^ Dependencies should be installable python packages. This means that they must have a ``setup.py`` script in their root directory, and should be installable using `python setup.py install`. They are kept track of in a ``requirements.txt`` file. This file can contain references to exact versions of dependencies, using both version tags, and commit hashes. An example ``requirements.txt`` file is given below:: -e git+https://github.com/radiocosmology/caput@ee1c55ea4cf8cb7857af2ef3adcb2439d876768d#egg=caput-master -e git+ssh://git@bitbucket.org/chime/ch_util.git@e33b174696509b158c15cf0bfc27f4cb2b0c6406#egg=ch_util-e -e git+https://github.com/radiocosmology/cora@v1.0.0#egg=cora -e git+https://github.com/radiocosmology/driftscan@v1.0.0#egg=driftscan Here, the first two requirements specify an exact git hash, whereas the second two use git tags as a shorthand. These dependencies can be installed using:: $ pip install -r requirements.txt This is automatically done by the ``mkvenv.sh`` script. Virtualenv ^^^^^^^^^^ The script `mkvenv.sh` will automatically install a `virtualenv ` containing all the pipeline dependencies from the ``requirements.txt`` file. This gives a fresh, self-contained installation of the pipeline to work with. Before use, you should activate it using:: $ source venv/bin/activate