Мы с радостью принимаем ваши патчи и вклад в 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
, чтобы перегенерировать такие файлы и отформатировать ваш код.
Как получить принятие ваших вкладов быстро и без проблем.
Создавайте маленькие 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 )