Thank you for your interest in contributing to UPnPCast! We welcome contributions from the community.
- 🐛 Report bugs using our bug report template
- ✨ Request features using our feature request template
- 📖 Improve documentation
- 🧪 Add tests
- 💻 Submit code improvements
- JDK 17 or higher
- Android Studio (latest stable version)
- Git
# Clone the repository
git clone https://github.com/yinnho/UPnPCast.git
cd UPnPCast
# Build the project
./gradlew build
# Run tests
./gradlew test
# Run the demo app
./gradlew :app-demo:installDebug- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add KDoc comments for public APIs
- Keep functions small and focused
- Write unit tests for new features
- Ensure all tests pass before submitting
- Test on different Android versions (API 24+)
- Test with various DLNA devices when possible
Use conventional commit format:
type(scope): description
Examples:
feat(api): add new device discovery method
fix(cast): resolve playback state synchronization
docs(readme): update installation instructions
test(discovery): add SSDP discovery tests
git checkout -b feature/your-feature-name- Follow the coding guidelines above
- Add tests for new functionality
- Update documentation if needed
# Run all tests
./gradlew test
# Run lint checks
./gradlew lint
# Test with the demo app
./gradlew :app-demo:installDebug- Push your branch to GitHub
- Create a Pull Request with a clear description
- Link any related issues
- Wait for code review
- ✅ All tests must pass
- ✅ Code must pass lint checks
- ✅ Include appropriate tests
- ✅ Update documentation if needed
- ✅ Get approval from maintainers
When reporting bugs, please include:
- Clear description of the issue
- Steps to reproduce the problem
- Expected vs actual behavior
- Environment details (device, Android version, library version)
- Logs or error messages
- Code sample if applicable
For feature requests, please provide:
- Problem description and use case
- Proposed solution with examples
- API design suggestions (if applicable)
- Priority level and contribution willingness
We test compatibility with:
- Xiaomi TV
- Samsung Smart TV
- LG Smart TV
- Sony Bravia TV
- Android TV boxes
- Device discovery works
- Media casting starts successfully
- Playback controls (play/pause/stop) work
- Volume control functions
- Error handling is appropriate
- 📖 Check the documentation
- 🎯 Look at the demo app
- 💬 Start a discussion
- 🐛 Search existing issues
By contributing, you agree that your contributions will be licensed under the MIT License.
Contributors will be acknowledged in our release notes and README. Thank you for making UPnPCast better!