Contributing¶
Scikit-monaco is in its infancy. There is a lot of scope for developpers to make a strong impact by contributing code, documentation and expertise. All contributions are welcome and, if you are unsure how to contribute or are unfamiliar with scipy and numpy, we will happily mentor you. Just send an email to <pascal@bugnion.org>.
How to contribute¶
The documentation for Numpy gives a detailed description of how to contribute. Most of this information applies to development for scikit-monaco.
Developping with git¶
You will need the Git version control system and an account on Github to contribute to scikit-monaco.
Fork the project repository by clicking Fork in the top right of the page. This will create a copy of the fork under your account on Github.
Clone the repository to your computer:
$ git clone https://github.com/YourUserID/scikit-monaco.git
Install scikit-monaco by running:
$ python setup.py install
in the package’s root directory. You should now be able to test the code by running $ nosetests in the package’s root directory.
You can now make changes and contribute them back to the source code:
Create a branch to hold your changes:
$ git checkout -b my-feature
and start making changes.
Work on your local copy. When you are satisfied with the changes, commit them to your local repository:
$ git add modified files $ git commit
You will be asked to write a commit message. Explain the reasoning behind the changes that you made.
Propagate the changes back to your github account:
$ git push -u origin my-feature
To integrate the changes into the main code repository, click Pull Request on the scikit-quantum repository page on your accont. This will notify the committers who will review your code.
Updating your repository¶
To keep your private repository updated, you should add the main repository as a remote:
$ git remote add upstream git://github.com/scikit-monaco/scikit-monaco.git
To update your private repository, you can then fetch new commits from upstream:
$ git fetch upstream
$ git rebase upstream/master
Guidelines¶
Workflow¶
We loosely follow the git workflow used in numpy development. Features should be developped in separate branches and merged into the master branch when complete. Avoid putting new commits directly in your master branch.
Code¶
Please follow the PEP8 conventions for formatting and indenting code and for variable names.
Documentation¶
Scikit-quantum uses sphinx with numpydoc to process the documentation. We follow the numpy convention on writing docstrings.
Use make html in the doc folder to build the documentation.