Contributing to perfusio¶
Thank you for your interest in contributing!
Ways to contribute¶
Bug reports — Open an issue with a minimal reproducible example.
Feature requests — Open an issue describing the use case.
Pull requests — See the workflow below.
Cell-line datasets — Share anonymised calibration data via the Discussions tab.
Development setup¶
git clone https://github.com/lynchaos/perfusio.git
cd perfusio
pip install -e ".[dev]"
pre-commit install
Running tests¶
pytest # fast tests (excludes @slow)
pytest --runslow # include 30-day integration test
pytest --cov=perfusio --cov-report=term-missing
Code style¶
Ruff for linting and formatting (
ruff check . --fix && ruff format .).mypy –strict for type checking (
mypy src/).All new public functions must have NumPy-style docstrings.
New modules must include
from __future__ import annotations.
Pull request checklist¶
[ ] Tests pass (
pytest).[ ] Coverage does not decrease below 92% lines / 85% branch.
[ ]
mypyreports zero errors.[ ]
CHANGELOG.mdupdated under[Unreleased].[ ] Docstrings updated.
Commit messages¶
Use Conventional Commits:
feat:, fix:, docs:, test:, chore:, refactor:.
Licence¶
By contributing you agree that your contributions will be licensed under the Apache-2.0 licence.