1 Contributing code back to IMP {#cont_back}
2 =============================
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
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.
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:
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:
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`).