Skip to content

Commit 4e75160

Browse files
committed
Move formatter into a hidden subrepo accessible using local_path_override.
This hack allows the use of dev_dependency = True for all formatter deps used in the subrepo.
1 parent 774ca58 commit 4e75160

File tree

8 files changed

+87
-63
lines changed

8 files changed

+87
-63
lines changed

.bazelignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
bzl-examples
1+
bzl-examples
2+
tools/format

.github/workflows/bazel.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626
mkdir -p "${GITHUB_WORKSPACE}/bin/"
2727
mv bazelisk-linux-amd64 "${GITHUB_WORKSPACE}/bin/bazel"
2828
chmod +x "${GITHUB_WORKSPACE}/bin/bazel"
29-
- name: Lint - Please run `bazelisk run //:format`
29+
- name: Lint - Please run `bazelisk run @format//:format`
3030
run: |
3131
cd "${GITHUB_WORKSPACE}"
32-
"${GITHUB_WORKSPACE}/bin/bazel" run //:format.check
32+
"${GITHUB_WORKSPACE}/bin/bazel" run @format//:format.check
3333
- name: Build
3434
uses: nick-invision/retry@v3
3535
with:
@@ -38,6 +38,14 @@ jobs:
3838
command: |
3939
cd "${GITHUB_WORKSPACE}"
4040
"${GITHUB_WORKSPACE}/bin/bazel" build //...
41+
- name: Build --ignore_dev_dependency
42+
uses: nick-invision/retry@v3
43+
with:
44+
timeout_minutes: 10
45+
max_attempts: 3
46+
command: |
47+
cd "${GITHUB_WORKSPACE}"
48+
"${GITHUB_WORKSPACE}/bin/bazel" build //... --ignore_dev_dependency
4149
- name: Test
4250
uses: nick-invision/retry@v3
4351
with:

BUILD.bazel

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +0,0 @@
1-
load("@aspect_rules_lint//format:defs.bzl", "format_multirun")
2-
load("@rules_java//java:defs.bzl", "java_binary")
3-
load("@rules_multirun//:defs.bzl", "command")
4-
5-
java_binary(
6-
name = "ktfmt",
7-
main_class = "com.facebook.ktfmt.cli.Main",
8-
tags = ["manual"],
9-
runtime_deps = ["@ktfmt//jar"],
10-
)
11-
12-
command(
13-
name = "ktfmt_wrapper",
14-
arguments = ["--google-style"],
15-
command = ":ktfmt",
16-
tags = ["manual"],
17-
)
18-
19-
java_binary(
20-
name = "java-format",
21-
jvm_flags = [
22-
"--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
23-
"--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
24-
"--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
25-
"--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
26-
"--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
27-
],
28-
main_class = "com.google.googlejavaformat.java.Main",
29-
tags = ["manual"],
30-
runtime_deps = ["@google-java-format//jar"],
31-
)
32-
33-
format_multirun(
34-
name = "format",
35-
java = ":java-format",
36-
kotlin = ":ktfmt_wrapper",
37-
protocol_buffer = "@rules_buf_toolchains//:buf",
38-
starlark = "@buildifier_prebuilt//:buildifier",
39-
tags = ["manual"],
40-
yaml = "@aspect_rules_lint//format:yamlfmt",
41-
)

MODULE.bazel

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,17 @@ module(
55
compatibility_level = 1,
66
)
77

8-
bazel_dep(name = "protobuf", version = "31.1")
8+
bazel_dep(name = "protobuf", version = "31.1") # Max version without causing compiler errors.
99
bazel_dep(name = "rules_kotlin", version = "2.1.9")
10-
bazel_dep(name = "rules_java", version = "8.15.1")
10+
bazel_dep(name = "rules_java", version = "8.15.2")
1111
bazel_dep(name = "rules_jvm_external", version = "6.8")
1212
bazel_dep(name = "grpc-java", version = "1.71.0")
1313

1414
# Formatter.
15-
bazel_dep(name = "aspect_rules_lint", version = "1.6.0", dev_dependency = True)
16-
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2", dev_dependency = True)
17-
bazel_dep(name = "rules_buf", version = "0.5.2", dev_dependency = True)
18-
bazel_dep(name = "rules_multirun", version = "0.13.0", dev_dependency = True)
19-
20-
http_jar = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")
21-
22-
http_jar(
23-
name = "google-java-format",
24-
sha256 = "33068bbbdce1099982ec1171f5e202898eb35f2919cf486141e439fc6e3a4203",
25-
url = "https://github.com/google/google-java-format/releases/download/v1.17.0/google-java-format-1.17.0-all-deps.jar",
15+
bazel_dep(name = "format", version = "0.0.0", dev_dependency = True)
16+
local_path_override(
17+
module_name = "format",
18+
path = "tools/format",
2619
)
2720

2821
grpc_kotlin_maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
@@ -48,9 +41,3 @@ grpc_kotlin_maven.install(
4841
strict_visibility = True,
4942
)
5043
use_repo(grpc_kotlin_maven, "grpc_kotlin_maven")
51-
52-
install_ktfmt = use_extension("//:extensions.bzl", "install_ktfmt", dev_dependency = True)
53-
use_repo(install_ktfmt, "ktfmt")
54-
55-
buf = use_extension("@rules_buf//buf:extensions.bzl", "buf", dev_dependency = True)
56-
use_repo(buf, "rules_buf_toolchains")

tools/format/.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8.4.0

tools/format/BUILD.bazel

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
load("@aspect_rules_lint//format:defs.bzl", "format_multirun")
2+
load("@rules_java//java:defs.bzl", "java_binary")
3+
load("@rules_multirun//:defs.bzl", "command")
4+
5+
package(default_visibility = ["//visibility:private"])
6+
7+
java_binary(
8+
name = "ktfmt",
9+
main_class = "com.facebook.ktfmt.cli.Main",
10+
tags = ["manual"],
11+
runtime_deps = ["@ktfmt//jar"],
12+
)
13+
14+
command(
15+
name = "ktfmt_wrapper",
16+
arguments = ["--google-style"],
17+
command = ":ktfmt",
18+
tags = ["manual"],
19+
)
20+
21+
java_binary(
22+
name = "java-format",
23+
jvm_flags = [
24+
"--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
25+
"--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
26+
"--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
27+
"--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
28+
"--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
29+
],
30+
main_class = "com.google.googlejavaformat.java.Main",
31+
tags = ["manual"],
32+
runtime_deps = ["@google-java-format//jar"],
33+
)
34+
35+
format_multirun(
36+
name = "format",
37+
java = ":java-format",
38+
kotlin = ":ktfmt_wrapper",
39+
protocol_buffer = "@rules_buf_toolchains//:buf",
40+
starlark = "@buildifier_prebuilt//:buildifier",
41+
tags = ["manual"],
42+
yaml = "@aspect_rules_lint//format:yamlfmt",
43+
)

tools/format/MODULE.bazel

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module(
2+
name = "format",
3+
version = "1.0.0",
4+
compatibility_level = 1,
5+
)
6+
7+
bazel_dep(name = "aspect_rules_lint", version = "1.7.0")
8+
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
9+
bazel_dep(name = "rules_buf", version = "0.5.2")
10+
bazel_dep(name = "rules_java", version = "8.15.2")
11+
bazel_dep(name = "rules_multirun", version = "0.13.0")
12+
13+
http_jar = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")
14+
15+
http_jar(
16+
name = "google-java-format",
17+
sha256 = "33068bbbdce1099982ec1171f5e202898eb35f2919cf486141e439fc6e3a4203",
18+
url = "https://github.com/google/google-java-format/releases/download/v1.17.0/google-java-format-1.17.0-all-deps.jar",
19+
)
20+
21+
install_ktfmt = use_extension("//:extensions.bzl", "install_ktfmt")
22+
use_repo(install_ktfmt, "ktfmt")
23+
24+
buf = use_extension("@rules_buf//buf:extensions.bzl", "buf")
25+
use_repo(buf, "rules_buf_toolchains")

0 commit comments

Comments
 (0)