Development and contribution

The project-level contribution policy lives in CONTRIBUTING.md. It covers local setup, scientific evidence, benchmark provenance, and the pull-request checklist.

Choose a contribution

Good first contributions are focused documentation corrections, a minimized bug reproducer, a deterministic regression test, or an example that exercises one already implemented path. Discuss broad API changes, dependencies, or new numerical conventions in an issue before implementation.

Local validation

Run the smallest relevant test selection:

PYTHONPATH=. python -m pytest tests/test_rhf.py -q

For numerical work, restrict BLAS/OpenMP fan-out unless parallel behavior is the subject of the test:

OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 \
VECLIB_MAXIMUM_THREADS=1 NUMEXPR_NUM_THREADS=1 \
PYTHONPATH=. python -m pytest tests/test_rhf.py -q

Build documentation with warnings treated as errors:

python -m pip install -r docs/requirements.txt
python -m sphinx -W --keep-going -b html docs/source /tmp/pyqed-docs

Project policies

Release changes should update HISTORY.rst and keep package, documentation, and citation metadata consistent. Package-index publication happens only after the release gates pass.