Contributing¶
Thank you for considering contributing to VNtyper 2. Your contributions help improve the tool for the entire ADTKD-MUC1 research community. This page explains how to report issues, suggest features, set up a development environment, and submit changes.
Reporting Bugs¶
Before opening a new bug report, search the existing GitHub Issues to check whether the problem has already been reported.
When filing a new issue, please include:
- A short, descriptive title.
- Steps to reproduce the problem.
- Expected behavior versus actual behavior.
- Relevant environment details (OS, Python version, Docker version if applicable).
- Any error messages, logs, or screenshots that may help.
Suggesting Features¶
Feature ideas are welcome. Open a new issue and describe:
- What the feature would do and why it is useful.
- Any relevant references, examples, or prior art.
- A suggested approach, if you have one in mind.
Development Setup¶
Prerequisites¶
- Python 3.9 or higher
- Git
- Make (for running project workflows)
Getting Started¶
-
Fork the repository on GitHub, then clone your fork:
-
Install VNtyper 2 in editable mode with development dependencies:
Or use the Makefile shortcut:
Virtual environments
It is strongly recommended to work inside a virtual environment (venv, conda, or mamba) to avoid dependency conflicts with other projects.
Code Quality¶
VNtyper 2 uses Ruff for linting and formatting, and mypy for static type checking. The following Makefile targets are available:
| Command | Purpose |
|---|---|
make format | Auto-format code and apply lint fixes |
make format-check | Check formatting without modifying files |
make lint | Run the Ruff linter |
make type-check | Run mypy on vntyper/ |
Run all checks at once
Use make all to run formatting, linting, type checking, and tests in a single command.
Running Tests¶
# Unit tests (fast, no external dependencies)
make test-unit
# Integration tests (requires downloaded test data)
make test-integration
# All tests with coverage report
make test-cov
Downloading test data
Integration tests require approximately 1.1 GB of test data from Zenodo. Run make download-test-data to fetch it and make verify-test-data to confirm checksums.
Commit Conventions¶
VNtyper 2 follows the Conventional Commits specification. Each commit message should have the form:
Common types:
feat- A new feature.
fix- A bug fix.
docs- Documentation changes only.
refactor- Code restructuring without changing behavior.
test- Adding or updating tests.
build- Changes to the build system or dependencies.
Example:
feat(pipeline): add GRCh38 assembly support
Added reference region coordinates for GRCh38 and updated the
assembly normalization logic in reference_registry.py.
Closes #42
Pull Request Process¶
-
Create a feature branch from
main: -
Make your changes and commit following the conventions above.
-
Ensure all checks pass locally:
-
Push to your fork and open a pull request against
hassansaei/VNtyper:main. -
In the pull request description, provide a clear summary of the changes and reference any related issues (e.g.,
Closes #123). -
Respond to review feedback and update your branch as needed.
Community Guidelines¶
- Be respectful and constructive in all interactions.
- Provide helpful, specific feedback in code reviews.
- Follow the project's Code of Conduct.