1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-grpc-framework

Клонировать/Скачать
CONTRIBUTING.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 28.06.2025 08:23 b4cba57

Как внести свой вклад

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

Если вы новичок в GitHub, начните с чтения Руководство по Pull Request

Если вы ищете функции, над которыми можно работать, отфильтруйте список задач с меткой "disposition/help wanted". Обратите внимание, что некоторые из этих запросов на функции могли быть закрыты в прошлом из-за того, что они были помечены как устаревшие из-за отсутствия активности, но эти запросы на функции все еще актуальны.

Юридические требования

Чтобы защитить вас и нас, вам необходимо подписать Соглашение о лицензии участника.

Клонирование репозитория

Перед началом любой разработки вам потребуется локальная копия репозитория gRPC. Пожалуйста, следуйте инструкциям в Сборка gRPC C++: Клонирование репозитория.

Сборка и запуск тестов

Разные языки используют разные системы сборки. Чтобы скрыть сложность необходимости сборки с помощью многих разных систем сборки, предоставляется переносимый Python-скрипт, который унифицирует процесс сборки и тестирования gRPC на разных языках и платформах.

Чтобы собрать gRPC на выбранном языке (например, c++, csharp, php, python, ruby, ...) - Подготовьте вашу среду разработки в соответствии с инструкциями для конкретного языка в директории src/YOUR-LANGUAGE. - Инструкции для конкретного языка могут включать установку предварительных условий C/C++, перечисленных в Сборка gRPC C++: Предварительные условия. Это связано с тем, что реализации gRPC в этом репозитории используют внутреннюю библиотеку gRPC "core". - Запустите python tools/run_tests/run_tests.py -l YOUR_LANGUAGE --build_only - Чтобы также запустить все юнит-тесты после сборки python tools/run_tests/run_tests.py -l YOUR_LANGUAGE

Вы также можете запустить python tools/run_tests/run_tests.py --help, чтобы узнать о полезных командных флагах. Для более подробной информации см. tools/run_tests, где вы также найдете руководства по запуску различных других тестовых наборов (например, тесты совместимости, бенчмарки).

Сгенерированные файлы проекта и проверка

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

Запустите tools/distrib/sanitize.sh, чтобы перегенерировать такие файлы и отформатировать ваш код.

Руководство по Pull Request

Как получить принятие ваших вкладов быстро и без проблем.

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

  • Для спекулятивных изменений рассмотрите возможность открытия задачи и обсуждения ее сначала. Если вы предлагаете изменения в поведении или API, рассмотрите возможность начала с предложения gRFC.

  • Предоставьте хорошее описание PR как запись о том, что изменяется и почему это было сделано. Ссылайтесь на задачу GitHub, если она существует.

  • Не исправляйте стиль кода и форматирование, если вы не изменяете эту строку для решения проблемы. PRs с несущественными изменениями не будут объединены. Если вы хотите исправить форматирование или стиль, сделайте это в отдельном PR.

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

  • Если ваш PR не тривиальный, ожидайте, что будут комментарии рецензента, которые вам нужно будет учесть перед объединением. Мы ожидаем от вас разумной реактивности на эти комментарии, иначе PR будет закрыт через 2-3 недели бездействия.

  • Если у вас есть значительные вклады, рассмотрите возможность добавления записи в файл AUTHORS, указывающий держателя авторских прав для вклада (самих себя, если вы подписываете индивидуальное CLA, или вашу компанию для корпоративных CLA) в том же PR, что и ваш вклад. Это нужно сделать только один раз для каждой компании или индивидуума. Пожалуйста, поддерживайте этот файл в алфавитном порядке.

  • Поддерживайте чистую историю коммитов и используйте осмысленные сообщения коммитов. PRs с беспорядочной историей коммитов трудно проверить и не будут объединены. Используйте rebase -i upstream/master, чтобы отредактировать историю коммитов и/или привести последние изменения из master (но избегайте перебазирования посередине проверки кода).

  • Поддерживайте ваш PR актуальным с upstream/master (если есть конфликты слияния, мы не сможем объединить ваше изменение).

  • Если вы перегенерируете проекты с помощью tools/buildgen/generate_projects.sh, изменения в сгенерированных файлах должны быть отдельным коммитом с сообщением regenerate projects. Смешивание изменений в сгенерированных и ручных файлах делает ваш PR трудным для проверки. Обратите внимание, что запуск этого скрипта требует установки Python-пакетов pyyaml и mako (обычно устанавливаемых с помощью pip) а также недавней версии go.

  • Все тесты должны проходить перед тем, как ваше изменение может быть объединено. Мы рекомендуем вам запускать тесты локально перед созданием вашего PR, чтобы рано обнаружить проблемы (см. [tools/run_tests]). В конечном итоге зеленый сигнал будет предоставлен нашей тестовой инфраструктурой. Рецензент поможет вам, если есть ошибки тестов, которые кажутся не связанными с вашим изменением.

  • Исключения из правил могут быть сделаны при наличии убедительной причины для этого.

Получение доступа к коммитам

Мы предоставляем доступ к коммитам участникам на основе следующих критериев: * Постоянный вклад в проект gRPC. * Глубокое понимание областей, в которые был сделан вклад, и хорошее рассмотрение различных компромиссов между надежностью, удобством использования и производительностью. * Вклады демонстрируют, что получение доступа к коммитам значительно уменьшит трение для участников или других.

Кроме отправки PRs, участник с доступом к коммитам может: * Проверять PRs и объединять их после прохождения других проверок и критериев. * Классифицировать ошибки и PRs и назначать соответствующие метки и рецензентов.

Получение доступа к коммитам без кодовых вкладов

Организация gRPC состоит из нескольких репозиториев, и доступ к коммитам обычно ограничивается одним или несколькими из этих репозиториев. Некоторые репозитории, такие как grpc.github.io, не содержат кода, но те же принципы постоянного высококачественного вклада с хорошим пониманием основ применяются.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-grpc-framework.git
git@api.gitlife.ru:oschina-mirror/mirrors-grpc-framework.git
oschina-mirror
mirrors-grpc-framework
mirrors-grpc-framework
master