From f143fa268945d103a11fbd53641d8fa3a087f049 Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Wed, 26 Jul 2023 16:50:22 -0700 Subject: [PATCH] feat: expose a config_setting for allow_unresolved_symlinks Allows a principled solution for rules like rules_js that need to have starlark logic conditional on the value, without a breaking change in Bazel 7 as the flag has been renamed. Unblocks https://github.com/aspect-build/rules_js/issues/1102 --- private/version_repo.bzl | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/private/version_repo.bzl b/private/version_repo.bzl index 366ec3d..93252f3 100644 --- a/private/version_repo.bzl +++ b/private/version_repo.bzl @@ -1,5 +1,26 @@ +load(":parse.bzl", "parse_version") + def _version_repo_impl(rctx): - rctx.file("BUILD.bazel") + allow_unresolved_symlinks_flag = ( + "experimental_allow_unresolved_symlinks" + if parse_version(native.bazel_version) < parse_version("7.0.0") + else "allow_unresolved_symlinks" + ) + + rctx.file("BUILD.bazel", """\ +# @generated by version_repo.bzl + +# Allow rules to sense the value of this flag, which was renamed. +config_setting( + name = "allow_unresolved_symlinks", + values = {allow_unresolved_symlinks}, + visibility = ["//visibility:public"], +) +""".format( + allow_unresolved_symlinks = { + allow_unresolved_symlinks_flag: "true" + }, +)) rctx.file("version.bzl", "version = '" + native.bazel_version + "'") version_repo = repository_rule(_version_repo_impl)