Вводить

Недавно с энтузиазмом друзей сообщества Hertz я попытался отправить запрос на включение в Hertz (высокопроизводительная платформа Golang Http с открытым исходным кодом) поддержать Hertz в использовании Consul для регистрации и обнаружения сервисов. Здесь я вкратце опишу весь процесс от PR до слияния, что удобно для себя и других нуждающихся друзей.

Ссылка на пиар: feat: Поддержите Hertz в использовании Consul для обнаружения и регистрации сервисов


Шаг 1: Найдите интересующую вас библиотеку с открытым исходным кодом

Найдите интересующую вас библиотеку с открытым исходным кодом


Поиск на Гитхабе

Прежде всего, мы можем выбрать некоторые библиотеки с открытым исходным кодом, которые нас интересуют, такие как Герц упомянутое выше.


Посмотреть проблемы

Затем, взглянув на список проблем, мы видим, что есть 22 проблемы, ожидающие решения 👀.

В настоящее время есть еще много интересных вопросов, которые могут вас заинтересовать.

просмотреть выпуск

Сообщество Hertz обычно время от времени выпускает некоторые задачи для новичков, поэтому мы можем сначала начать с простых задач.

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

список проблем

Проблема:

Глядя на детали этой проблемы, мы видим, что она включает в себя следующие части

  1. Описание и цель выпуска
  2. Где репозиторий кода?
  3. Реферальный API
  4. Так далее

описание проблемы


Подать заявку на вопросы

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

Подать заявку на вопросы

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


Шаг 2: Введите код

Напишите код


Разветвить целевой репозиторий

Разветвить целевой репозиторий
Сначала нам нужно разветвить репозиторий, который вы хотите внести в свой собственный репозиторий, разветвляя, мы можем кодировать и не влиять на исходный репозиторий.


Клонировать целевой репозиторий

Теперь наш репозиторий содержит репозиторий, который мы разветвили, нам нужно клонировать его на нашу локальную машину.

Клонировать целевой репозиторий

git clone [YOUR HTTPS ADDRESS]
Войти в полноэкранный режим

Выйти из полноэкранного режима


Создать новую ветку

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

git checkout -b [BRANCH NAME]
Войти в полноэкранный режим

Выйти из полноэкранного режима


Разработка и отправка удаленных веток

Обычно потребности разработки включают код реализации, модульный тест, README и т. д.
После завершения некоторой разработки мы можем запустить git trifecta.

  • статус git
  • git добавить [YOUR FILE]
  • git совершить -м [YOUR COMMIT MESSAGE]
  • git push происхождение [YOUR BRANCH]
    • Перед выполнением git push вы можете использовать git remote, чтобы увидеть имя вашего удаленного репозитория.

git удаленный


Модульный тест в сочетании с действием github

Как правило, библиотеки с открытым исходным кодом будут объединены с github actionfor конвейера модульного тестирования, каталог репозитория будет иметь файл .github/workflows/xxx.yml и некоторые другие файлы. С помощью этих файлов мы можем выполнить наш модульный тест на этапах pr, push и других.

Поэтому нам нужно обновить эти файлы, чтобы убедиться, что мы можем пройти собственный модульный тест.


Создание запроса на слияние

После того, как отправка будет завершена, мы увидим следующее приглашение в нашем репозитории форка. Сравните и запрос на получение.

Создание запроса на слияние

Далее мы можем заполнить информацию о PR, обычно нам нужно описать следующую информацию

  1. Что это за пиар? (функция, исправление и т. д.)
  2. Что дает этот пиар?
  3. Решает ли этот PR определенные вопросы?

Откройте запрос на вытягивание

После заполнения информации о PR, поздравляем, вы можете создать свой собственный PR! 🥰🥰


Синхронизировать изменения с исходным репозиторием

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

Затем нам нужно объединить изменения в нашу собственную ветку разработки.

Вот несколько шагов, которые вы можете предпринять:

  1. Добавить исходный репозиторий как вышестоящий репозиторий
git remote add upstream [HTTPS]
Войти в полноэкранный режим

Выйти из полноэкранного режима

  1. Получить изменения из исходного репозитория
git fetch upstream
Войти в полноэкранный режим

Выйти из полноэкранного режима

  1. Объединить изменения
git merge upstream/main
Войти в полноэкранный режим

Выйти из полноэкранного режима

  1. Разрешите конфликты и отправьте в свою собственную ветку разработки ## Шаг 3: Исправьте предложение, сделанное первоначальным сопровождающим репозитория. После отправки PR нам нужно убедиться, что все модульные тесты пройдены. В то же время от сопровождающего исходного репозитория также будут некоторые предложения, которые нам нужно решить.
  2. модульный тест должен быть завершен.
  3. Док нуждается в добавках.
  4. Есть проблема с реализацией кода.
  5. И т.д. Например: README нужно добавить более подробно

Предложение, сделанное первоначальным сопровождающим репозитория


Шаг 4: Дождитесь слияния PR

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

Дождитесь слияния PR

Когда ваш PR будет официально принят, будут следующие советы.

Запрос на слияние успешно объединен

Наконец, поздравляю с первым шагом к открытому исходному коду! ❤️


Ссылка