From 67eb1498cf8e3021faebc4ac5e8223394e614960 Mon Sep 17 00:00:00 2001 From: Dmitry Ivankov Date: Wed, 8 Oct 2025 14:18:47 +0200 Subject: [PATCH 1/2] ktlint_fix: use `java` from toolchain rather than from default PATH Should fix https://github.com/bazelbuild/rules_kotlin/issues/1372 --- kotlin/internal/lint/ktlint_fix.bzl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kotlin/internal/lint/ktlint_fix.bzl b/kotlin/internal/lint/ktlint_fix.bzl index 86deb6e99..15135095a 100644 --- a/kotlin/internal/lint/ktlint_fix.bzl +++ b/kotlin/internal/lint/ktlint_fix.bzl @@ -92,11 +92,12 @@ fi SRCS=({srcs}) SRCS=${{SRCS[@]/#/$BUILD_DIR}} -"$TOOL" {args} $SRCS +PATH=\"$(dirname "{binjava}"):$PATH\" "$TOOL" {args} $SRCS """.format( executable = ctx.executable._ktlint_tool.path, args = " ".join(args), srcs = " ".join([src.path for src in ctx.files.srcs]), + binjava = ctx.attr._java[java_common.JavaRuntimeInfo].java_executable_runfiles_path, ) content = ctx.expand_location(content, [ctx.attr._ktlint_tool]) @@ -108,7 +109,7 @@ SRCS=${{SRCS[@]/#/$BUILD_DIR}} is_executable = True, ) - files = [ctx.executable._ktlint_tool] + files = [ctx.executable._ktlint_tool] + ctx.files._java if editorconfig: files.append(editorconfig) runfiles = ctx.runfiles(files = files) @@ -140,6 +141,9 @@ ktlint_fix = rule( executable = True, cfg = "target", ), + "_java": attr.label( + default = "@bazel_tools//tools/jdk:current_java_runtime", + ), }, executable = True, doc = "Lint Kotlin files and automatically fix them as needed", From eee62cb4a95ddad11057f87d06c7b8a6ed3db4df Mon Sep 17 00:00:00 2001 From: Dmitry Ivankov Date: Wed, 8 Oct 2025 22:02:51 +0200 Subject: [PATCH 2/2] really use toolchains --- kotlin/internal/lint/ktlint_fix.bzl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/kotlin/internal/lint/ktlint_fix.bzl b/kotlin/internal/lint/ktlint_fix.bzl index 15135095a..d03639a09 100644 --- a/kotlin/internal/lint/ktlint_fix.bzl +++ b/kotlin/internal/lint/ktlint_fix.bzl @@ -97,7 +97,7 @@ PATH=\"$(dirname "{binjava}"):$PATH\" "$TOOL" {args} $SRCS executable = ctx.executable._ktlint_tool.path, args = " ".join(args), srcs = " ".join([src.path for src in ctx.files.srcs]), - binjava = ctx.attr._java[java_common.JavaRuntimeInfo].java_executable_runfiles_path, + binjava = ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"].java_runtime.java_executable_runfiles_path, ) content = ctx.expand_location(content, [ctx.attr._ktlint_tool]) @@ -109,10 +109,11 @@ PATH=\"$(dirname "{binjava}"):$PATH\" "$TOOL" {args} $SRCS is_executable = True, ) - files = [ctx.executable._ktlint_tool] + ctx.files._java + files = [ctx.executable._ktlint_tool] + transitive_files = ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"].java_runtime.files if editorconfig: files.append(editorconfig) - runfiles = ctx.runfiles(files = files) + runfiles = ctx.runfiles(files = files, transitive_files = transitive_files) return [ DefaultInfo( @@ -141,10 +142,10 @@ ktlint_fix = rule( executable = True, cfg = "target", ), - "_java": attr.label( - default = "@bazel_tools//tools/jdk:current_java_runtime", - ), }, + toolchains = [ + "@bazel_tools//tools/jdk:runtime_toolchain_type", + ], executable = True, doc = "Lint Kotlin files and automatically fix them as needed", )