Coding conventions

  • Avoid using "using" in the global namespace.
  • Include project-specific headers before standard headers.
  • Use descriptive names for variables.
  • Break down complex conditionals into multiple statements.
  • Minimise nested statements.

Code editor

We recommend using Visual Studio Code (VS Code). Enable format on save to automatically enforce .clang-format.

  • Verify that the code and libraries do not violate any copyright conditions.
  • Our software is licensed under a non-copyleft license, and we aim to avoid incorporating copyleft libraries.
  • Report any copyright violations by opening an issue immediately. We will remove any infringing content as soon as possible.
  • Using AI tools to help write code is acceptable as long as it is thoroughly reviewed by a human developer and does not infringe on copyrights.

Versioning

We use semantic versioning with MAJOR.MINOR.PATCH where:

  • PATCH: Backwards compatible bug fix without introducing a new feature.
  • MINOR: Backwards compatible new feature.
  • MAJOR: Incompatible changes, especially on API.

For a detailed tutorial on versioning, see this video.

Issue management

As a small library developed by a small team, we review issues informally. To avoid duplicate efforts, please comment on the issue you are working on.

Commenting

We are transitioning to Doxygen-compatible comments. Feel free to update any incompatible comments you encounter. Refer to the Doxygen guidelines for commenting best practices.