-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Stephen Cox edited this page Dec 10, 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
-
Make your changes with clear commit messages:
git commit -m "feat: Add custom operator for field comparison" -
Test your changes:
python -m py_compile lib/*.py triggers/*.py python triggers/manual.py --dry-run
-
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:
# Validate Python syntax
python -m py_compile lib/*.py triggers/*.py
# Test imports
python -c "from lib.api import QBittorrentAPI"
python -c "from lib.engine import RulesEngine"
# Validate example configs
python -c "import yaml; yaml.safe_load(open('config/rules.example.yml'))"
# Run with dry-run
python triggers/manual.py --dry-runWhen 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)