To contribute to code, you should first fork the watchme repository by clicking the fork button on the top right of the page. Once forked, you will want to clone the fork of the repository to your computer:

git clone<username>/watchme
cd watchme/

The main python module, sif, is in the top level folder. You should checkout a branch, push the branch to your remote, and when you are ready, open a pull request against the master branch of singularityhub/sif.

git checkout -b add/my-feature
git commit -a -m 'adding my new feature!'
git push origin add/my-feature

Development Tips

For development, it’s helpful to first pull an image with 3.0:

$ singularity pull --name boxes.simg docker://vanessa/boxes

or with Docker

$ docker run -v $PWD/:/tmp singularityware/singularity:3.0 pull --name boxes.simg docker://vanessa/boxes

And then open up ipython, and start like this:

from sif.main import SIFHeader

image = 'boxes.simg'

self = SIFHeader(image)

By instantiating the header as self, you can easily copy paste code into your terminal to test and debug.