Contributing#

The contributor guide is CONTRIBUTING.md in the repository root, where GitHub shows it next to every issue and pull request. It covers:

  • where to start (the good first issue labels, Labels, and the Roadmap);

  • the development environment (environment.yml, scripts/dev_env.sh) and the presets;

  • the tests (labels cpu, gpu, parity), the local gate ci/check.sh and, for CUDA changes, the local GPU gate ci/gpu_local.sh;

  • parity with the original research codes (Parity harness) and performance measurements;

  • style: clang-format, the naming rules of ADR 0004, SPDX headers and provenance headers of ported files;

  • Doxygen conventions and the documentation build (Writing documentation);

  • commit messages, the Developer Certificate of Origin (DCO) sign-off for external contributors;

  • the pull-request process and review rules (with the API review checklist for public API changes; the merge policy is ADR 0019: Merge policy (merge commits for milestone work, squash for contributions)), and how to add an algorithm or port research code (with the provenance rules, Provenance and copyright holders).

The community files next to it: the Code of Conduct (Contributor Covenant 3.0), SECURITY.md (private vulnerability reporting), SUPPORT.md, GOVERNANCE.md (including the log of approval checkpoints) and MAINTAINERS.md.

The shortest path from a clone to a green build:

conda env create -f environment.yml
source scripts/dev_env.sh
pre-commit install
cmake --preset dev && cmake --build --preset dev && ctest --preset dev
ci/check.sh