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

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

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

Оглавление

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

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

Все участники должны придерживаться Кодекса поведения, чтобы обеспечить доброжелательную и инклюзивную среду для всех.

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

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

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

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

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

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

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

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

Подписание CLA

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

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

I have read the CLA Document and I sign the CLA

Подложки для документов в стиле Google

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

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

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

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

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument. Default value is 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 that demonstrates Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument. Default value is 4.

    Returns:
        True if successful, False otherwise.

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

Маленькие или более простые функции могут использовать однострочный docstring. Обрати внимание, что в docstring должно использоваться 3 двойные кавычки, и он должен быть полным предложением, начинающимся с заглавной буквы и заканчивающимся точкой.

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

CI-тесты GitHub Actions

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

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

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

Лицензия

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

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

Заключение

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

Мы с нетерпением ждем твоих идей в действии и ценим твое стремление развивать технологию обнаружения объектов. Давай продолжим расти и внедрять инновации вместе в этом захватывающем путешествии с открытым исходным кодом. Счастливого кодинга! 🚀🌟



Создано 2023-11-12, Обновлено 2024-03-08
Авторы: glenn-jocher (4)

Комментарии