Contributions to BoFire are highly welcome!
Pull requests are highly welcome:
- Create a fork from main.
- Add or adapt unit tests according to your change.
- Add doc-strings and update the documentation. You might consider contributing to the tutorials section.
- Make sure that the GitHub pipeline passes.
We recommend an editable installation. After cloning the repository via
git clone https://github.com/experimental-design/bofire.git
and cd bofire
, you can proceed with
pip install -e .[optimization,cheminfo,testing,docs]
Afterwards, you can check that the tests are successful via
pytest tests/
We format our code with Black. Our doc-strings are in Google-style. Further, we use Ruff for linting.
In our CI/CD pipeline we check if contributions are compliant to Black and Ruff. To make contributors' lives easier, we have pre-commit hooks for Black and Ruff configured in the versions corresponding to the pipeline. Pre-commit hooks can be installed via
pip install pre-commit
pre-commit install
in you local project root folder, if you want to use pre-commit
.
We make heavy use of Pydantic to enforce type checks during runtime. Further, we use Pyright for static type checking. We enforce Pyright type checks in our CI/CD pipeline.
We use MkDocs with material theme and deploy our documentation to https://experimental-design.github.io/bofire/. Thereby, an API description is extracted from the doc-strings. Additionally, we have tutorials and getting-started-sections.
By contributing you agree that your contributions will be licensed under the same BSD 3-Clause License as BoFire.