Contributing
Contributing
Section titled “Contributing”We welcome contributions from the community.
Development setup
Section titled “Development setup”- Clone the repository:
git clone https://github.com/refgenie/refgenie1.gitcd refgenie1- Install in development mode:
pip install -e ".[dev,server,dash]"- Verify the installation:
refgenie --helpRunning tests
Section titled “Running tests”Unit tests
Section titled “Unit tests”Unit tests use in-memory SQLite and require no external dependencies. They run in about 7 seconds:
pytest tests/ --ignore=tests/integrationIntegration tests
Section titled “Integration tests”Integration tests require Docker (for PostgreSQL) and take about 110 seconds. Use the provided script, which manages the PostgreSQL container lifecycle, HTTP data channel, and bulker crate activation:
./tests/scripts/test-integration.shDo not run pytest tests/integration/ directly — all tests will skip because the required environment variable and services will not be set up.
For debugging individual integration tests:
./tests/scripts/services.sh startRUN_INTEGRATION_TESTS=true pytest tests/integration/ -k "test_name"./tests/scripts/services.sh stopNew assets
Section titled “New assets”We are interested in working with groups who want to add assets into the refgenie system. Refgenie now uses a flexible asset class and recipe system — you can define custom asset types and build recipes via YAML files without modifying refgenie’s source code. See Flexible asset types and Data channels for details.
Project structure
Section titled “Project structure”| Directory | Contents |
|---|---|
refgenie/ | Core library code |
refgenie/cli/ | CLI command definitions, handlers, and argument models |
refgenie/server/ | Built-in server (FastAPI routers, templates) |
refgenie/dash/ | Dashboard web UI |
refgenie/db/ | Database models (SQLModel) |
refgenie/managers/ | Asset, configuration, and genome managers |
refgenie/config/ | Configuration and database backend setup |
tests/ | Unit tests |
tests/integration/ | Integration tests (require Docker) |
Suggestions and feedback
Section titled “Suggestions and feedback”Please open an issue on the GitHub issue tracker with suggestions, bug reports, or other feedback.