diff --git a/py/private/venv/venv.bzl b/py/private/venv/venv.bzl index 8c9f2a14..8b898c45 100644 --- a/py/private/venv/venv.bzl +++ b/py/private/venv/venv.bzl @@ -92,8 +92,7 @@ def _make_venv(ctx, name = None, main = None, strip_pth_workspace_root = None): content = pth_lines, ) - venv_sibling = _get_attr(ctx.file, "main", main) - venv_directory = ctx.actions.declare_directory("%s.source" % name, sibling = venv_sibling) + venv_directory = ctx.actions.declare_directory("%s.source" % name) common_substitutions = { "{{BASH_BIN}}": bash_bin, diff --git a/py/tests/external-deps/BUILD.bazel b/py/tests/external-deps/BUILD.bazel index 54afebb9..3ecf6f54 100644 --- a/py/tests/external-deps/BUILD.bazel +++ b/py/tests/external-deps/BUILD.bazel @@ -1,6 +1,7 @@ load("//py:defs.bzl", "py_binary", "py_library") load("@python_toolchain//:defs.bzl", "host_platform") load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") +load("//py/tests/external-deps/custom-macro:macro.bzl", "click_cli_binary") py_library( name = "lib", @@ -33,7 +34,7 @@ genrule( py_binary( name = "click", - srcs = ["click.py"], + srcs = ["//py/tests/external-deps/custom-macro:__main__.py"], deps = [ # Referencing the external py_library rule generated by rules_python "@pypi_click//:pkg", @@ -47,10 +48,22 @@ genrule( tools = ["click"], ) +click_cli_binary( + name = "click_binary", +) + +genrule( + name = "run_click_cli_binary", + outs = ["click_cli_binary_out"], + cmd = "$(execpath click_binary) --count 628 > $@", + tools = ["click_binary"], +) + write_source_files( name = "test", files = { "expected_pathing": "pathing_out", "expected_click": "click_out", + "expected_click_cli_binary": "click_cli_binary_out", }, ) diff --git a/py/tests/external-deps/custom-macro/BUILD.bazel b/py/tests/external-deps/custom-macro/BUILD.bazel new file mode 100644 index 00000000..f35309b0 --- /dev/null +++ b/py/tests/external-deps/custom-macro/BUILD.bazel @@ -0,0 +1 @@ +exports_files(["__main__.py"]) diff --git a/py/tests/external-deps/click.py b/py/tests/external-deps/custom-macro/__main__.py similarity index 100% rename from py/tests/external-deps/click.py rename to py/tests/external-deps/custom-macro/__main__.py diff --git a/py/tests/external-deps/custom-macro/macro.bzl b/py/tests/external-deps/custom-macro/macro.bzl new file mode 100644 index 00000000..9ed82314 --- /dev/null +++ b/py/tests/external-deps/custom-macro/macro.bzl @@ -0,0 +1,17 @@ +load("//py:defs.bzl", "py_binary", "py_library") + +def click_cli_binary(name, deps = [], **kwargs): + py_library( + name = name + "_lib", + srcs = ["//py/tests/external-deps/custom-macro:__main__.py"], + ) + + py_binary( + name = name, + main = "//py/tests/external-deps/custom-macro:__main__.py", + deps = deps + [ + name + "_lib", + "@pypi_click//:pkg", + ], + **kwargs + ) diff --git a/py/tests/external-deps/expected_click_cli_binary b/py/tests/external-deps/expected_click_cli_binary new file mode 100644 index 00000000..cc973039 --- /dev/null +++ b/py/tests/external-deps/expected_click_cli_binary @@ -0,0 +1 @@ +Count = 628 diff --git a/py/tests/external-deps/sibling-package/BUILD.bazel b/py/tests/external-deps/sibling-package/BUILD.bazel new file mode 100644 index 00000000..5ceda7b8 --- /dev/null +++ b/py/tests/external-deps/sibling-package/BUILD.bazel @@ -0,0 +1,20 @@ +load("//py/tests/external-deps/custom-macro:macro.bzl", "click_cli_binary") +load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") + +click_cli_binary( + name = "click_sibling_binary", +) + +genrule( + name = "run_click_cli_binary", + outs = ["click_sibling_cli_binary_out"], + cmd = "$(execpath click_sibling_binary) --count 628 > $@", + tools = ["click_sibling_binary"], +) + +write_source_files( + name = "test", + files = { + "expected_click_sibling_cli_binary": "click_sibling_cli_binary_out", + }, +) diff --git a/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary b/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary new file mode 100755 index 00000000..cc973039 --- /dev/null +++ b/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary @@ -0,0 +1 @@ +Count = 628 diff --git a/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary_out b/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary_out new file mode 100644 index 00000000..cc973039 --- /dev/null +++ b/py/tests/external-deps/sibling-package/expected_click_sibling_cli_binary_out @@ -0,0 +1 @@ +Count = 628