IMP logo
IMP Manual  for IMP version 2.16.0
cont_back.md
1 Contributing code back to IMP {#cont_back}
2 =============================
3 
4 In order to be shared with others as part of the %IMP distribution, code
5 needs to be of higher quality and more thoroughly vetted than typical
6 research code. All code contributed to %IMP
7 - must follow the [code conventions](@ref code_conventions)
8 - should follow general good [C++ programming practices](@ref good_practice)
9 - must have [unit tests](@ref testing) that all pass when run with `ctest`
10 - must have [documentation](@ref documenting) that builds without warnings
11 - must build on all supported compilers (roughly, recent versions of `gcc`,
12  `clang++` and `Visual C++`) without warnings
13 - should have [examples](@ref write_examples) that all work when run
14  with `ctest`
15 
16 Once your code is ready to go, [open a pull request](@ref devsetup) to get
17 the changes from [your fork](@ref devsetup) back into the main repository.
18 
19 \note that all development occurs in the `develop` branch. No development
20 is done directly in the `main` branch - it is updated for each release by
21 merging from the `develop` branch, as per the
22 [gitflow branching model](http://nvie.com/posts/a-successful-git-branching-model/).
23 If your change is a bug fix that should also patch the last release, once your
24 code is in `develop` open an [issue on GitHub](https://github.com/salilab/imp/issues)
25 assigned to `benmwebb` and connected to the milestone for the next point
26 release (e.g. a milestone with a name like `%IMP 2.0.1 point release`).