Closed ohm314 closed 4 years ago
guess an identical "CONTRIBUTING.md" will go into all the related repos here: nrn, progref-py, tutorials (to be created) can prob leave out from iv, progref-hoc
document draft; easier if i make a pull req at this time? can see formatted version at https://github.com/wwlytton/nrn/blob/master/CONTRIBUTING.md
There are several separate repositories that make up the NEURON project and you may contribute to any of these. A single code board manages the full set. This Contributing document is relevant not only for this repository but also for these other repositories.
Three major repositories are directly included at this github:
Two repositories included here are largely obsolete and should only be modified for bug fixes:
There are several NEURON-related repositories hosted elsewhere which also encourage contributions. Each of these will have it's own Contributing document.
We encourage contributions to the NEURON simulator from individuals at all levels -- students, postdocs, academics, industry coders, etc. Knowledge of the domain of neural simulation is also helpful but much of the simulation technology is comparable to other simulation fields in biology and beyond -- numerical integration of ordinary differential equations (ODEs), here coupled with events (event-driven).
If you want to pick up and try an existing improvement project, you will note that we have indicated levels of difficulty with labels. Most internal hacks will require knowledge of C/C++. Knowledge of python is also necessary for writing accompanying test code. Note that it can be much easier to get started by improving documentation or by adding new tutorials.
There are some things that will make it easier to get your pull requests accepted quickly into the master build where it is teed-up for eventual release.
Before you submit an issue, search the issue tracker to see if the problem or something very similar has already been addressed. The discussion there might show you some workaround or identify the status of a project.
Consider what kind of change you have in mind:
For a Major Feature, first open an issue and make clear whether you are request the feature from the community or offering to provide the feature yourself. The code board will consider whether this is needed or whether some existing feature does approximately the same thing. If you would like to yourself implement the new feature, please submit an issue with the label proposal for your work first. This will also allow us to better coordinate effort and prevent duplication of work. We will also then be able to help you as you develop the feature so that it is can be readily integrated.
Small Features can be submitted directly.
When you're ready to contribute to the code base, please consider the following guidelines:
git checkout -b my-fix-branch master
git pull --ff upstream master
git commit -a
git push origin my-fix-branch
master
branch of the upstream repository of the relevant component -- this will run the test-suite before alerting the team.After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository.
Development conventions: NEURON code is being built according to C/C++, Python best-practices. The easiest way to figure out what this is is to take a look at current code and copy the way things are formatted, indented, documented, and commented.
Have you tested on the current alpha version of NEURON. If not, please clone, compile, install and run with current version (this one).
Please let us know what operating system you were using when you found the bug. If you have access to another operating system, it is helpful if you can find out if the bug shows up there as well. Please indicate which operating system(s) the bug has been found in.
In order to address a bug quickly, we need to reproduce and confirm it. Usually bugs will arise in the context of a simulation which will in many cases be extremely large. Please provide a simple, short example (zipped with any associated mod files and a README). The simplifying process may require considerable work to isolate the bug arising somewhere in the midst of a large simulation. Sometimes, this process alone is enough to identify the bug as a function limitation or documentation insufficiency, rather than a code bug per se.
The code board team at NEURON generally reviews pull requests on a weekly basis. The code board may vary – see an updated list in the project index. If you don't receive any feedback after a couple weeks, please follow up with a new comment.
placed in repo as pull req
This was merged, thank you!
To help contributors to get started, we should add easy and clear guidelines for developing for the NEURON project. Here is a possible template to model our guidelines after:
https://github.com/BlueBrain/nmodl/blob/master/CONTRIBUTING.md