Thank you for your interest in contributing to LLM Selector! This document provides guidelines and information for contributors.
This project follows a code of conduct to ensure a welcoming environment for all contributors. By participating, you agree to:
- Be respectful and inclusive
- Focus on constructive feedback
- Accept responsibility for mistakes
- Show empathy towards other contributors
git clone https://github.com/YoannDev90/llm-selector.git
cd llm-selector
git checkout -b feature/your-feature-name# Install in development mode with test dependencies
pip install -e ".[test]"
# Install pre-commit hooks
pip install pre-commit
pre-commit install
# Run tests to ensure everything works
pytest- Follow the existing code style (black, isort, flake8)
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-nameOpen a pull request on GitHub with a clear description of your changes.
This project uses:
- Black for code formatting
- isort for import sorting
- flake8 for linting
- mypy for type checking
Run all checks with:
pre-commit run --all-files- Write tests for all new functionality
- Maintain >80% code coverage
- Test both success and failure scenarios
- Include integration tests for complex features
- Update docstrings for public APIs
- Add examples for new features
- Update README.md if needed
- Keep changelog up to date
- Fix bugs in existing code
- Add regression tests
- Update documentation
- Implement new functionality
- Add comprehensive tests
- Update documentation and examples
- Improve existing documentation
- Add tutorials or guides
- Translate documentation
- Add missing test cases
- Improve test coverage
- Fix flaky tests
Use conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code style changesrefactor: Code refactoringtest: Testingchore: Maintenance
- Update version in
pyproject.toml - Update
CHANGELOG.md - Create git tag
- Push to main branch
- GitHub Actions will handle PyPI release
- Issues: For bugs and feature requests
- Discussions: For questions and general discussion
- Discord: For real-time chat (link coming soon)
Thank you for contributing to LLM Selector! 🚀