First of all, thank you for your interest in contributing to Bensemble!
Whether you found a bug, have an idea for a new Bayesian learning algorithm, want to improve the documentation, or fix a typo, every contribution is appreciated.
If you encounter a bug or unexpected behavior, please open a GitHub Issue and include:
- a clear description of the problem;
- a minimal reproducible example (if possible);
- your Python version;
- your PyTorch version;
- your operating system.
If you have an idea for a new feature or algorithm, feel free to open an Issue first so we can discuss the design before implementation.
We recommend using uv for development.
Clone the repository:
git clone https://github.com/intsystems/bensemble.git
cd bensembleCreate a virtual environment:
uv venv
source .venv/bin/activate
# Windows
.venv\Scripts\activateInstall the project together with development dependencies:
uv sync --all-groupsBefore submitting a Pull Request, please ensure that all tests pass.
pytest tests/We use Ruff for linting and formatting.
Before committing, run:
ruff check .
ruff format .When submitting a Pull Request, please:
- keep changes focused on a single feature or bug fix;
- add or update tests when introducing new functionality;
- update the documentation if the public API changes;
- ensure that all tests pass;
- write clear and descriptive commit messages.
Small Pull Requests are generally easier to review than very large ones.
Documentation is an important part of the project.
If you introduce new functionality, please consider updating:
- the API documentation;
- tutorials or notebooks (when appropriate);
- the README if the feature is user-facing.
Bensemble aims to provide clean, modular implementations of Bayesian Deep Learning and Neural Network Ensembling methods.
When contributing new algorithms, please try to:
- follow the existing project structure;
- reuse existing abstractions where possible;
- keep implementations readable and well documented;
- avoid introducing unnecessary dependencies.
If you are unsure about an implementation or would like feedback before starting larger work, feel free to open a GitHub Issue or Discussion.
We appreciate every contribution that helps make Bensemble better.