Contributing
Thanks for your interest in improving History Matching. This guide covers how to set up a development environment, run the tests, and submit changes.
Development setup
Set up the environment with uv (recommended). This
creates a .venv and installs the project with the chosen extras:
git clone https://github.com/InstituteforDiseaseModeling/historymatching
cd historymatching
uv sync --extra notebooks --extra test # add --extra mac on Apple Silicon
Or with plain pip in editable mode:
pip install -e ".[notebooks,test]"
Running tests
With uv:
uv run pytest tests/ # all tests (~10 s, no network required)
uv run pytest tests/ -x -q # fail fast, quiet
The tutorial notebooks are executed end-to-end separately (pytest does not run them):
bash docs/tutorials/run_tutorials.sh
Pull requests
- Create a feature branch from
main. - Make your changes, adding or updating tests as appropriate.
- Ensure
uv run pytest tests/passes and, if you touched the tutorials, thatdocs/tutorials/run_tutorials.shpasses. - Submit a pull request describing the change and its motivation.
Questions or bug reports are welcome on the issue tracker.