До этого коммита (впервые включенного в 0.17.0) я мог использовать genrule
для сбора метаданных git из внешних репозиториев git.
По сути это выглядело какthis:
genrule(
name = "git-describe-foo",
# We can't dep all of @foo, so we pick a file
srcs = ["@foo//:SOME_FILE"],
outs = ["my_version"],
# Do a git describe and strip off the leading "v"
cmd = "git -C $$(dirname $(location @foo//:SOME_FILE)) describe --tags | cut -c 2- > $@",
# I don't know if this is strictly necessary
stamp = True,
# This is required or bazel will sandbox us with just SOME_FILE
local = True,
output_to_bindir = True,
)
Однако это больше не работает, поскольку каталог .git/
был удален.Я понимаю, что это было сделано для улучшения воспроизводимости, но git SHA (и теоретически история git) на самом деле не должна влиять на воспроизводимость сборок.
Мой оригинальный подход состоял в том, чтобы попытаться передать git SHA и gitметаданные, которые мне как-то понадобились через --workspace_status_command
, но тогда мне также пришлось бы использовать этот мерзавец SHA для клонирования git_repository
, что я не считаю возможным.
Есть ли другой способ собратьэта информация?