From 0bcd465a55f50ea722fd8878d3ec0e126d1cf22d Mon Sep 17 00:00:00 2001 From: Daniel Wagner-Hall Date: Thu, 11 Apr 2024 13:56:10 +0100 Subject: [PATCH] Fix presubmit for BCR + minimum bazel * Remove lockfile before running, it may be incompatible * Gate version-requiring attrs --- .bazelci/presubmit.yml | 2 ++ .bcr/presubmit.yml | 6 ++++++ rust/extensions.bzl | 14 +++++++++----- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 464c77b650..ccea830fe6 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -675,6 +675,8 @@ tasks: platform: ubuntu2004 working_directory: examples/bzlmod/hello_world test_flags: *bzlmod_flags + shell_commands: + - "rm MODULE.bazel.lock" run_targets: - "//third-party:vendor" - "@rules_rust//tools/rust_analyzer:gen_rust_project" diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml index 7030f6ee72..81b8a77712 100644 --- a/.bcr/presubmit.yml +++ b/.bcr/presubmit.yml @@ -9,6 +9,9 @@ bcr_test_module: name: "Run test module" platform: ${{ platform }} bazel: ${{ bazel }} + # Remove the lockfile because we generate on Bazel 7, but test on Bazel 6 which may not be able to parse a future-generated lockfile. + shell_commands: + - "rm MODULE.bazel.lock" run_targets: - "//third-party:vendor" - "@rules_rust//tools/rust_analyzer:gen_rust_project" @@ -25,6 +28,9 @@ bcr_test_module_windows: name: "Run test module" platform: windows bazel: ${{ bazel }} + # Remove the lockfile because we generate on Bazel 7, but test on Bazel 6 which may not be able to parse a future-generated lockfile. + shell_commands: + - "rm MODULE.bazel.lock" run_targets: - "//third-party:vendor" build_targets: diff --git a/rust/extensions.bzl b/rust/extensions.bzl index cd68c59cc6..eb8ea831b5 100644 --- a/rust/extensions.bzl +++ b/rust/extensions.bzl @@ -171,16 +171,20 @@ def _rust_host_tools_impl(module_ctx): **host_tools ) + metadata_kwargs = {} if bazel_features.external_deps.extension_metadata_has_reproducible: - return module_ctx.extension_metadata(reproducible = True) - else: - return None + metadata_kwargs["reproducible"] = True + return module_ctx.extension_metadata(**metadata_kwargs) + +_conditional_rust_host_tools_args = { + "arch_dependent": True, + "os_dependent": True, +} if bazel_features.external_deps.module_extension_has_os_arch_dependent else {} rust_host_tools = module_extension( implementation = _rust_host_tools_impl, tag_classes = { "host_tools": _RUST_HOST_TOOLS_TAG, }, - os_dependent = True, - arch_dependent = True, + **_conditional_rust_host_tools_args )