Contributing Guide¶
Thank you for your interest in contributing to AniSearch Model! This guide will help you get started with contributing to the project.
Setup for Development¶
- Fork the repository on GitHub
-
Clone your fork locally:
-
Set up a development environment:
# Create a virtual environment python -m venv venv # Activate the virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate # Install core dependencies pip install -r requirements.txt # Install development dependencies pip install -r requirements-dev.txt # If you'll be updating documentation pip install -r requirements-docs.txt
Code Style¶
This project follows these coding standards:
- PEP 8 for Python code style
- Type Annotations for all function definitions
- Docstrings in Google style format
- Line Length limited to 100 characters
We use the following tools to maintain code quality:
- Ruff for linting and formatting
- MyPy for type checking
- Pytest for unit testing
You can run these tools locally:
Pull Request Process¶
- Create a branch for your feature or bugfix:
-
Make your changes following the code style guidelines
-
Write tests for your changes to ensure they work correctly
-
Run the checks to ensure your code passes all tests:
- Commit your changes with a clear and descriptive commit message:
- Push to your fork:
- Create a Pull Request from your fork to the main repository
Adding New Features¶
When adding new features:
- Document your code with docstrings and type annotations
- Update documentation if necessary
- Add tests for your feature
- Consider backwards compatibility
Reporting Bugs¶
When reporting bugs:
- Check if the bug has already been reported
- Include detailed steps to reproduce
- Describe the expected behavior
- Include relevant logs or screenshots
- Specify your environment (OS, Python version, etc.)
Feature Requests¶
For feature requests:
- Clearly describe the feature and its benefits
- Explain how it aligns with the project's goals
- If possible, outline how it might be implemented