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 issuelabels, Labels, and the Roadmap);the development environment (
environment.yml,scripts/dev_env.sh) and the presets;the tests (labels
cpu,gpu,parity), the local gateci/check.shand, for CUDA changes, the local GPU gateci/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