Несколько версий внешнего репо в рабочей области
Поддерживает ли Bazel объединение нескольких версий внешней зависимости в одной рабочей области?
Я бы предположил, что нет (аналогично cmake, 1 версия на проект/рабочее пространство), но все же стоит спросить?
вариант использования, если в большом репо один двоичный файл может иметь зависимость от версии A, а другой двоичный файл - от версии B...
1 ответ
В общем, Bazel не имеет понятия о встроенных версиях, почти все является просто целью. Например, у вас может быть два правила репозитория в WORKSPACE, которые указывают на одно и то же в разных версиях, и Bazel просто рассматривает их как любые другие репозитории. Однако разработчик должен использовать правильную версию с правильными целями в файлах BUILD и решать проблемы с зависимостями алмазов. По ссылке в вашем комментарии (https://bazel.build/docs/external#shadowing-dependencies) показаны некоторые механизмы работы с таргетами и репозиториями, которые представляют одно и то же в разных версиях.
Появится новая система управления зависимостями под названием Bzlmod, в которую встроено управление версиями: https://bazel.build/build/bzlmod .