Thank you for your interest in contributing to TURBO! This document provides guidelines for contributing to the project.
- Fork the repository and clone your fork locally
- Set up your development environment following the installation instructions in README.md
- Create a branch for your changes:
git checkout -b feature/your-feature-name
Python Code:
- Follow PEP 8 style guidelines
- Use type hints where appropriate
- Add docstrings to functions and classes using Google-style format
- Maximum line length: 100 characters
Rust Code:
- Follow the official Rust Style Guide
- Run
cargo fmtbefore committing - Run
cargo clippyand address warnings
- Update documentation for any changed functionality
- Add docstrings/comments for new functions and modules
- Update the README.md or relevant docs/ files if you change:
- System architecture
- Configuration options
- IPC protocols
- Logging formats
- Update your fork with the latest changes from the main repository
- Commit your changes with clear, descriptive commit messages:
Short (50 chars or less) summary More detailed explanation if needed. Wrap at 72 characters. Include the motivation for the change and contrast with previous behavior. - Push to your fork and create a pull request
- Fill out the PR template completely, describing:
- What problem does this solve?
- How does it solve it?
- Any potential side effects or breaking changes?
- How did you test it?
- A maintainer will review your PR within a few days
- Address any requested changes
- Once approved, a maintainer will merge your PR
We welcome contributions in many areas:
- Additional model backends: Support for YOLO, Faster R-CNN, or other detection models
- Transport layer improvements: Alternative congestion control algorithms, TCP fallback
- Bandwidth allocation policies: New allocation strategies beyond LP-based optimization
- Monitoring and visualization: Enhanced dashboard features, additional metrics
- Latency optimization: Reduce end-to-end latency in the inference pipeline
- Throughput optimization: Improve bandwidth utilization efficiency
- Resource efficiency: Reduce CPU/memory overhead
- Unit tests: Increase test coverage for core components
- Integration tests: End-to-end testing scenarios
- Benchmarks: Performance characterization under different network conditions
- Tutorials: Step-by-step guides for common use cases
- Deployment guides: Instructions for cloud providers, edge devices
- API documentation: Comprehensive function/class documentation
- Examples: Additional example configurations and scenarios
- Check the Issues page for known bugs
- Report new bugs with detailed reproduction steps
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Provide constructive feedback
- Focus on what is best for the project and community
- Harassment, discrimination, or intimidation
- Trolling or insulting comments
- Publishing others' private information
- Other conduct inappropriate for a professional setting
- Questions about the code? Open a Discussion
- Found a bug? Open an Issue
- Want to propose a feature? Start a Discussion first to get feedback
By contributing to this project, you agree that your contributions will be licensed under the project's license (see LICENSE file).
Contributors will be acknowledged in the project's README.md and release notes.
Thank you for contributing to TURBO!