The NEST simulator is a scientific tool and as such it is never finished and constantly changing to meet the needs of novel neuroscientific endeavors. Here you find the most important information on how you can contribute to NEST. This document is an excerpt from our Contributing to NEST documentation, which provides more detailed information.
- Make sure you have a GitHub account
- The development workflow is based purely on pull requests. This article gives information on how to work with git and GitHub if you are new to it.
If you come across a bug in NEST, please file an issue on the GitHub issue tracker. Please use the template below to provide information:
Description of problem:
Version-Release or Git commit:
How reproducible: (Always/Sometimes/Unsure)
Steps to Reproduce:
1.
2.
3.
Actual results:
Expected results:
Additional info:
You can also attach files to issues. Data dumps or example code snippets that help to reproduce the issue is most welcome. This information enables developers to debug and fix issues quicker.
- Create a topic branch from NEST master in your fork. Please avoid working directly on the
master
branch. See issue 31 for more information. - Make commits of logical units.
- Make sure NEST compiles and has no new warnings.
- Make sure all tests pass (
make installcheck
). - Make sure your code conforms to our coding guidelines (
./extras/check_code_style.sh
)
We review each pull request according to our code review guidelines:
- In general, the rule is that each pull request needs an OK from the CI platform and at least two reviewers to be merged.
- For changes labeled "not code" or "minor" (e.g. changes in documentation, fixes for typos, etc.), the release manager can waive the need for code review and just accept the OK from Travis in order to merge the request.
- New features like SLI or PyNEST functions, neuron or synapse models need to be accompanied by one or more tests written either in SLI or Python. New features for the NEST kernel need a test written in SLI.
- Each change to the code has to be reflected also in the corresponding examples and documentation.
- All source code has to conform to the Coding Guidelines for C++ and PEP8 for Python in order to pass the continuous integration system checks.
- All commits should be coherent and contain only changes that belong together.
- Sign the Contributor License Agreement.
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the NEST repository.
- If your pull request affects documented issues, mention them in the description. If it is solving an issue, you can state this explicitly.
- The core team looks at pull requests on a regular basis and posts feedback.
- After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.
- Documentation on Contributing to NEST.
- The NEST Simulator homepage.
- The NEST Initiative homepage.