Политика выпуска

Bazel поддерживает модель выпуска с долгосрочной поддержкой (LTS) , при которой основная версия выпускается каждые девять месяцев, а вспомогательные версии выпускаются ежемесячно. На этой странице описывается политика выпуска Bazel, в том числе кандидаты на выпуск, сроки, объявления и тестирование.

Выпуски Bazel можно найти на GitHub .

Кандидаты на выпуск

Кандидат на выпуск новой версии Bazel обычно создается в начале каждого месяца. Работа отслеживается с помощью ошибки выпуска на GitHub , указывающей целевую дату выпуска, и назначается текущему диспетчеру выпусков. Кандидаты на выпуск должны пройти все модульные тесты Bazel и не показывать нежелательной регрессии в проектах, протестированных на Buildkite .

Кандидаты на релиз объявляются на bazel-discuss . В течение следующих дней команда Bazel отслеживает отчеты об ошибках сообщества на предмет каких-либо регрессий в кандидатах.

Освобождение

Если регрессий не обнаружено, кандидат официально освобождается через неделю. Однако регрессии могут задержать выпуск версии-кандидата. Если обнаружены регрессии, команда Bazel применяет соответствующие «выборки» к релизу-кандидату, чтобы исправить эти регрессии. Если в течение двух рабочих дней подряд, начиная с недели, прошедшей с момента появления первого кандидата на выпуск, дальнейших регрессий не обнаружено, кандидат освобождается.

Новые функции не включаются в релиз-кандидат после его вырезания. Кроме того, если новая функция содержит ошибки, она может быть отменена из версии-кандидата. В версии-кандидате после ее вырезания исправляются только те ошибки, которые могут сильно повлиять на сборку релиза или нарушить ее.

Релиз выпускается только в тот день, когда следующий день является рабочим днем.

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

Тестирование

Выполняется ночная сборка всех проектов, запущенных на ci.bazel.build , с использованием двоичных файлов Bazel, созданных в начале, и двоичных файлов выпуска. Уведомления о проектах, на которые повлияет критическое изменение.

Когда выпускается релиз-кандидат, другие проекты Google, такие как TensorFlow , тестируются на полном наборе тестов с использованием бинарных файлов релиз-кандидата. Если у вас есть важный проект с использованием Bazel, мы рекомендуем вам установить автоматизированный процесс тестирования, который отслеживает текущую версию-кандидата и сообщает о любых регрессиях.