Skip to content

Commit f997478

Browse files
committed
Adopt new NodeJS runtime toolchain
js_binary should use the new runtime toolchain to avoid execution toolchain being leaked into target environments (eg., js_image_oci) See bazel-contrib/rules_nodejs#3854
1 parent 2df0af6 commit f997478

File tree

7 files changed

+19
-18
lines changed

7 files changed

+19
-18
lines changed

MODULE.bazel

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ bazel_dep(name = "aspect_tools_telemetry", version = "0.2.8")
1313
bazel_dep(name = "bazel_features", version = "1.9.0")
1414
bazel_dep(name = "bazel_skylib", version = "1.5.0")
1515
bazel_dep(name = "platforms", version = "0.0.5")
16-
bazel_dep(name = "rules_nodejs", version = "6.3.0")
16+
bazel_dep(name = "rules_nodejs", version = "6.6.0")
1717

1818
tel = use_extension("@aspect_tools_telemetry//:extension.bzl", "telemetry")
1919
use_repo(tel, "aspect_tools_telemetry_report")
@@ -58,10 +58,10 @@ bazel_dep(name = "rules_shell", version = "0.6.1", dev_dependency = True)
5858
# Overrides of non-dev deps for local testing using recent versions
5959
archive_override(
6060
module_name = "rules_nodejs",
61-
integrity = "sha256-OY23vNcf28WAxvjReCrpn1JQeRFypf/jHS+dgTjzOC4=",
62-
strip_prefix = "rules_nodejs-7cbb1fb5378fb4739e4d9698a14abd9eada900f0",
61+
integrity = "sha256-jFmNXCy0m8FjDy2Je31l1PC/kvDq3J3TdNhZ3+mojUs=",
62+
strip_prefix = "rules_nodejs-2d3b73e0596924e5798df464ebc5d85463ac6a75",
6363
urls = [
64-
"https://github.com/bazel-contrib/rules_nodejs/archive/7cbb1fb5378fb4739e4d9698a14abd9eada900f0.tar.gz",
64+
"https://github.com/bazel-contrib/rules_nodejs/archive/2d3b73e0596924e5798df464ebc5d85463ac6a75.tar.gz",
6565
],
6666
)
6767

e2e/pnpm_workspace/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sh_test(
1919
"@nodejs_linux_amd64//:node_files",
2020
"@nodejs_linux_arm64//:node_files",
2121
],
22-
toolchains = ["@nodejs_toolchains//:resolved_toolchain"],
22+
toolchains = ["@rules_nodejs//nodejs:current_node_runtime"],
2323
)
2424

2525
build_test(

e2e/pnpm_workspace_rerooted/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sh_test(
1919
"@nodejs_linux_amd64//:node_files",
2020
"@nodejs_linux_arm64//:node_files",
2121
],
22-
toolchains = ["@nodejs_toolchains//:resolved_toolchain"],
22+
toolchains = ["@rules_nodejs//nodejs:current_node_runtime"],
2323
)
2424

2525
build_test(

examples/genrule/BUILD.bazel

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ genrule(
4343
# $@ is bazel shorthand for the path of the output file
4444
">$@",
4545
]),
46-
toolchains = ["@nodejs_toolchains//:resolved_toolchain"],
47-
tools = ["@nodejs_toolchains//:resolved_toolchain"],
46+
toolchains = ["@rules_nodejs//nodejs:current_node_toolchain"],
47+
tools = ["@rules_nodejs//nodejs:current_node_toolchain"],
4848
)
4949

5050
diff_test(
@@ -74,8 +74,8 @@ genrule(
7474
$(NODE_PATH) \\
7575
./$(execpath :require_acorn_js) \\
7676
$@""",
77-
toolchains = ["@nodejs_toolchains//:resolved_toolchain"],
78-
tools = ["@nodejs_toolchains//:resolved_toolchain"],
77+
toolchains = ["@rules_nodejs//nodejs:current_node_toolchain"],
78+
tools = ["@rules_nodejs//nodejs:current_node_toolchain"],
7979
)
8080

8181
diff_test(

js/private/js_binary.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ _ATTRS = {
287287
""",
288288
),
289289
"node_toolchain": attr.label(
290-
doc = """The Node.js toolchain to use for this target.
290+
doc = """The Node.js runtime toolchain to use for this target.
291291
292292
See https://bazel-contrib.github.io/rules_nodejs/Toolchains.html
293293
@@ -505,7 +505,7 @@ def _create_launcher(ctx, log_prefix_rule_set, log_prefix_rule, fixed_args = [],
505505
if ctx.attr.node_toolchain:
506506
nodeinfo = ctx.attr.node_toolchain[platform_common.ToolchainInfo].nodeinfo
507507
else:
508-
nodeinfo = ctx.toolchains["@rules_nodejs//nodejs:toolchain_type"].nodeinfo
508+
nodeinfo = ctx.toolchains["@rules_nodejs//nodejs:runtime_toolchain_type"].nodeinfo
509509

510510
if DirectoryPathInfo in ctx.attr.entry_point:
511511
entry_point = ctx.attr.entry_point[DirectoryPathInfo].directory
@@ -636,7 +636,7 @@ js_binary_lib = struct(
636636
toolchains = [
637637
# TODO: on Windows this toolchain is never referenced
638638
"@bazel_tools//tools/sh:toolchain_type",
639-
"@rules_nodejs//nodejs:toolchain_type",
639+
"@rules_nodejs//nodejs:runtime_toolchain_type",
640640
] + COPY_FILE_TO_BIN_TOOLCHAINS,
641641
)
642642

js/private/js_image_layer.bzl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ else {
408408
transitive = [files],
409409
)
410410

411-
nodeinfo = ctx.attr._current_node[platform_common.ToolchainInfo].nodeinfo
411+
nodeinfo = ctx.attr._node_tool[platform_common.ToolchainInfo].nodeinfo
412412
if hasattr(nodeinfo, "node"):
413413
node_exec = nodeinfo.node
414414
else:
@@ -627,8 +627,8 @@ js_image_layer_lib = struct(
627627
default = "//js/private:js_image_layer.mjs",
628628
allow_single_file = True,
629629
),
630-
"_current_node": attr.label(
631-
default = "@nodejs_toolchains//:resolved_toolchain",
630+
"_node_tool": attr.label(
631+
default = "@rules_nodejs//nodejs:current_node_toolchain",
632632
cfg = "exec",
633633
),
634634
"binary": attr.label(
@@ -687,6 +687,7 @@ js_image_layer = rule(
687687
doc = _DOC,
688688
toolchains = [
689689
tar_lib.toolchain_type,
690-
"@rules_nodejs//nodejs:toolchain_type",
690+
config_common.toolchain_type("@rules_nodejs//nodejs:toolchain_type", mandatory = False), # for executing Node in our actions (must not be mandatory because it only available in 'exec' config)
691+
"@rules_nodejs//nodejs:runtime_toolchain_type", # for bundling Node for target platform (rely on js_binary)
691692
],
692693
)

npm/private/test/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,5 @@ sh_test(
7676
"@nodejs_linux_amd64//:node_files",
7777
"@nodejs_linux_arm64//:node_files",
7878
],
79-
toolchains = ["@nodejs_toolchains//:resolved_toolchain"],
79+
toolchains = ["@rules_nodejs//nodejs:current_node_runtime"],
8080
)

0 commit comments

Comments
 (0)