Developer Guide¶
This section is for contributors extending OpenQP itself. User-facing scripts should start with the Python API; contributor work usually touches the input schema, input checker, Python workflow layer, native kernels, tagarray data records, tests, and manual pages together.
Where To Start¶
| Task | Start here |
|---|---|
| Add or change a user keyword | Contributing to OpenQP, then the relevant keyword page. |
| Add a Python workflow helper | pyoqp/oqp/openqp.py, tests, and the Python API page. |
| Add a native kernel or binding | Native Interface. |
| Store data across Python and Fortran | Data Tags and Tagarray. |
| Add result accessors | Results and Molecule Data plus the tagarray page. |
Contributor Principles¶
- Keep ordinary user setup in
molecule,theory,workflow,control, andsettings. - Add compatibility paths only when they protect existing inputs or scripts.
- Validate unsupported method/workflow combinations before dispatching kernels.
- Document new user-facing behavior in the manual, not only in generated Sphinx or FORD output.
- Add focused tests near the Python helper, input checker, or native module that owns the behavior.