Contributing
We welcome patches that improve the physics fidelity, performance, or ergonomics of the LW Integrator. Please keep the following ground rules in mind:
Stay regression safe. All changes that touch physics need focused pytest coverage and, where relevant, CLI/GUI parity checks. Historical notebooks can inform investigations, but they are not the active validation baseline.
Document as you go. Extend the relevant page under
docs/source/when you add or change behaviour. The documentation is built as part of CI and warnings fail the build.Prefer type hints and small helpers. The modern
core/modules are a transcription of the archived reference code; helper functions exist to keep the flow readable without altering the math.Use the project tooling. Formatting, linting, and tests are orchestrated via
pre-commithooks andpytest. Runpre-commit installonce andpre-commit run --all-filesbefore sending a PR.
Process
Fork and branch from
main.Make changes with accompanying tests and documentation.
Run the pytest, CLI, plotting, or docs checks relevant to your change.
Submit a pull request summarising the physics context and validation output.
Reach out via the issue tracker if you plan a large refactor so we can align on scope before you begin.