Contributing to Ultralytics Open-Source YOLO Repositories
First of all, thank you for your interest in contributing to Ultralytics open-source YOLO repositories! Your contributions will help improve the project and benefit the community. This document provides guidelines and best practices for contributing to Ultralytics YOLO repositories.
Table of Contents
- Code of Conduct
- Pull Requests
- Bug Reports
- License and Copyright
Code of Conduct
All contributors are expected to adhere to the Code of Conduct to ensure a welcoming and inclusive environment for everyone.
We welcome contributions in the form of pull requests. To make the review process smoother, please follow these guidelines:
Fork the repository: Fork the Ultralytics YOLO repository to your own GitHub account.
Create a branch: Create a new branch in your forked repository with a descriptive name for your changes.
Make your changes: Make the changes you want to contribute. Ensure that your changes follow the coding style of the project and do not introduce new errors or warnings.
Test your changes: Test your changes locally to ensure that they work as expected and do not introduce new issues.
Commit your changes: Commit your changes with a descriptive commit message. Make sure to include any relevant issue numbers in your commit message.
Create a pull request: Create a pull request from your forked repository to the main Ultralytics YOLO repository. In the pull request description, provide a clear explanation of your changes and how they improve the project.
Before we can accept your pull request, you need to sign a Contributor License Agreement (CLA). This is a legal document stating that you agree to the terms of contributing to the Ultralytics YOLO repositories. The CLA ensures that your contributions are properly licensed and that the project can continue to be distributed under the AGPL-3.0 license.
To sign the CLA, follow the instructions provided by the CLA bot after you submit your PR.
When adding new functions or classes, please include a Google-style docstring to provide clear and concise documentation for other developers. This will help ensure that your contributions are easy to understand and maintain.
Example Google-style docstring:
def example_function(arg1: int, arg2: str) -> bool: """Example function that demonstrates Google-style docstrings. Args: arg1 (int): The first argument. arg2 (str): The second argument. Returns: bool: True if successful, False otherwise. Raises: ValueError: If `arg1` is negative or `arg2` is empty. """ if arg1 < 0 or not arg2: raise ValueError("Invalid input values") return True
GitHub Actions CI Tests
Before your pull request can be merged, all GitHub Actions Continuous Integration (CI) tests must pass. These tests include linting, unit tests, and other checks to ensure that your changes meet the quality standards of the project. Make sure to review the output of the GitHub Actions and fix any issues
Created 2023-04-29, Updated 2023-05-09
Authors: Glenn Jocher (3)