Thank you for your interest in contributing to the DNA Sequence Analysis Tool! We welcome contributions from the community to help improve this project.
- Code of Conduct
- Getting Started
- Development Setup
- Making Changes
- Code Style
- Testing
- Documentation
- Submitting a Pull Request
- Reporting Issues
- Feature Requests
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment (see below)
- Create a new branch for your changes
- Make your changes
- Run tests
- Submit a pull request
- Python 3.8+
- Poetry for dependency management
- pre-commit for git hooks
-
Clone the repository:
git clone https://github.com/yourusername/DNASequenceAnalysisTool.git cd DNASequenceAnalysisTool -
Install dependencies:
poetry install
-
Set up pre-commit hooks:
pre-commit install
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-number-description -
Make your changes following the code style guidelines
-
Run tests to ensure everything works:
poetry run pytest
-
Commit your changes with a descriptive message:
git commit -m "Add feature: your feature description"
We use several tools to maintain code quality and style:
- Black for code formatting
- isort for import sorting
- Flake8 for linting
- Mypy for type checking
These are automatically checked by pre-commit hooks. To run them manually:
poetry run black .
poetry run isort .
poetry run flake8
poetry run mypy .We use pytest for testing. To run the test suite:
poetry run pytestFor test coverage:
poetry run pytest --cov=dna_sequence_analysis_tool tests/We use Sphinx for documentation. To build the docs locally:
cd docs
poetry run make htmlDocumentation will be available in docs/_build/html/index.html.
-
Push your changes to your fork:
git push origin your-branch-name
-
Open a pull request against the
mainbranch -
Fill in the PR template with all relevant information
-
Ensure all CI checks pass
-
Address any review comments
When reporting an issue, please include:
- A clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment information (Python version, OS, etc.)
- Any relevant error messages or logs
We welcome feature requests! Please open an issue and use the "Feature Request" template to describe:
- The feature you'd like to see
- Why it would be useful
- Any implementation ideas you have
Thank you for contributing to the DNA Sequence Analysis Tool!