Contributing¶
Contributions are very welcome, especially curated rule datasets, bug reports, reproducible test cases, and code improvements.
Bug reports and feature requests¶
Open an issue on GitHub with:
- A clear description of the problem or feature
- Steps to reproduce (for bugs)
- Expected vs. actual behavior
- ResPro version and Python version
Pull requests¶
- Fork the repository.
- Create a feature branch.
- Make your changes with tests.
- Open a pull request against the
masterbranch.
Curated rule datasets are especially welcome — see Database Preparation and Rules TSV Format for the expected file formats.
Design principles¶
These principles guide development and code review:
- CLI-first — backend changes must remain usable through
respro. - Core independence — domain logic lives in
respro/, not in web-only layers. - Deterministic outputs — reporting and regeneration flows must be reproducible.
- Framework-first design — the project database is the stable internal reference layer for profiling.
- Codon-aware — resistance interpretation stays amino-acid-centered.
- Fail fast — require data to be present; no silent fallbacks or compatibility shims.
- Thin CLI handlers — orchestration belongs in
respro/cli/; reusable logic belongs in package modules (respro/core/,respro/io/,respro/db/,respro/report/).
Module layout¶
respro/cli— CLI command registration and orchestrationrespro/core— reference-normalized profiling, amino-acid interpretation, and rule matchingrespro/io— format-specific parsing (GenBank, VCF, FASTA, TSV) and external data retrievalrespro/db— schema, migrations, and persistence/query helpersrespro/report— HTML/JSON/TSV/PDF export and plottingweb/backend— FastAPI API, job queue, and startup configweb/frontend— React frontend
Local quality gates¶
python -m pytest
Direct contact¶
For direct contact, email Jonas Fuchs.