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.
master
is only used for final release versions. Do not directly commit tomaster
, ever.develop
holds 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 towardsdevelop
should 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/FlowCal
if 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
FlowCal
in developer mode, usingpython setup.py develop
. - Write/test code, commit. Repeat until feature is fully implemented.
- Push and submit a merge request towards
develop
.