Перейти к содержимому

Вклад в проекты с открытым исходным кодом Ultralytics

Добро пожаловать! Мы очень рады, что ты решил внести свой вклад в наши Ultralytics проекты с открытым исходным кодом. Твое участие не только помогает повысить качество наших репозиториев, но и приносит пользу всему сообществу. Это руководство содержит четкие рекомендации и лучшие практики, которые помогут тебе начать работу.

Ultralytics Соавторы открытого кода

Оглавление

  1. Кодекс поведения
  2. Вклад через Pull Requests
  3. Сообщаем об ошибках
  4. Лицензия
  5. Заключение
  6. ВОПРОСЫ И ОТВЕТЫ

Кодекс поведения

Чтобы обеспечить доброжелательную и инклюзивную среду для всех, все участники должны придерживаться нашего Кодекса поведения. Уважение, доброта и профессионализм лежат в основе нашего сообщества.

Вклад через Pull Requests

Мы очень ценим вклад в виде запросов на исправление. Чтобы сделать процесс рассмотрения как можно более гладким, пожалуйста, следуй этим шагам:

  1. Форкни репозиторий: Начни с форка репозитория Ultralytics YOLO на свой аккаунт GitHub.

  2. Создай ветку: Создай новую ветку в своем форкнутом репозитории с понятным, описательным названием, отражающим твои изменения.

  3. Внеси свои изменения: Убедись, что твой код придерживается стилистических рекомендаций проекта и не вносит никаких новых ошибок или предупреждений.

  4. Протестируй свои изменения: Перед отправкой протестируй свои изменения локально, чтобы убедиться, что они работают так, как ожидалось, и не вызывают никаких новых проблем.

  5. Зафиксируй свои изменения: Зафиксируй свои изменения с помощью краткого и описательного сообщения о фиксации. Если твои изменения касаются конкретной проблемы, включи номер проблемы в сообщение о фиксации.

  6. Создай запрос на притяжение: Отправь pull request из своего форкнутого репозитория в основной репозиторий Ultralytics YOLO . Предоставь четкое и подробное объяснение своих изменений и того, как они улучшают проект.

Подписание CLA

Прежде чем мы сможем объединить твой pull request, ты должен подписать наше лицензионное соглашение с контрибьюторами (CLA). Это юридическое соглашение гарантирует, что твой вклад правильно лицензирован, что позволяет проекту продолжать распространяться под лицензией AGPL-3.0 .

После отправки твоего запроса на вытягивание бот CLA проведет тебя через процесс подписания. Чтобы подписать CLA, просто добавь комментарий в свой PR, указав его:

I have read the CLA Document and I sign the CLA

Google-Стиль Docstrings

Добавляя новые функции или классы, пожалуйста, включай в них Google-документацию. Эти докстринги предоставляют четкую, стандартизированную документацию, которая поможет другим разработчикам понять и поддерживать твой код.

Пример докстрингов

Этот пример иллюстрирует документооборот в стиле Google. Убедись, что и входные, и выходные данные types всегда заключаются в круглые скобки, например, (bool).

def example_function(arg1, arg2=4):
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument, with a default value of 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Этот пример включает в себя как документальную строку в стиле Google, так и подсказки типов для аргументов и возвратов, хотя использование любого из этих вариантов по отдельности также допустимо.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument, with a default value of 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Для небольших или более простых функций может быть достаточно однострочной docstring. Документ должен содержать три двойные кавычки, быть полным предложением, начинаться с заглавной буквы и заканчиваться точкой.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function with a single-line docstring."""
    return arg1 == arg2

CI-тесты GitHub Actions

Все pull request'ы должны пройти тесты GitHub Actions Continuous Integration (CI), прежде чем они будут слиты. Эти тесты включают в себя линтинг, юнит-тесты и другие проверки, чтобы убедиться, что твои изменения соответствуют стандартам качества проекта. Просмотри результаты CI и реши все возникающие проблемы.

Сообщаем об ошибках

Мы очень ценим сообщения об ошибках, так как они помогают нам поддерживать качество наших проектов. Сообщая об ошибке, пожалуйста, предоставь минимальный воспроизводимый пример -простой и понятный пример кода, который последовательно воспроизводит проблему. Это позволит нам быстро выявить и решить проблему.

Лицензия

Ultralytics использует для своих репозиториев GNU Affero General Public License v3.0 (AGPL-3.0 ). Эта лицензия способствует открытости, прозрачности и совместному совершенствованию в разработке программного обеспечения. Она гарантирует, что все пользователи могут свободно использовать, изменять и делиться программным обеспечением, способствуя развитию сильного сообщества сотрудничества и инноваций.

Мы рекомендуем всем участникам ознакомиться с условиями лицензии AGPL-3.0 , чтобы эффективно и этично вносить свой вклад в сообщество Ultralytics с открытым исходным кодом.

Заключение

Спасибо за интерес к участию в Ultralytics проекты с открытым исходным кодом YOLO . Твое участие очень важно для формирования будущего нашего программного обеспечения и создания энергичного сообщества, основанного на инновациях и сотрудничестве. Неважно, улучшаешь ли ты код, сообщаешь об ошибках или предлагаешь новые возможности, твой вклад неоценим.

We're excited to see your ideas come to life and appreciate your commitment to advancing object detection technology. Together, let's continue to grow and innovate in this exciting open-source journey. Happy coding! 🚀🌟

ВОПРОСЫ И ОТВЕТЫ

Почему я должен внести свой вклад в репозитории открытого кода Ultralytics YOLO ?

Вклад в репозитории Ultralytics YOLO с открытым исходным кодом улучшает программное обеспечение, делая его более надежным и многофункциональным для всего сообщества. Вклад может включать в себя улучшение кода, исправление ошибок, улучшение документации и внедрение новых функций. Кроме того, участие в проекте позволяет тебе сотрудничать с другими опытными разработчиками и экспертами в данной области, повышая твои собственные навыки и репутацию. О том, как начать работу, читай в разделе "Внесение вклада через Pull Requests".

Как подписать лицензионное соглашение с разработчиками (CLA) для Ultralytics YOLO ?

Чтобы подписать лицензионное соглашение с контрибьютором (CLA), следуй инструкциям, предоставленным CLA-ботом после отправки твоего pull request. Этот процесс гарантирует, что твой вклад будет должным образом лицензирован в соответствии с лицензией AGPL-3.0 , поддерживая юридическую целостность проекта с открытым исходным кодом. Добавь в свой pull request комментарий, в котором будет указано:

I have read the CLA Document and I sign the CLA.

Подробнее об этом читай в разделе " Подписание CLA ".

Что такое Google-style docstrings, и почему они требуются для Ultralytics YOLO вкладов?

Google-стиль docstrings обеспечивает четкую, лаконичную документацию для функций и классов, улучшая читаемость и сопровождаемость кода. В этих документах описывается назначение функции, ее аргументы и возвращаемые значения с соблюдением определенных правил форматирования. При внесении вклада в Ultralytics YOLO , следуя Google-стилю docstrings, ты гарантируешь, что твои дополнения будут хорошо документированы и легко понятны. Примеры и рекомендации можно найти в разделе Google-Style Docstrings.

Как я могу убедиться, что мои изменения прошли тесты GitHub Actions CI?

Прежде чем твой pull request будет слит, он должен пройти все тесты GitHub Actions Continuous Integration (CI). Эти тесты включают в себя линтинг, юнит-тесты и другие проверки, чтобы убедиться, что код соответствует

стандарты качества проекта. Просмотри результаты CI и устрани все проблемы. Подробную информацию о процессе CI и советы по устранению неполадок ты найдешь в разделе " Тесты CI на GitHub Actions".

Как сообщить об ошибке в репозиториях Ultralytics YOLO ?

Чтобы сообщить об ошибке, вместе с сообщением о ней предоставь четкий и ясный Минимальный воспроизводимый пример. Это поможет разработчикам быстро определить и устранить проблему. Убедись, что твой пример минимален, но достаточен для воспроизведения проблемы. Более подробно о том, как сообщать об ошибках, читай в разделе " Сообщение об ошибках ".

📅 Created 11 months ago ✏️ Updated 28 days ago

Комментарии