From deb78c3e566a51e941be3f173eef76260f894ca5 Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Fri, 24 Apr 2026 23:35:04 +0900 Subject: [PATCH 1/3] refactor(twine): use py_console_script_binary --- python/BUILD.bazel | 2 +- python/packaging.bzl | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/python/BUILD.bazel b/python/BUILD.bazel index 6577ff805f..90b2225ab5 100644 --- a/python/BUILD.bazel +++ b/python/BUILD.bazel @@ -88,7 +88,7 @@ bzl_library( name = "packaging_bzl", srcs = ["packaging.bzl"], deps = [ - ":py_binary_bzl", + "//python/entry_points:py_console_script_binary_bzl", "//python/private:bzlmod_enabled_bzl", "//python/private:py_package_bzl", "//python/private:py_wheel_bzl", diff --git a/python/packaging.bzl b/python/packaging.bzl index 223aba142d..3853986d9e 100644 --- a/python/packaging.bzl +++ b/python/packaging.bzl @@ -15,7 +15,7 @@ """Public API for for building wheels.""" load("@bazel_skylib//rules:native_binary.bzl", "native_binary") -load("//python:py_binary.bzl", "py_binary") +load("//python/entry_points:py_console_script_binary.bzl", "py_console_script_binary") load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED") load("//python/private:py_package.bzl", "py_package_lib") load("//python/private:py_wheel.bzl", _PyWheelInfo = "PyWheelInfo", _py_wheel = "py_wheel") @@ -219,16 +219,13 @@ def py_wheel( if not twine.endswith(":pkg"): fail("twine label should look like @my_twine_repo//:pkg") - twine_main = twine.replace(":pkg", ":rules_python_wheel_entry_point_twine.py") - - py_binary( + py_console_script_binary( name = "{}.publish".format(name), - srcs = [twine_main], + pkg = twine, + imports = ["."], args = twine_args, data = [dist_target], - imports = ["."], - main = twine_main, - deps = [twine], + script = "twine", tags = manual_tags, visibility = kwargs.get("visibility"), **copy_propagating_kwargs(kwargs) From 5f36ebb2a299af5d1796f3a916ef4f6becc1f625 Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Fri, 24 Apr 2026 23:57:38 +0900 Subject: [PATCH 2/3] Apply suggestion from @aignas --- python/packaging.bzl | 1 - 1 file changed, 1 deletion(-) diff --git a/python/packaging.bzl b/python/packaging.bzl index 3853986d9e..cb308d0829 100644 --- a/python/packaging.bzl +++ b/python/packaging.bzl @@ -222,7 +222,6 @@ def py_wheel( py_console_script_binary( name = "{}.publish".format(name), pkg = twine, - imports = ["."], args = twine_args, data = [dist_target], script = "twine", From 85d1eafaceb7a34943a3dc156c6651245430b851 Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Sun, 26 Apr 2026 14:04:44 +0900 Subject: [PATCH 3/3] use py_binary instead of py_console_script_binary --- python/packaging.bzl | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/python/packaging.bzl b/python/packaging.bzl index cb308d0829..537aa6090f 100644 --- a/python/packaging.bzl +++ b/python/packaging.bzl @@ -15,7 +15,7 @@ """Public API for for building wheels.""" load("@bazel_skylib//rules:native_binary.bzl", "native_binary") -load("//python/entry_points:py_console_script_binary.bzl", "py_console_script_binary") +load("//python:py_binary.bzl", "py_binary") load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED") load("//python/private:py_package.bzl", "py_package_lib") load("//python/private:py_wheel.bzl", _PyWheelInfo = "PyWheelInfo", _py_wheel = "py_wheel") @@ -216,15 +216,12 @@ def py_wheel( **copy_propagating_kwargs(kwargs) ) elif twine: - if not twine.endswith(":pkg"): - fail("twine label should look like @my_twine_repo//:pkg") - - py_console_script_binary( + py_binary( name = "{}.publish".format(name), - pkg = twine, + deps = [twine], args = twine_args, data = [dist_target], - script = "twine", + main_module = "twine", tags = manual_tags, visibility = kwargs.get("visibility"), **copy_propagating_kwargs(kwargs)