Thank you for considering contributing to VNtyper! Your contributions help make this project better for everyone. This document outlines the process for contributing, reporting issues, setting up the development environment, and coding standards.
If you find a bug in VNtyper, please help us by creating a new issue:
- Check for Existing Issues: Before submitting a new bug report, please search the Issues to see if it has already been reported.
- Open a New Issue: If you don’t find an existing report, click on the
New Issue
button. - Use a Clear Title: Provide a short, descriptive title of the bug.
- Describe the Bug:
- Explain the issue clearly and concisely.
- Include steps to reproduce the bug.
- Mention any relevant configuration or environment details (e.g., OS, Python version).
- Describe the expected behavior vs. the actual behavior.
- Add Additional Context (if necessary): Screenshots, logs, or error messages can be very helpful.
By reporting bugs promptly and clearly, you help us investigate and resolve them more efficiently.
We welcome ideas to improve VNtyper! To suggest a new feature or enhancement:
- Check for Existing Requests: Search the Issues for similar feature requests.
- Open a New Issue: If the idea is not already discussed, click
New Issue
. - Use a Descriptive Title: Clearly state what feature or improvement you would like to see.
- Provide Details:
- Explain why the enhancement would be useful.
- Suggest any potential approach, relevant references, or examples.
- Discuss and Refine: Engage with the community and maintainers on the issue to refine the idea and agree on an approach.
When you're ready to contribute code:
-
Fork the Repository: Click on the
Fork
button at the top right of the repository page. -
Clone Your Fork:
git clone https://github.com/your-username/vntyper.git cd vntyper
-
Create a New Branch:
git checkout -b feature/your-feature-name
-
Make Changes: Implement your feature or fix.
-
Commit Changes: Follow the Commit Messages guidelines.
-
Push to Your Fork:
git push origin feature/your-feature-name
-
Open a Pull Request: Go to the original repository and click on
New Pull Request
.- Provide a clear description of your changes.
- Reference any related issues (
Closes #issue-number
).
- Python: Version 3.9 or higher
- Git: Version control system
- Conda/Mamba: For environment management
-
Clone the Repository:
git clone https://github.com/your-username/vntyper.git cd vntyper
-
Install Mamba (if not already installed):
conda install mamba -n base -c conda-forge
-
Create a Development Environment:
mamba env create -f environment.yml conda activate vntyper-dev
Note: Ensure that an
environment.yml
file exists with the necessary development dependencies. -
Install VNtyper in Editable Mode:
pip install -e .
We follow the PEP 8 style guide with some project-specific conventions.
-
Use
black
for code formatting:black vntyper/
-
Lint Your Code with
flake8
:flake8 vntyper/
-
Type Checking with
mypy
(if applicable):mypy vntyper/
-
Format: Use the Conventional Commits style.
-
Structure:
type(scope): subject body (optional) footer (optional)
-
Example:
feat(pipeline): add new genotyping method Implemented a new method for genotyping using advanced algorithms. Closes #123
- Ensure All Tests Pass: Before submitting, make sure all tests pass locally.
- Update Documentation: If your changes affect documentation, update it accordingly.
- Follow the Template: Use the provided pull request template and fill out all sections.
- Address Review Comments: Be responsive to feedback and make necessary changes.
- Be respectful and considerate.
- Provide constructive feedback.
- Follow the project's Code of Conduct (if available).