Thank you for your interest in contributing to DNDSR. This project is primarily a research code developed by the DNDSR team, but external contributions — bug reports, documentation improvements, and well-scoped features — are welcome.
- Build the project — see
docs/guides/building.mdfor full instructions. - Run the tests — see
docs/tests/overview.mdfor C++ and Python test commands. - Read the style guide — see
docs/guides/style_guide.mdfor C++ and Python conventions. - Understand the architecture — see
docs/architecture/for design documents.
- Use GitHub Issues
- Include: build configuration (compiler, MPI implementation, CMake preset), steps to reproduce, expected vs. actual behavior, and relevant logs
- Documentation lives in
docs/as Markdown files consumed by both Sphinx and Doxygen - See
docs/guides/doc_authoring.mdfor how to add or edit pages - When editing, keep the dual-doc system in mind (Doxygen + Sphinx)
TODO: Add process details:
- Branch naming conventions
- Commit message style
- Pull request template
- Required reviews and CI checks
- clang-format and clang-tidy requirements
TODO: Link to detailed test guide (C++ doctest and Python pytest)
TODO: Describe the config registration system and where to document
See docs/guides/doc_authoring.md for the full checklist.
Be respectful and constructive. DNDSR is a research code — design decisions often reflect specific numerical-method requirements rather than general software-engineering preferences. Discussion is welcome.
docs/guides/building.md— build instructionsdocs/guides/style_guide.md— coding conventionsdocs/guides/doc_authoring.md— how to write documentationdocs/tests/overview.md— test suite documentationdocs/dev/TODO.md— active development tasks