Я использую Bazel 19 и хочу перейти на последнюю версию 26. Похоже, многое изменилось, и трудно понять все изменения из примечаний к выпуску. Есть ли какие-либо документы/инструменты, которые могут помочь при переходе со старой версии на новую?
Самый простой подход, на мой взгляд, это пошаговое обновление с 19 до 20, с 20 до 21 и так далее.
Если вы используете базелиск, переключить версию легко:
USE_BAZEL_VERSION=0.19.0 bazelisk test //...
USE_BAZEL_VERSION=0.20.0 bazelisk test //...
Базелиск предоставляет флаг --strict
и --migrate
, который может помочь вам:
USE_BAZEL_VERSION=0.26.1 bazelisk --strict build //...
--strict
включает все несовместимые флаги и помогает выявить проблемы с обновлением.
Если --strict
не получается, попробуйте --migrate
. Он шаг за шагом устанавливает несовместимые флаги и дает вам отчет о несовместимых флагах, которые приводят к проблемам сборки:
USE_BAZEL_VERSION=0.26.1 bazelisk --migrate build //...
Взгляните также на документация об обратной совместимости:
When we introduce an incompatible change, we try to make it easier for Bazel users to update their code. We do this by means of migration windows and migration recipes.
Migration window is one or more release of Bazel during which a migration from old functionality to new functionality is possible, according to a migration recipe.
During the migration window, both the old functionality and the new functionality are available in the Bazel release. For every incompatible change, we provide a migration recipe that allows updating the user code (BUILD and .bzl files, as well as any Bazel usage in scripts, usage of Bazel API and so on) in such a way that it works simultaneously without any flags with old and new functionality.