To contribute to code, you should first fork the sif python 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 https://github.com/<username>/sif
cd sif/
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.