🎉Thanks for taking the time to contribute!🎉
The following is a set of guidelines for contributing to hiredis-cluster.
The basics about setting up the project, building and testing is covered in the README.
Adhere to the existing coding style and make sure to mimic best possible.
To have a common look-and-feel clang-format
is used for code formatting. The formatting rules can be applied to the
source code by running make format
in your CMake build directory.
$ mkdir -p build; cd build
$ cmake ..
$ make format
Make sure changes are covered by tests.
Code coverage instrumentation can be enabled using a build option and a detailed html report can be viewed using following example:
$ mkdir -p build; cd build
$ cmake -DENABLE_COVERAGE=ON ..
$ make all test coverage
$ xdg-open ./coverage.html
The report generation requires that gcovr is installed in your path. Any reporting tool of choice can be used, as long as it reads .gcda and .gcno files created during the test run.
Unfortunately, the output of tests are hidden by default. To develop or debug
tests using printouts, try make CTEST_OUTPUT_ON_FAILURE=1 test
or call ctest
directly with your prefered args, such as -V
(check the manpage for ctest), in
your CMake build directory.
If you have problems with the linker not finding certain functions in the
Windows builds, try adding those functions to the file hiredis_cluster.def
.
All functions called from the tests need to be in this file.
- Run the formatter before committing when contributing to this project (
make format
). - Cover new behaviour with tests when possible.
- clang-format for code formatting