Skip to content
Richard Preen edited this page Dec 5, 2021 · 28 revisions

Contributions to this repository are very welcome. If you are interested in contributing, feel free to contact me or create an issue in the issue tracking system. Alternatively, you may fork the project and submit a pull request. All contributions must be made under the same license as the rest of the project: GNU Public License v3. Ideally new code should be accompanied with appropriate test cases and documented.

Remember to add your @author at the top of each modified source file. New files should include a GPLv3 license at the top.


Style guides

C/C++

All C/C++ code should be formatted with clang-format using the provided style .clang-format.

For example: clang-format -i -style=file */*.c */*.h */*.cpp

Each data structure and function should be documented with minimal Doxygen comments.

Please try to follow the style of existing code and use const-correctness.

Python

All Python code should be linted with pylint. A perfect score is not necessary, but try to clean up as much as is reasonable.

For example: pylint python/example_rmux.py

CMake

All CMakeLists should be formatted with cmake-format using the style .cmake-format.yml.

For example: cmake-format -c .cmake-format.yml -i CMakeLists.txt

Yaml

All yaml files should be linted with yamllint.

For example: yamllint .lgtm.yml


Version numbering

Version number format: MAJOR.MINOR.BUILD - specified in xcsf.h and CMakeLists.txt (PROJECT_VERSION) and setup.py.

  • Increment BUILD number for minor bug fixes and changes that do not break compatability with file saving/loading.
  • Increment MINOR number for major bug fixes and changes that break compatability with file saving/loading.
  • Criteria for incrementing the MAJOR number to be determined later.

Clone this wiki locally