From 8beb05e4adf0c07d21ac66c8a1a6e28cdbe9d5bf Mon Sep 17 00:00:00 2001 From: Ilia Kirianovskii Date: Sun, 10 Aug 2025 12:59:33 +0200 Subject: [PATCH] [bazel] Switch expects, noria, and rpc compiler plugins to source builds (IJI-2964) GitOrigin-RevId: 187da09e0822d426fcf5d527bc3b588350a890ed --- BUILD.bazel | 4 ++-- build/jvm-rules/BUILD.bazel | 8 +------- build/jvm-rules/MODULE.bazel | 21 --------------------- build/jvm-rules/jvm-inc-builder/BUILD.bazel | 20 +------------------- common.bazelrc | 1 + fleet/compiler-plugins/expects/BUILD.bazel | 19 +++++++++++++++++++ fleet/compiler-plugins/noria/BUILD.bazel | 19 +++++++++++++++++++ fleet/compiler-plugins/rpc/BUILD.bazel | 19 +++++++++++++++++++ 8 files changed, 62 insertions(+), 49 deletions(-) create mode 100644 fleet/compiler-plugins/expects/BUILD.bazel create mode 100644 fleet/compiler-plugins/noria/BUILD.bazel create mode 100644 fleet/compiler-plugins/rpc/BUILD.bazel diff --git a/BUILD.bazel b/BUILD.bazel index 87c08e19f51d..8cad2be8f155 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -9,9 +9,9 @@ create_kotlinc_options(name = "k17", jvm_target = "17") java_binary( name = "monorepo-jvm-builder", # jvm_flags = [], -- Note(k15tfu): ignored w/ deploy jar, use @rules_jvm//:jvm-builder-jvm_flags - main_class = "org.jetbrains.bazel.jvm.worker.JvmBuildWorker", + main_class = "com.intellij.tools.build.bazel.jvmIncBuilder.BazelIncExecutor", visibility = ["//visibility:public"], - runtime_deps = ["@rules_jvm//src/jvm-builder:jvm-builder-lib", "@lib//:rhizomedb-compiler-plugin", "@lib//:expects-compiler-plugin", "@lib//:rpc-compiler-plugin", "@lib//:noria-compiler-plugin"], + runtime_deps = ["@rules_jvm//jvm-inc-builder:jvm-inc-builder-lib", "@community//fleet/compiler-plugins/expects:expects-compiler-plugin", "@community//fleet/compiler-plugins/noria:noria-compiler-plugin", "@community//fleet/compiler-plugins/rpc:rpc-compiler-plugin"], ) java_binary( diff --git a/build/jvm-rules/BUILD.bazel b/build/jvm-rules/BUILD.bazel index c7fd69e38e8b..f31da6a98d8e 100644 --- a/build/jvm-rules/BUILD.bazel +++ b/build/jvm-rules/BUILD.bazel @@ -66,13 +66,7 @@ _kt_kotlinc_options( name = "rules_jvm_bootstrap_kotlinc_options", include_stdlibs = "none", jvm_target = "17", - visibility = [ - "//src:__subpackages__", - "//zip:__pkg__", - "//jvm-inc-builder:__subpackages__", - "//jps-builders-6:__subpackages__", - "//dependency-graph:__subpackages__", - ], + visibility = ["//visibility:public"], # used by @community//:monorepo-jvm-builder (@community//fleet/compiler-plugins/expects:expects-compiler-plugin, etc.) x_jdk_release = "17", ) diff --git a/build/jvm-rules/MODULE.bazel b/build/jvm-rules/MODULE.bazel index 0d3382a72d86..90cd39e60466 100644 --- a/build/jvm-rules/MODULE.bazel +++ b/build/jvm-rules/MODULE.bazel @@ -67,27 +67,6 @@ http_file( downloaded_file_path = "jvm-abi-gen-2.2.10-RC-359.jar" ) -http_file( - name = "expects-compiler-plugin-2_2_0-0_1_http", - url = "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/jetbrains/fleet/expects-compiler-plugin/2.2.0-0.1/expects-compiler-plugin-2.2.0-0.1.jar", - sha256 = "628cafacf89a5fd9e55ec6a8d91429d8158bb41d355723a4a324864973e425f6", - downloaded_file_path = "expects-compiler-plugin-2.2.0-RC-0.1.jar" -) - -http_file( - name = "rpc-compiler-plugin-2_2_0-0_2_http", - url = "https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ij/intellij-dependencies/com/jetbrains/fleet/rpc-compiler-plugin/2.2.0-0.2/rpc-compiler-plugin-2.2.0-0.2.jar", - sha256 = "aba987ad87817fc6574e3362fbc3159712bc9c592e48d13484c2f505b5ad42f1", - downloaded_file_path = "rpc-compiler-plugin-2.2.0-0.2.jar" -) - -http_file( - name = "noria-compiler-plugin-2_2_0-0_2_http", - url = "https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ij/intellij-dependencies/jetbrains/fleet/noria-compiler-plugin/2.2.0-0.2/noria-compiler-plugin-2.2.0-0.2.jar", - sha256 = "9368e1ed77e1bd061fecf511ce281532d9db8194a50a39a39c64f2e67630982a", - downloaded_file_path = "noria-compiler-plugin-2.2.0-0.2.jar" -) - http_file( name = "kotlin-compiler-2_2_10-RC-359_http", url = "https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/kotlin/kotlin-compiler/2.2.10-RC-359/kotlin-compiler-2.2.10-RC-359.jar", diff --git a/build/jvm-rules/jvm-inc-builder/BUILD.bazel b/build/jvm-rules/jvm-inc-builder/BUILD.bazel index ccd016abe5d6..0411f44b0a0a 100644 --- a/build/jvm-rules/jvm-inc-builder/BUILD.bazel +++ b/build/jvm-rules/jvm-inc-builder/BUILD.bazel @@ -92,7 +92,7 @@ string_list_flag( java_library( name = "patched-kotlin-compiler-for-bazel", - visibility = ["//visibility:private"], + visibility = ["//visibility:public"], # used by @community//:monorepo-jvm-builder (@community//fleet/compiler-plugins/expects:expects-compiler-plugin, etc.) exports = [ ":kotlin-compiler-2_2_10-RC-359_http_import", ":kotlin-stdlib-jdk8-2_2_10-RC-359_http_import", @@ -102,9 +102,6 @@ java_library( ":kotlin-reflect-1_6_10_http_import", #":kotlinx-coroutines-core-jvm-1_8_0_http_import", #":annotations-23_0_0_http_import", - ":expects-compiler-plugin-2_2_0-0_1_http_import", - ":rpc-compiler-plugin-2_2_0-0_2_http_import", - ":noria-compiler-plugin-2_2_0-0_2_http_import", ":patched-jvm-abi-gen-for-bazel_http_import", ], ) @@ -114,21 +111,6 @@ jvm_import( jar = "@jvm-abi-gen-2_2_10-RC-359_http//file", ) -jvm_import( - name = "expects-compiler-plugin-2_2_0-0_1_http_import", - jar = "@expects-compiler-plugin-2_2_0-0_1_http//file", -) - -jvm_import( - name = "rpc-compiler-plugin-2_2_0-0_2_http_import", - jar = "@rpc-compiler-plugin-2_2_0-0_2_http//file", -) - -jvm_import( - name = "noria-compiler-plugin-2_2_0-0_2_http_import", - jar = "@noria-compiler-plugin-2_2_0-0_2_http//file", -) - jvm_import( name = "kotlin-compiler-2_2_10-RC-359_http_import", jar = "@kotlin-compiler-2_2_10-RC-359_http//file", diff --git a/common.bazelrc b/common.bazelrc index 013227f8d7bf..7e9a61cbcf8d 100644 --- a/common.bazelrc +++ b/common.bazelrc @@ -10,6 +10,7 @@ ### The option was removed due to https://github.com/bazelbuild/bazel/issues/26361 ### One experimental option less and also it looks like it won't enabled by default in the future +common --@rules_jvm//:jvm-builder=@community//:monorepo-jvm-builder_deploy.jar common --@rules_jvm//:default-kotlinc-opts=@community//:k17 common --@rules_jvm//:koltin_inc_threshold=0 --@rules_jvm//:java_inc_threshold=0 diff --git a/fleet/compiler-plugins/expects/BUILD.bazel b/fleet/compiler-plugins/expects/BUILD.bazel new file mode 100644 index 000000000000..0d1e4112924c --- /dev/null +++ b/fleet/compiler-plugins/expects/BUILD.bazel @@ -0,0 +1,19 @@ +load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") + +jvm_resources( + name = "expects-compiler-plugin_resources", + files = glob(["src/main/resources/**/*"]), + strip_prefix = "src/main/resources" +) + +kt_jvm_library( + name = "expects-compiler-plugin", + srcs = glob(["src/main/kotlin/**/*.kt"], exclude = ["src/main/kotlin/fleet/multiplatform/expects/gradle/ExpectsGradlePlugin.kt"]), + kotlinc_opts = "@rules_jvm//:rules_jvm_bootstrap_kotlinc_options", + visibility = ["//visibility:public"], + deps = [ + "@rules_jvm//jvm-inc-builder:patched-kotlin-compiler-for-bazel", + ], + runtime_deps = [":expects-compiler-plugin_resources"] +) diff --git a/fleet/compiler-plugins/noria/BUILD.bazel b/fleet/compiler-plugins/noria/BUILD.bazel new file mode 100644 index 000000000000..0214d2c39b10 --- /dev/null +++ b/fleet/compiler-plugins/noria/BUILD.bazel @@ -0,0 +1,19 @@ +load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") + +jvm_resources( + name = "noria-compiler-plugin_resources", + files = glob(["src/main/resources/**/*"]), + strip_prefix = "src/main/resources" +) + +kt_jvm_library( + name = "noria-compiler-plugin", + srcs = glob(["src/main/kotlin/**/*.kt"], exclude = ["src/main/kotlin/noria/plugin/gradle/NoriaGradlePlugin.kt"]), + kotlinc_opts = "@rules_jvm//:rules_jvm_bootstrap_kotlinc_options", + visibility = ["//visibility:public"], + deps = [ + "@rules_jvm//jvm-inc-builder:patched-kotlin-compiler-for-bazel", + ], + runtime_deps = [":noria-compiler-plugin_resources"] +) diff --git a/fleet/compiler-plugins/rpc/BUILD.bazel b/fleet/compiler-plugins/rpc/BUILD.bazel new file mode 100644 index 000000000000..cf5c2bc1d803 --- /dev/null +++ b/fleet/compiler-plugins/rpc/BUILD.bazel @@ -0,0 +1,19 @@ +load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") + +jvm_resources( + name = "rpc-compiler-plugin_resources", + files = glob(["src/main/resources/**/*"]), + strip_prefix = "src/main/resources" +) + +kt_jvm_library( + name = "rpc-compiler-plugin", + srcs = glob(["src/main/kotlin/**/*.kt"], exclude = ["src/main/kotlin/com/jetbrains/fleet/rpc/plugin/gradle/RpcGradlePlugin.kt"]), + kotlinc_opts = "@rules_jvm//:rules_jvm_bootstrap_kotlinc_options", + visibility = ["//visibility:public"], + deps = [ + "@rules_jvm//jvm-inc-builder:patched-kotlin-compiler-for-bazel", + ], + runtime_deps = [":rpc-compiler-plugin_resources"] +)