From 04ca9b4d71b912cdfbbe1afc34321232cd4de990 Mon Sep 17 00:00:00 2001 From: Corentin Kerisit Date: Wed, 29 Apr 2026 10:41:35 +0000 Subject: [PATCH 1/2] Reuse escape_label for bazel builtin names --- zig/private/common/BUILD.bazel | 5 ++++- zig/private/common/bazel_builtin.bzl | 7 ++----- zig/tests/module_info_test.bzl | 15 ++++++--------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/zig/private/common/BUILD.bazel b/zig/private/common/BUILD.bazel index f0da0663..5de68601 100644 --- a/zig/private/common/BUILD.bazel +++ b/zig/private/common/BUILD.bazel @@ -80,7 +80,10 @@ bzl_library( name = "bazel_builtin", srcs = ["bazel_builtin.bzl"], visibility = ["//zig:__subpackages__"], - deps = ["//zig/private/providers:zig_module_info"], + deps = [ + ":escape_label", + "//zig/private/providers:zig_module_info", + ], ) bzl_library( diff --git a/zig/private/common/bazel_builtin.bzl b/zig/private/common/bazel_builtin.bzl index c3368aef..b0dc9349 100644 --- a/zig/private/common/bazel_builtin.bzl +++ b/zig/private/common/bazel_builtin.bzl @@ -4,6 +4,7 @@ load( "//zig/private/providers:zig_module_info.bzl", "zig_module_info", ) +load("//zig/private/common:escape_label.bzl", "escape_label") ATTRS = { "_bazel_builtin_template": attr.label( @@ -25,11 +26,7 @@ def bazel_builtin_module(ctx): package_name = ctx.label.package target_name = ctx.label.name - name = "bazel_builtin_A{repo}_S_S{package}_C{target}".format( - repo = repo_name.replace("~", "_T"), - package = package_name.replace("/", "_S"), - target = target_name, - ) + name = "bazel_builtin_" + escape_label(label = ctx.label) main = ctx.actions.declare_file(name + ".zig") substitutions = ctx.actions.template_dict() diff --git a/zig/tests/module_info_test.bzl b/zig/tests/module_info_test.bzl index a88221cb..700f1f6e 100644 --- a/zig/tests/module_info_test.bzl +++ b/zig/tests/module_info_test.bzl @@ -3,35 +3,32 @@ load("@bazel_skylib//lib:paths.bzl", "paths") load("@bazel_skylib//rules:diff_test.bzl", "diff_test") +load("//zig/private/common:escape_label.bzl", "escape_label") load( "//zig/private/providers:zig_module_info.bzl", "ZigModuleInfo", "zig_module_specifications", ) -def _bazel_builtin_name(label): - return "bazel_builtin_A{repo}_S_S{package}_C{target}".format( - repo = label.repo_name if hasattr(label, "repo_name") else label.workspace_name, - package = label.package.replace("/", "_S"), - target = label.name, - ) +def _bazel_builtin_canonical_name(label): + return "bazel_builtin_" + escape_label(label = label) def _bazel_builtin_file_name(ctx, label): return paths.join( ctx.bin_dir.path, label.workspace_root, label.package, - _bazel_builtin_name(label) + ".zig", + _bazel_builtin_canonical_name(label) + ".zig", ) def _bazel_builtin_mod_flags(ctx, label): return ["'-M{}={}'".format( - _bazel_builtin_name(label), + _bazel_builtin_canonical_name(label), _bazel_builtin_file_name(ctx, label), )] def _bazel_builtin_dep(label): - return "'bazel_builtin={}'".format(_bazel_builtin_name(label)) + return "'bazel_builtin={}'".format(_bazel_builtin_canonical_name(label)) def _write_simple_module_expected_specs_args_impl(ctx): mod = ctx.attr.mod[ZigModuleInfo] From 6525a42c88d71155f7e9c7a5a54fb81ad46ed7e0 Mon Sep 17 00:00:00 2001 From: Corentin Kerisit Date: Wed, 29 Apr 2026 12:25:05 +0000 Subject: [PATCH 2/2] fix --- zig/private/common/bazel_builtin.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zig/private/common/bazel_builtin.bzl b/zig/private/common/bazel_builtin.bzl index b0dc9349..b5ddd9d1 100644 --- a/zig/private/common/bazel_builtin.bzl +++ b/zig/private/common/bazel_builtin.bzl @@ -1,10 +1,10 @@ """Generate the `bazel_builtin` module.""" +load("//zig/private/common:escape_label.bzl", "escape_label") load( "//zig/private/providers:zig_module_info.bzl", "zig_module_info", ) -load("//zig/private/common:escape_label.bzl", "escape_label") ATTRS = { "_bazel_builtin_template": attr.label(