IMP logo
IMP Manual  for IMP version 2.16.0
autobuild.md
1 Automated builds and checks {#autobuild}
2 ===========================
3 
4 The %IMP code is automatically tested for consistency and stability in a number
5 of ways.
6 
7 ## Nightly builds
8 
9 %IMP is built nightly from source code on a variety of different machines
10 in the Sali lab, and in several different configurations, and all the test
11 cases, examples, and benchmarks run. This aims to detect problems with new
12 code relatively quickly. See the
13 [nightly build status page](https://integrativemodeling.org/nightly/results/)
14 for latest results. This is done for the head of the `develop` branch of the
15 code in the [GitHub](https://github.com/salilab/imp) repository. When a new
16 stable release is in preparation, this is also done for the corresponding
17 `release/x.y.z` branch and also for the `main` branch once the new release
18 is merged there. Results for these branches can also be viewed at the nightly
19 build state page by selecting the branch from the dropdown at the top left
20 of the page.
21 
22 ## Travis CI
23 
24 A subset of the %IMP code is built using
25 [Travis CI](https://travis-ci.org/salilab/imp) every time code is pushed to
26 the `develop` branch on [GitHub](https://github.com/salilab/imp). (Only a subset
27 is built because building all of %IMP would exceed Travis CI's time limits.)
28 This is helpful to quickly detect compilation errors.
29 
30 ## Coverity
31 
32 The entire %IMP code is periodically subjected to static code analysis
33 using [Coverity](https://scan.coverity.com/projects/salilab-imp). This is
34 useful to detect some types of coding errors, such as buffer overflows.
35 
36 The Coverity scan is not currently completely automated, since the compilation
37 is quite expensive and Coverity imposes strict limits on the frequency of
38 builds. It is currently run manually on an older Mac running OS X 10.6 (the
39 newer Macs in the Sali lab use the `clang` compiler, which Coverity doesn't
40 support, and the build takes a really long time on a Linux box).
41 
42 Note that Coverity currently reports a rather high defect density for %IMP.
43 Many of these are false positives - for example, Coverity complains about
44 all of the [geometric primitives](@ref geometricprimitives) not being
45 initialized, but this is intentional.