Особенности копибары

Цель этого документа — описать странности, с которыми вы можете столкнуться при внесении вклада из-за инструмента, который управляет копированием исходного кода туда и обратно из внутреннего репозитория Google. Этот инструмент называется Copybara .

Внутренний источник истины

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

Статус слияния PR и несоответствия в различиях

Поскольку источник истины является внутренним, PR не объединяются напрямую, они импортируются во внутренний репозиторий Google, где проходят дополнительное тестирование, а затем эти внутренние изменения передаются и приписываются автору PR. Из-за преобразований, которые применяет Copybara, нет никакой гарантии, что разница будет идентична (например, Copybara применяет форматирование при импорте).

По этой причине Copybara не пометит PR как объединенный, а закроет PR и отдельно применит фиксацию, которая должна очень точно соответствовать PR.

Зависимость от TSL по копии

В текущей реализации, чтобы предотвратить любые временные нарушенные фиксации, XLA зависит от TSL не за счет загрузки копии с помощью http_archive Bazel, а за счет того, что Copybara копирует TSL в каталог XLA third_party .