Contributing to the sjkabc project

Getting a copy of the source code

The first step to contributing to sjkabc is to get a copy of the source code. The easiest way of doing this is by using git. Browse the directory you want the source code repository in and run the following command:

$ git clone https://github.com/sjktje/sjkabc.git

Setting up a virtualenv

Now that you’ve got a copy of the source code you can install sjkabc. The most convenient way of doing this is by using a virtual environment. I prefer using virtualenvwrapper for managing my virtual environments, and you probably should too.

I refer you to the virtualenvwrapper documentation for setting up a virtual environment

Note

Please note that sjkabc will only run under python 3, so when creating your virtualenvironment take care to make sure it’ll use python 3. One way of doing this would be using the –python option:

$ mkvirtualenv --python=python3 sjkabc

Installing the development version

Assuming you called your virtual environment sjkabc, the following commands will install the development version of sjkabc in your virtual environment.

$ cd path/to/sjkabc
$ workon sjkabc
$ git checkout develop
$ python setup.py develop

Contributing changes

The discussion and work on sjkabc is done through git and GitHub. The project utilise the git-flow branching scheme. Using git-flow is not difficult. Assuming you have git-flow installed, the typical workflow for hacking on sjkabc is as follows.

Start a new feature branch for whatever you are hacking on:

$ git flow feature start your_feature

Hack away and commit changes just as usual. When done, publish your release and ask for comments on the issue tracker.

$ git flow feature publish your_feature

Now open a pull request for your published branch, discuss your changes and apply changes. Eventually your change will be merged with the main development tree.

Important

Proposed changes should include suitable tests and modifications to the documentation, if appropriate.

Once your changes have been merged you can delete your feature branch and pull from the main source tree, or simply merge it in yourself.