-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Stephen Cox edited this page Dec 13, 2025
·
4 revisions
We welcome contributions to qBittorrent Automation!
- Fork the repository on GitHub
-
Create a feature branch:
git checkout -b feature/my-new-feature
-
Install in editable mode:
pip install -e . -
Make your changes with clear commit messages:
git commit -m "feat: Add custom operator for field comparison" -
Test your changes:
pytest qbt-rules --dry-run --validate
-
Push to your fork:
git push origin feature/my-new-feature
- Create a Pull Request with description of changes
- Follow PEP 8 style guide
- Use descriptive variable names
- Add docstrings to functions
- Keep functions focused and modular
Before submitting PR:
# Run test suite
pytest
# Test with coverage
pytest --cov=qbt_rules --cov-report=term-missing
# Test imports
python -c "from qbt_rules.api import QBittorrentAPI"
python -c "from qbt_rules.engine import RulesEngine"
# Validate example configs
qbt-rules --validate --config-dir config
# Run with dry-run
qbt-rules --dry-run --config-dir configWhen reporting bugs, include:
-
Environment details:
- Python version
- qBittorrent version
- Operating system
-
Configuration:
- Sanitized
config.yml(remove credentials!) - Relevant rules from
rules.yml
- Sanitized
-
Error output:
- Full error message
- Traceback if applicable
- Logs with
--traceflag
-
Steps to reproduce
qbt-rules v0.3.0 | Python-based rules engine for qBittorrent automation
GitHub • PyPI • Issues • Discussions • Contributing • License
Requirements: Python 3.8+ • qBittorrent 5.0+
Made with ❤️ by the qbt-rules community | Licensed under MIT
v0.3.0 | GitHub
- ✅ Unified CLI (
qbt-rules) - ✅ Custom triggers
- ✅ Trigger-agnostic mode
- ✅ Size operators (
50GB)