Как создать запрос на включение изменений в Homebrew
Следующие команды используются участниками Homebrew, чтобы создать форк Git-репозитория Homebrew на GitHub, создать новую ветку и открыть запрос на включение изменений («PR») из этой ветки.
Тип изменений, которые вы хотите внести, определяет, в какой из основных репозиториев Homebrew нужно отправить запрос на включение изменений. Если вы хотите внести изменения в основной код Homebrew (реализацию brew), откройте запрос на включение изменений в Homebrew/brew. Если вы хотите внести изменения в формулу, откройте запрос на включение изменений в tap homebrew/core, а если изменения касаются кэска — в tap homebrew/cask или другой официальный tap, в зависимости от типа формулы.
Отправка новой версии существующей формулы
- Используйте
brew bump-formula-pr, чтобы выполнить всё одной командой (то есть создать форк, зафиксировать изменения и отправить их). Запуститеbrew bump-formula-pr --help, чтобы узнать больше.
Отправка новой версии существующего кэска
- Используйте
brew bump-cask-pr, чтобы выполнить всё одной командой (то есть создать форк, зафиксировать изменения и отправить их). Запуститеbrew bump-cask-pr --help, чтобы узнать больше.
Настройка собственного форка репозитория Homebrew
Запрос на включение изменений в основной код brew
-
Создайте форк репозитория Homebrew/brew на GitHub.
- Будет создан личный удалённый репозиторий, в который вы сможете отправлять изменения. Это необходимо, поскольку отправлять изменения в основные репозитории могут только сопровождающие Homebrew.
-
Перейдите в каталог, содержащий вашу установку Homebrew:
cd "$(brew --repository)"
-
Добавьте свой форк, в который можно отправлять изменения, как новый удалённый репозиторий:
git remote add <YOUR_USERNAME> https://github.com/<YOUR_USERNAME>/brew.git
-
<YOUR_USERNAME>— это ваше имя пользователя на GitHub, а не имя пользователя на локальном компьютере.
-
Запрос на включение изменений, связанных с формулами
Прежде чем создавать новую формулу, прочитайте Допустимые формулы.
-
Создайте форк репозитория Homebrew/homebrew-core на GitHub.
- Будет создан личный удалённый репозиторий, в который вы сможете отправлять изменения. Это необходимо, поскольку отправлять изменения в основные репозитории могут только сопровождающие Homebrew.
-
Добавьте tap (загрузите локальную копию) репозитория основных формул Homebrew:
brew tap --force homebrew/core
-
Перейдите в каталог, содержащий формулы Homebrew:
cd "$(brew --repository homebrew/core)"
-
Добавьте свой форк, в который можно отправлять изменения, как новый удалённый репозиторий:
git remote add <YOUR_USERNAME> https://github.com/<YOUR_USERNAME>/homebrew-core.git
-
<YOUR_USERNAME>— это ваше имя пользователя на GitHub, а не имя пользователя на локальном компьютере.
-
Запрос на включение изменений, связанных с кэсками
Прежде чем создавать новый кэск, прочитайте Допустимые кэски.
-
Создайте форк репозитория Homebrew/homebrew-cask на GitHub.
- Будет создан личный удалённый репозиторий, в который вы сможете отправлять изменения. Это необходимо, поскольку отправлять изменения в основные репозитории могут только сопровождающие Homebrew.
-
Добавьте tap (загрузите локальную копию) репозитория основных кэсков Homebrew:
brew tap --force homebrew/cask
-
Перейдите в каталог, содержащий кэски Homebrew:
cd "$(brew --repository homebrew/cask)"
-
Добавьте свой форк, в который можно отправлять изменения, как новый удалённый репозиторий:
git remote add <YOUR_USERNAME> https://github.com/<YOUR_USERNAME>/homebrew-cask.git
-
<YOUR_USERNAME>— это ваше имя пользователя на GitHub, а не имя пользователя на локальном компьютере.
-
Создание запроса на включение изменений из новой ветки
Чтобы внести изменения в новую ветку и отправить их на проверку, создайте запрос на включение изменений на GitHub, выполнив следующие шаги:
-
Переключитесь на ветку
main:git checkout main
-
Получите последние изменения ветки
main:brew update
-
Создайте новую ветку на основе последней версии ветки по умолчанию:
git checkout -b <YOUR_BRANCH_NAME> origin/HEAD
- Внесите изменения. Для формул и кэсков используйте
brew editили любой удобный вам текстовый редактор, руководствуясь рекомендациями из Руководства по формулам или Руководства по кэскам.- Если в формуле есть блок
bottle do, не удаляйте и не изменяйте его: мы обновим его при включении вашего PR.
- Если в формуле есть блок
-
Проверьте внесённые изменения, выполнив следующие команды, и убедитесь, что все они завершаются без ошибок.
brew lgtm --onlineзапускает соответствующие онлайн-проверкиbrew auditдля изменённых и новых формул и кэсков, а также запускаетbrew testдля формул, если установлена последняя версия.Для формул:
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <FORMULA> brew lgtm --online
Для кэсков:
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --cask <CASK> brew uninstall --cask <CASK> brew lgtm --online
-
Создайте отдельный коммит для каждой изменённой формулы с помощью
git addиgit commit. Коммиты для каждой формулы необходимо объединить.- Обратите внимание: для простых обновлений версий требуется следующий формат сообщения коммита: «
<FORMULA_NAME> <NEW_VERSION>», например «source-highlight 3.1.8».
- Обратите внимание: для простых обновлений версий требуется следующий формат сообщения коммита: «
-
Отправьте ветку с новыми коммитами в свой форк:
git push --set-upstream <YOUR_USERNAME> <YOUR_BRANCH_NAME>
- Перейдите в соответствующий репозиторий (например, https://github.com/Homebrew/brew, https://github.com/Homebrew/homebrew-core и т. д.) и создайте запрос на включение изменений, чтобы запросить проверку и включение коммитов из отправленной вами ветки. Объясните, зачем нужны изменения, а если исправляете ошибку — как её воспроизвести. Убедитесь, что выполнили все пункты контрольного списка, появившегося в вашем новом PR.
- Дождитесь отзыва или включения изменений сопровождающими Homebrew. Обычно мы отвечаем на все PR в течение нескольких дней, но в зависимости от загруженности сопровождающих ожидание может занять до недели.
Спасибо!
Использование «искусственного интеллекта» и больших языковых моделей (ИИ/БЯМ)
Вы можете создавать задачи и запросы на включение изменений с помощью ИИ/БЯМ при соблюдении следующих требований (принципы, лежащие в их основе, описаны в документе Ответственное использование ИИ):
- В первоначальном описании задачи или запроса на включение изменений необходимо указать, что вы использовали ИИ/БЯМ, а также назвать использованный инструмент, модель и т. д.
- Прежде чем просить кого-либо из команды Homebrew проверить результат, необходимо проверить весь код, текст и другой контент, созданный ИИ/БЯМ.
- Вы должны быть готовы ответить на все замечания по проверке запроса на включение изменений, вручную, если ИИ/БЯМ не может сделать это за вас.
- Если вы понимаете, что не хотите или не можете выполнить перечисленные выше требования, закройте свою задачу или запрос на включение изменений.
Дальнейшие действия
Чтобы правильно реагировать на отзывы:
- Попросите разъяснить всё, что вам непонятно, и помочь со всем, что вы не знаете, как сделать.
- Оставьте комментарий к своему запросу на включение изменений, если внесли все запрошенные изменения или предоставили всю запрошенную информацию, но запрос не включили в течение недели. Если вы зашли в тупик и вам нужна помощь, также оставьте комментарий к своему запросу. Метка
needs responseна PR означает, что сопровождающие Homebrew ждут вашего ответа на предыдущие комментарии. - Обсуждайте изменения в запросе на включение изменений, если только вас не попросили об ином (то есть не пишите сопровождающим личные письма).
- Не продолжайте обсуждение в закрытых запросах на включение изменений.
- Не спорьте с сопровождающими Homebrew. Вы можете быть не согласны, но, если они не изменят своего мнения, выполните их просьбу. В конечном счёте именно они решают, что войдёт в Homebrew, поскольку им предстоит поддерживать все внесённые изменения.
Чтобы внести изменения с учётом отзывов:
-
Снова переключитесь на свою ветку:
git checkout <YOUR_BRANCH_NAME>
- Внесите все запрошенные изменения и зафиксируйте их с помощью
git addиgit commit. -
Объедините новые коммиты в один коммит для каждой формулы:
git rebase --interactive origin/HEAD
Если вы работаете над PR для одной формулы,
git commit --amend— удобный способ объединять коммиты по мере работы. -
Отправьте изменения в ветку удалённого форка и обновите запрос на включение изменений:
git push --force
После того как вы учтёте все замечания, если мы захотим включить изменения (а мы включаем большинство изменений), мы добавим их в Homebrew. Обратите внимание: из-за нашего способа объединения изменений статус PR может отображаться как «Closed» («Закрыт»), а не «Merged» («Включён»). Не беспокойтесь: ваше авторство будет указано в итоговом коммите.
Отлично, теперь вы участник проекта Homebrew!
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request