This document aims to give an overview of how to contribute to NeSSI.
To contribute, you must have:
- a GitHub account
- git installed on your system (download and install)
More informations on how to use git are available on the git official documentation and the GitHub cheat sheet
Before submitting an issue, please search through existing issues to avoid duplicates.
If you want to post a problem/bug, to help us understand and resolve your issue please check that you have provided essential informations:
- problem/bug description: A clear and concise description of what the bug is.
- to reproduce: A small piece of code which reproduces the issue (with as few as possible external dependencies).
- NeSSI version, python version
- platform OS+version (Debian 9, Ubuntu 16.10, ...)
- virtual environement yes/no; if yes, which one.
Before submitting a pull request:
- be sure that the feature/hotfix that you want to add does not already exist.
- NeSSI follows a simple branching model, please read A successful Git branching model before starting.
- Fork the repository.
- Make a new branch. For feature additions/changes base your new branch at
develop
, for pure bugfixes base your new branch atmaster
. - Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need a test!
- Make the test pass.
- Push to your fork and submit a pull request.
- for feature branches set base branch to
nessi:develop
- for bugfix branches set base branch to the master branch
nessi:master
- for feature branches set base branch to
- Wait for our review. We may suggest some changes or improvements or alternatives. Keep in mind that PR checklist items can be met after the pull request has been opened by adding more commits to the branch.
All the submitted pieces including potential data must be compatible with the LGPLv3 license and will be LGPLv3 licensed as soon as they are part of NeSSI. Sending a pull request implies that you agree with this.
Additionally take care to not add big files. Even for tests we generally only accept files that are very small and at max on the order of a few kilobytes.