Thank you for your interest in contributing to HyprRice! This document provides guidelines and information for contributors.
- Python 3.10 or higher
- Git
- Basic knowledge of Python and Qt
-
Clone the repository
git clone https://github.com/hyprrice/hyprrice.git cd hyprrice -
Create a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -e . pip install -r requirements-dev.txt -
Run tests
pytest
- Follow PEP 8 style guidelines
- Use type hints for all functions and methods
- Keep line length under 88 characters
- Use meaningful variable and function names
We use automated formatting tools:
- Black for code formatting
- isort for import sorting
- flake8 for linting
- mypy for type checking
Run formatting before committing:
black src/ tests/
isort src/ tests/
flake8 src/ tests/
mypy src/- Write tests for all new functionality
- Maintain test coverage above 85%
- Use descriptive test names
- Test both success and failure cases
- Update docstrings for new functions and classes
- Add type hints to all function signatures
- Update README.md for user-facing changes
- Update CHANGELOG.md for significant changes
- Create a new file in the
plugins/directory - Inherit from
PluginBase - Implement required methods
- Add metadata and configuration schema
- Test your plugin thoroughly
- Follow the plugin API contract
- Validate all inputs
- Handle errors gracefully
- Provide clear error messages
- Document configuration options
- Ensure all tests pass
- Run code formatting tools
- Update documentation if needed
- Add tests for new functionality
- Update CHANGELOG.md
- Use descriptive titles and descriptions
- Reference related issues
- Keep changes focused and atomic
- Include screenshots for GUI changes
- Test on multiple Python versions
- All PRs require review
- Address reviewer feedback promptly
- Keep discussions constructive
- Be open to suggestions
When reporting bugs, please include:
- Python version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Error messages or logs
- Screenshots if applicable
For feature requests, please include:
- Clear description of the feature
- Use case and motivation
- Proposed implementation approach
- Any relevant examples
- DO NOT open public issues for security vulnerabilities
- Email security issues to: security@hyprrice.example.com
- Include detailed reproduction steps
- Allow time for response before public disclosure
- Never commit secrets or credentials
- Validate all user inputs
- Use secure coding practices
- Follow principle of least privilege
We follow Semantic Versioning:
- MAJOR: Incompatible API changes
- MINOR: New functionality (backward compatible)
- PATCH: Bug fixes (backward compatible)
- Update version in
__init__.py - Update CHANGELOG.md
- Run full test suite
- Update documentation
- Create release tag
- Publish to PyPI
- Check the documentation
- Search existing issues
- Join our community discussions
- Ask questions in issues
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Follow community guidelines
By contributing to HyprRice, you agree that your contributions will be licensed under the MIT License.
Contributors will be recognized in:
- CONTRIBUTORS.md file
- Release notes
- Project documentation
Thank you for contributing to HyprRice! 🎉