QR code

We Don't Merge into a Broken Master Branch

  • Translated by to

Что, по вашему мнению, является наиболее типичной причиной задержек в обзоре запросов на вытягивание? Исследование в Google подтверждает, что это размер — чем больше изменений, тем медленнее обзор. Другое исследование показывает, что это эмоциональный тон — гнев и доминирование, выраженные в комментариях, связаны с меньшей вероятностью объединения запроса на вытягивание. Более новое исследование показывает, что это репутация автора: мы объединяем запросы на вытягивание быстрее, если знаем автора. Все вышеперечисленное верно. В наших проектах, однако, то, что часто замедляет обзор запросов на вытягивание, - это сообщение: “Сбои CI не связаны с моими изменениями!”

Вот как это происходит: Вы создаёте форк репозитория. Вы вносите изменения для исправления ошибки или внедрения новой функции. Вы фиксируете их и отправляете. Вы отправляете запрос на вытягивание. Вы понимаете, что некоторые задания CI на GitHub завершаются неудачно. Вы читаете логи. Вы не видите никакой связи между сообщениями об ошибках и вашими изменениями. Вы оставляете комментарий: “Сбои CI не связаны с моими изменениями!” Вы ожидаете, что мы объединим ваш запрос на вытягивание.

Мы их не сливаем. Мы просим вас отступить—до того момента, когда вы начали вносить изменения. Пока не делайте их. Вместо этого, проверьте статус сборки репозитория. Обратите внимание на все задачи CI, а не только на ту, которая запускает Maven. Все они должны быть зелеными. Только когда все задачи зеленые, можно начинать редактировать код. Если какая-либо задача красная, сообщите об ошибке и подождите, пока команда все исправит.

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

Что если команда занимает слишком много времени, чтобы исправить это? Что если сборка так и не становится зеленой? Все равно—вы ждете. Вы не отправляете запрос на слияние в репозиторий со сломанной сборкой.

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

Translated by ChatGPT gpt-3.5-turbo/42 on 2025-04-21 at 08:32

sixnines availability badge   GitHub stars