From f1529122ae24252b380cca4ff5730954394729f9 Mon Sep 17 00:00:00 2001 From: Philipp Schrader Date: Fri, 6 Feb 2026 09:57:50 -0800 Subject: [PATCH] fix: Allow generated files in platform_transition_filegroup I'm currently running into this error: $ bazel build //lib/tests/transitions:transitioned_dynamic_path INFO: Invocation ID: ea3f3d4e-ea1a-49cc-84b5-e5d5e1577aaa ERROR: /home/philipp.schrader/repos/bazel-lib/lib/tests/transitions/BUILD.bazel:104:30: in srcs attribute of platform_transition_filegroup rule //lib/tests/transitions:transitioned_dynamic_path: generated file '//lib/tests/transitions:dynamic_path.txt' is misplaced here (expected no files) ERROR: /home/philipp.schrader/repos/bazel-lib/lib/tests/transitions/BUILD.bazel:104:30: Analysis of target '//lib/tests/transitions:transitioned_dynamic_path' (config: 4996c2f) failed ERROR: Analysis of target '//lib/tests/transitions:transitioned_dynamic_path' failed; build aborted INFO: Elapsed time: 0.077s, Critical Path: 0.00s INFO: 1 process: 1 internal. ERROR: Build did NOT complete successfully Fix the issue by allowing files in the `srcs` attribute. This is useful if the `genrule` is operating on a transitioned binary of some kind. --- lib/tests/transitions/BUILD.bazel | 12 ++++++++++++ lib/transitions.bzl | 1 + 2 files changed, 13 insertions(+) diff --git a/lib/tests/transitions/BUILD.bazel b/lib/tests/transitions/BUILD.bazel index c6993d5ec..46fb7e294 100644 --- a/lib/tests/transitions/BUILD.bazel +++ b/lib/tests/transitions/BUILD.bazel @@ -94,6 +94,18 @@ diff_test( ], ) +genrule( + name = "dynamic_path", + outs = ["dynamic_path.txt"], + cmd = "echo $(RULEDIR) > $@", +) + +platform_transition_filegroup( + name = "transitioned_dynamic_path", + srcs = ["dynamic_path.txt"], + target_platform = ":armv7_linux", +) + go_binary( name = "test_transition_binary", embed = [":transitions_lib"], diff --git a/lib/transitions.bzl b/lib/transitions.bzl index cd0e42552..7989e4e13 100644 --- a/lib/transitions.bzl +++ b/lib/transitions.bzl @@ -38,6 +38,7 @@ platform_transition_filegroup = rule( ), "srcs": attr.label_list( allow_empty = False, + allow_files = True, cfg = _transition_platform, doc = "The input to be transitioned to the target platform.", ),