How to Contribute¶
If you are interested in contributing to this project, either by writing code, correcting a bug, or adding a new feature, we would love your help! Below we provide some guidelines on how to contribute.
FlowCal Installation for Developers¶
Regardless of your OS version, we recommend using virtualenv for development. A short primer on virtualenv can be found at http://docs.python-guide.org/en/latest/dev/virtualenvs/.
The recommended way to install FlowCal for development is to run python setup.py develop. This will install FlowCal in a special “developer” mode. In this mode, a link pointing to the FlowCal directory is made in the python installation directory, allowing you to import FlowCal from any python script, while at the same time being able to modify FlowCal‘s code and immediately see the resulting effects.
Version Control¶
FlowCal uses git for version control. We try to follow the git-flow branching model. Please familiarize yourself with such model before contributing. A quick summary of relevant branches is given below.
masteris only used for final release versions. Do not directly commit tomaster, ever.developholds unreleased features, which will eventually be released intomaster.- Feature branches are branches derived from
develop, in which new features are committed. When the feature is completed, a merge request towardsdevelopshould be made.
Recommended Workflow¶
A recommended workflow for contributing to FlowCal is as follows:
- Report your intended change in the issue tracker on
github. If reporting a bug, please be as detailed as possible and try to include the necessary steps to reproduce the problem. If suggesting a feature, indicate if you’re willing to write the code for it. - Assuming that you decided to write code, clone the repo in your computer. You can use the command
git clone https://github.com/taborlab/FlowCalif you are using the command-line version ofgit. - Switch to the develop branch, using
git checkout develop. - Create a new feature branch, using
git checkout -b <feature_name>. - Set up your virtual environment, if desired.
- Install
FlowCalin developer mode, usingpython setup.py develop. - Write/test code, commit. Repeat until feature is fully implemented.
- Push and submit a merge request towards
develop.