From 3b41ab4342b4d16c10911de44b33dc08d0158be7 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Tue, 19 Sep 2023 13:14:34 +0200 Subject: [PATCH] Mark `go_sdk` module extension as `{os,arch}_dependent` This ensures that the lockfile maintains separate instances of this extension for each OS/arch combination. --- MODULE.bazel | 1 + go/private/extensions.bzl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/MODULE.bazel b/MODULE.bazel index 9b477670cf..d4aef07cee 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,6 +5,7 @@ module( repo_name = "io_bazel_rules_go", ) +bazel_dep(name = "bazel_features", version = "1.1.0") bazel_dep(name = "bazel_skylib", version = "1.2.0") bazel_dep(name = "platforms", version = "0.0.4") bazel_dep(name = "rules_proto", version = "4.0.0") diff --git a/go/private/extensions.bzl b/go/private/extensions.bzl index 54251df150..f1f4eb20e6 100644 --- a/go/private/extensions.bzl +++ b/go/private/extensions.bzl @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +load("@bazel_features//:features.bzl", "bazel_features") load("//go/private:sdk.bzl", "detect_host_platform", "go_download_sdk_rule", "go_host_sdk_rule", "go_multiple_toolchains") load("//go/private:repositories.bzl", "go_rules_dependencies") @@ -207,12 +208,21 @@ def _left_pad_zero(index, length): fail("index must be non-negative") return ("0" * length + str(index))[-length:] +go_sdk_extra_kwargs = { + # The choice of a host-compatible SDK is expressed in repository rule attribute values and + # depends on host OS and architecture. + "os_dependent": True, + "arch_dependent": True, +} if bazel_features.external_deps.module_extension_has_os_arch_dependent else {} +print(go_sdk_extra_kwargs) + go_sdk = module_extension( implementation = _go_sdk_impl, tag_classes = { "download": _download_tag, "host": _host_tag, }, + **go_sdk_extra_kwargs ) def _non_module_dependencies_impl(_ctx):