5.3 KiB
Contributing to YOLO 🚀
We value your input and are committed to making contributing to YOLO as easy and transparent as possible. Whether you're:
- Reporting a bug
- Discussing the current state of the codebase
- Submitting a fix
- Proposing a new feature
- Interested in becoming a maintainer
Ultralytics YOLO thrives thanks to the collective efforts of our community. Every improvement you contribute helps push the boundaries of what's possible in AI! 😃
🛠️ Submitting a Pull Request (PR)
Submitting a PR is straightforward! Here’s an example showing how to update requirements.txt
in four simple steps:
1. Select the File to Update
Click on requirements.txt
in the GitHub repository.
2. Click 'Edit this file'
Find the 'Edit this file' button in the top-right corner.
3. Make Your Changes
For example, update the matplotlib
version from 3.2.2
to 3.3
.
4. Preview Changes and Submit Your PR
Click the Preview changes tab to review your updates. At the bottom, select 'Create a new branch for this commit', give your branch a descriptive name like fix/matplotlib_version
, and click the green Propose changes button. Your PR is now submitted for review! 😃
PR Best Practices
To ensure your work is integrated smoothly, please:
- ✅ Make sure your PR is up-to-date with the
ultralytics/yolov5
master
branch. If your branch is behind, update it using the 'Update branch' button or by runninggit pull
andgit merge master
locally.
- ✅ Ensure all YOLO Continuous Integration (CI) checks are passing.
- ✅ Limit your changes to the minimum required for your bug fix or feature.
"It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." — Bruce Lee
🐛 Submitting a Bug Report
If you encounter an issue with YOLO, please submit a bug report!
To help us investigate, we need to be able to reproduce the problem. Follow these guidelines to provide what we need to get started:
When asking a question or reporting a bug, you'll get better help if you provide code that others can easily understand and use to reproduce the issue. This is known as a minimum reproducible example. Your code should be:
- ✅ Minimal – Use as little code as possible that still produces the issue
- ✅ Complete – Include all parts needed for someone else to reproduce the problem
- ✅ Reproducible – Test your code to ensure it actually reproduces the issue
Additionally, for Ultralytics to assist you, your code should be:
- ✅ Current – Ensure your code is up-to-date with the latest master branch. Use
git pull
orgit clone
to get the latest version and confirm your issue hasn't already been fixed. - ✅ Unmodified – The problem must be reproducible without any custom modifications to the repository. Ultralytics does not provide support for custom code ⚠️.
If your issue meets these criteria, please close your current issue and open a new one using the 🐛 Bug Report template, including your minimum reproducible example to help us diagnose your problem.
📄 License
By contributing, you agree that your contributions will be licensed under the AGPL-3.0 license.
For more details on contributing, check out the Ultralytics open-source contributing guide, and explore our Ultralytics blog for community highlights and best practices.
We welcome your contributions—thank you for helping make Ultralytics YOLO better! 🚀