github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/WORKSPACE (about) 1 workspace(name = "build_stack_rules_proto") 2 3 # gazelle:repo bazel_gazelle 4 5 # ---------------------------------------------------- 6 # Toolchain-Related 7 # ---------------------------------------------------- 8 9 register_toolchains( 10 "//toolchain:standard", 11 # "//toolchain:prebuilt", # alt 12 ) 13 14 # ---------------------------------------------------- 15 # Core Deps 16 # ---------------------------------------------------- 17 18 load("//deps:core_deps.bzl", "core_deps") 19 20 core_deps() 21 22 # ---------------------------------------------------- 23 # Core Protobuf 24 # ---------------------------------------------------- 25 26 load("//deps:protobuf_core_deps.bzl", "protobuf_core_deps") 27 28 protobuf_core_deps() 29 30 # ---------------------------------------------------- 31 # Core gRPC 32 # ---------------------------------------------------- 33 34 load("//deps:grpc_core_deps.bzl", "grpc_core_deps") 35 36 grpc_core_deps() 37 38 load( 39 "@com_github_grpc_grpc//bazel:grpc_deps.bzl", 40 "grpc_deps", 41 ) 42 43 grpc_deps() 44 45 # NOTE: rather than using the 'grpc_extra_deps' function, we selectively load 46 # only the parts of that macro that are needed. Using the macro as-is for 47 # *this* WORKSPACE causes issues with duplicate go_register_toolchains calls. 48 # 49 # load( "@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps", 50 # ) 51 # grpc_extra_deps() 52 53 load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies") 54 55 apple_rules_dependencies(ignore_version_differences = False) 56 57 load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language") 58 59 # Initialize Google APIs with only C++ and Python targets 60 switched_rules_by_language( 61 name = "com_google_googleapis_imports", 62 cc = True, 63 grpc = True, 64 python = True, 65 ) 66 67 load("@envoy_api//bazel:repositories.bzl", "api_dependencies") 68 69 api_dependencies() 70 71 # ---------------------------------------------------- 72 # Go Tools 73 # ---------------------------------------------------- 74 75 load( 76 "@io_bazel_rules_go//go:deps.bzl", 77 "go_register_toolchains", 78 "go_rules_dependencies", 79 ) 80 81 go_rules_dependencies() 82 83 go_register_toolchains(version = "1.18.2") 84 85 # ---------------------------------------------------- 86 # Gazelle 87 # ---------------------------------------------------- 88 89 load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") 90 91 gazelle_dependencies() 92 93 load("//:go_deps.bzl", "gazelle_protobuf_extension_go_deps", "go_deps") 94 95 # gazelle:repository_macro go_deps.bzl%go_deps 96 go_deps() 97 98 gazelle_protobuf_extension_go_deps() 99 100 load("//deps:prebuilt_protoc_deps.bzl", "prebuilt_protoc_deps") 101 102 prebuilt_protoc_deps() 103 104 load("//deps:js_core_deps.bzl", "js_core_deps") 105 106 js_core_deps() 107 108 load("//deps:grpc_java_deps.bzl", "grpc_java_deps") 109 110 grpc_java_deps() 111 112 load("//deps:closure_deps.bzl", "closure_deps") 113 114 closure_deps() 115 116 load("//deps:grpc_js_deps.bzl", "grpc_js_deps") 117 118 grpc_js_deps() 119 120 load("//deps:scala_deps.bzl", "scala_deps") 121 122 scala_deps() 123 124 load("//deps:nodejs_deps.bzl", "nodejs_deps") 125 126 nodejs_deps() 127 128 load("//deps:grpc_node_deps.bzl", "grpc_node_deps") 129 130 grpc_node_deps() 131 132 load("//deps:grpc_web_deps.bzl", "grpc_web_deps") 133 134 grpc_web_deps() 135 136 load("//deps:ts_proto_deps.bzl", "ts_proto_deps") 137 138 ts_proto_deps() 139 140 # ---------------------------------------------------- 141 # Python 142 # ---------------------------------------------------- 143 144 load("@rules_python//python:repositories.bzl", "py_repositories") 145 146 py_repositories() 147 148 # ---------------------------------------------------- 149 # Java 150 # ---------------------------------------------------- 151 152 load( 153 "@rules_jvm_external//:defs.bzl", 154 "maven_install", 155 ) 156 load( 157 "@io_grpc_grpc_java//:repositories.bzl", 158 "IO_GRPC_GRPC_JAVA_ARTIFACTS", 159 "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", 160 "grpc_java_repositories", 161 ) 162 load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps") 163 164 protobuf_deps() 165 166 maven_install( 167 name = "maven", 168 artifacts = IO_GRPC_GRPC_JAVA_ARTIFACTS + PROTOBUF_MAVEN_ARTIFACTS, 169 generate_compat_repositories = True, 170 # TODO(pcj): why does pinning of this repository cause such problems? 171 # example: no such package '@com_google_errorprone_error_prone_annotations_2_18_0//file': The repository '@com_google_errorprone_error_prone_annotations_2_18_0' could not be resolved: Repository '@com_google_errorprone_error_prone_annotations_2_18_0' is not defined and referenced by '@maven//:com_google_errorprone_error_prone_annotations_2_18_0_extension' 172 # maven_install_json = "//:maven_install.json", 173 override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS, 174 repositories = ["https://repo.maven.apache.org/maven2/"], 175 strict_visibility = True, 176 ) 177 178 load("@maven//:compat.bzl", "compat_repositories") 179 180 compat_repositories() 181 182 grpc_java_repositories() 183 184 # # ---------------------------------------------------- 185 # # Golang 186 # # ---------------------------------------------------- 187 188 load("//deps:go_core_deps.bzl", "go_core_deps") 189 190 go_core_deps() 191 192 # ---------------------------------------------------- 193 # Scala 194 # ---------------------------------------------------- 195 196 load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config") 197 198 scala_config( 199 enable_compiler_dependency_tracking = True, 200 scala_version = "2.12.18", 201 ) 202 203 load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories") 204 205 scala_repositories() 206 207 register_toolchains( 208 "//toolchain/scala:default_toolchain", 209 ) 210 211 # ---------------------------------------------------- 212 # Scala/Maven 213 # ---------------------------------------------------- 214 215 # bazel run @maven_scala//:pin, but first comment out the "maven_install_json" 216 # (put it back once pinned again) 217 maven_install( 218 name = "maven_scala", 219 artifacts = [ 220 "com.thesamet.scalapb:lenses_2.12:0.11.5", 221 "com.thesamet.scalapb:scalapb-json4s_2.12:0.12.0", 222 "com.thesamet.scalapb:scalapb-runtime_2.12:0.11.5", 223 "com.thesamet.scalapb:scalapb-runtime-grpc_2.12:0.11.5", 224 "com.thesamet.scalapb:scalapbc_2.12:0.11.5", 225 "io.grpc:grpc-api:1.40.1", 226 "io.grpc:grpc-core:1.40.1", 227 "io.grpc:grpc-netty:1.40.1", 228 "io.grpc:grpc-protobuf:1.40.1", 229 "io.grpc:grpc-stub:1.40.1", 230 "org.json4s:json4s-core_2.12:4.0.3", 231 ], 232 fetch_sources = True, 233 maven_install_json = "//:maven_scala_install.json", 234 repositories = ["https://repo1.maven.org/maven2"], 235 ) 236 237 load("@maven_scala//:defs.bzl", pinned_maven_scala_install = "pinned_maven_install") 238 239 pinned_maven_scala_install() 240 241 # ---------------------------------------------------- 242 # Scala/Akka 243 # ---------------------------------------------------- 244 245 # bazel run @maven_akka//:pin, but first comment out the "maven_install_json" 246 # (put it back once pinned again) 247 maven_install( 248 name = "maven_akka", 249 artifacts = [ 250 "com.lightbend.akka.grpc:akka-grpc-codegen_2.12:2.1.3", 251 "com.lightbend.akka.grpc:akka-grpc-runtime_2.12:2.1.3", 252 ], 253 fetch_sources = True, 254 maven_install_json = "//:maven_akka_install.json", 255 repositories = ["https://repo1.maven.org/maven2"], 256 ) 257 258 load("@maven_akka//:defs.bzl", pinned_maven_akka_install = "pinned_maven_install") 259 260 pinned_maven_akka_install() 261 262 # ---------------------------------------------------- 263 # Closure 264 # ---------------------------------------------------- 265 266 load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_dependencies", "rules_closure_toolchains") 267 268 rules_closure_toolchains() 269 270 rules_closure_dependencies( 271 omit_rules_python = True, 272 ) 273 274 # ---------------------------------------------------- 275 # NodeJS 276 # ---------------------------------------------------- 277 278 load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") 279 280 build_bazel_rules_nodejs_dependencies() 281 282 load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories") 283 284 node_repositories() 285 286 # ---------------------------------------------------- 287 # proto_repositories 288 # ---------------------------------------------------- 289 290 load("//:proto_repositories.bzl", "proto_repositories") 291 292 proto_repositories() 293 294 # ---------------------------------------------------- 295 # @aspect_rules_ts 296 # ---------------------------------------------------- 297 load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") 298 299 rules_ts_dependencies( 300 # This keeps the TypeScript version in-sync with the editor, which is typically best. 301 ts_version_from = "//:package.json", 302 ) 303 304 # ---------------------------------------------------- 305 # @rules_nodejs 306 # ---------------------------------------------------- 307 308 load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") 309 310 nodejs_register_toolchains( 311 name = "node", 312 node_version = DEFAULT_NODE_VERSION, 313 ) 314 315 load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock") 316 317 npm_translate_lock( 318 name = "npm_ts_proto", 319 generate_bzl_library_targets = True, 320 npmrc = "//:.npmrc", 321 pnpm_lock = "//:pnpm-lock.yaml", 322 verify_node_modules_ignored = "//:.bazelignore", 323 ) 324 325 load("@npm_ts_proto//:repositories.bzl", npm_ts_proto_repositories = "npm_repositories") 326 327 npm_ts_proto_repositories()