Thank you for contributing to qBitrr! This guide covers how to contribute effectively.
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/your-username/qBitrr.git cd qBitrr - Set up development environment:
make newenv # Create virtual environment make syncenv # Install dependencies
- Create a branch:
git checkout -b feature/your-feature-name
- Make your changes (see Code Style)
- Test your changes locally
- Commit using conventional commits (see below)
- Push and create a pull request
Ensure your contribution meets these requirements:
- Code follows style guidelines
- Pre-commit hooks pass (
pre-commit run --all-files) - Changes tested locally with live qBittorrent + Arr instances
- Documentation updated (if adding features)
- Commit messages follow conventional commits format
Use conventional commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, no logic change)refactor:- Code refactoring (no behavior change)perf:- Performance improvementstest:- Test additions or changeschore:- Maintenance tasks (dependencies, build, etc.)ci:- CI/CD changes
# Good commit messages
feat(radarr): add support for custom quality profiles
fix(webui): resolve API token validation error
docs(advanced): add FFprobe integration guide
refactor(arss): simplify event loop error handling
test(tables): add unit tests for database models
# Bad commit messages
fix bug
update stuff
WIP
changesOptional, but helpful for large projects:
radarr,sonarr,lidarr- Arr-specific changeswebui- Web interface changesconfig- Configuration system changesdb- Database changesapi- API changesdocs- Documentation changes
Title:
- Clear and concise
- Follows conventional commits format
- Example:
feat(radarr): add support for custom formats
Description template:
## Description
Brief description of what this PR does.
## Motivation
Why is this change needed? What problem does it solve?
## Changes
- Change 1
- Change 2
- Change 3
## Testing
How was this tested?
- [ ] Tested with qBittorrent v4.6.0
- [ ] Tested with Radarr v5.0.0
- [ ] Tested in Docker
- [ ] Tested native install
## Screenshots (if applicable)
Add screenshots for WebUI changes.
## Related Issues
Closes #123
Fixes #456Be responsive:
- Address reviewer comments promptly
- Explain your reasoning if you disagree
- Be open to suggestions
Keep PR focused:
- One feature/fix per PR
- Don't mix unrelated changes
- Split large changes into multiple PRs
Update as needed:
- Rebase on latest
masterif requested - Fix merge conflicts
- Add requested changes
All checks must pass:
- pre-commit.ci - Code formatting and linting
- CodeQL - Security analysis (for Python changes)
If checks fail:
- Review the error logs
- Fix issues locally
- Push fixes
- Wait for checks to re-run
Once approved:
- Maintainer will merge your PR
- Squash commits if needed for clean history
- Your contribution will be in the next release!
Look for issues labeled good first issue:
- Simple bug fixes
- Documentation improvements
- Code formatting/cleanup
- Test additions
Before implementing a feature:
- Check if there's an existing feature request issue
- If not, create one to discuss the feature
- Wait for maintainer feedback before starting work
- Large features may need a design document
- Search existing issues to see if bug is reported
- If not, create a bug report with reproduction steps
- Reference the issue number in your PR
Documentation improvements are always welcome:
- Fix typos, grammar, clarity
- Add examples
- Improve explanations
- Add troubleshooting tips
- Translate to other languages (future)
- UI/UX improvements
- New features
- Performance optimizations
- Accessibility improvements
See the Development Guide for comprehensive development documentation including:
- Be patient with new contributors
- Provide constructive feedback
- Assume good intentions
- Follow the Code of Conduct
- GitHub Issues - Bug reports, feature requests
- GitHub Discussions - General questions, ideas
- Pull Requests - Code contributions
- Check documentation
- Search existing issues and discussions
- Ask in GitHub Discussions
- Join community chat (link in README)
Contributors are recognized in:
- CHANGELOG.md
- GitHub releases
- Contributors page (planned)
Thank you for making qBitrr better!
- Code Style - Coding standards
- Testing - How to test your changes
- Development Guide - Complete development documentation
- Release Process - How releases work