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.