Contribution#
Contributions (bug reports, bug fixes, improvements, etc.) are very welcome and should be submitted in the form of new issues and/or pull requests on GitHub.
Please, adhere to the Google coding style guide:
https://google.github.io/styleguide/cppguide.html
by using the provided “.clang-format” file.
Document functions, methods, classes, etc. with inline documentation strings describing the API, using the following format:
// Short description.
//
// Longer description with a few sentences and multiple lines.
//
// @param parameter1 Description for parameter 1.
// @param parameter2 Description for parameter 2.
//
// @return Description of optional return value.
Add unit tests for all newly added code and make sure that algorithmic “improvements” generalize and actually improve the results of the pipeline on a variety of datasets.
Running Tests#
Build with -DTESTS_ENABLED=ON and run the test suite from the build
directory:
cd build
ctest --output-on-failure
Tests that run expensive neural-network inference (e.g. the full-size LoMa
smoke test) are skipped by default and only run when the
COLMAP_TEST_HEAVY environment variable is set:
COLMAP_TEST_HEAVY=1 ctest --output-on-failure
Continuous integration always runs the test suite with COLMAP_TEST_HEAVY
set, so heavy tests are covered there. When adding a test whose runtime is
dominated by model loading or inference, prefer a fast default path and gate
the expensive variant behind this variable.