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.
Continuous Integration#
Pull requests automatically run the Ubuntu, macOS, and Docker builds, the
Linux pycolmap wheel, and the documentation build. The slower Windows builds
and the remaining pycolmap wheels (macOS, Windows, and CUDA) only run once a
maintainer adds the full-ci label. The label stays on the pull request, so
later pushes run these jobs again. They are required for merging and show as
pending until the label is added.