Developer Guide
Local Workflow
The shortest normal edit cycle is:
- configure a local build
- build the affected targets
- run focused tests first
- run broader CTest coverage if the change touches shared code paths
Typical commands are collected in CONTRIBUTING.md.
Where To Start Reading
For most C++ changes, start with:
c++/nrg-general.hppc++/core.hppc++/params.hppc++/read-input.hppc++/eigen.hppc++/operators.hppc++/store.hpp
These files define most of the runtime vocabulary and the main orchestration flow.
Useful companion pages in this documentation set:
Common Change Paths
Runtime Flow Changes
Look at:
c++/nrg-general.hppc++/core.hppc++/step.hpp
Parameter Or Input Changes
Look at:
c++/params.hppc++/read-input.hppnrginit/
Symmetry Work
Look at:
c++/symmetry.hppc++/mk_sym.hppc++/sym-*.ccc++/symmetry/
Operator Recalculation Or Measurement Changes
Look at:
c++/operators.hppc++/oprecalc.hppc++/measurements.hppc++/spectral.hppc++/algo*.hpp
Tool Changes
Look at:
tools/CMakeLists.txt- the corresponding subdirectory under
tools/ - the matching tests in
test/tools/
Testing Strategy
Prefer targeted tests first. The repository has enough breadth that broad runs are more useful after the local change is already stable.
If you touch:
- workdir or filesystem behavior: run unit tests and at least one
ctest -jrun Paramsor input parsing: run unit tests and one or more regression directories undertest/c++/- symmetry or recalculation logic: run both unit tests and regression suites
- tool code: run the matching tool tests under
test/tools/
Legacy And New Docs
The doc/ tree is still present during migration. New contributor-oriented documentation should go into docs/ unless there is a strong reason to extend the legacy Sphinx content instead.