-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMODULE.bazel
More file actions
96 lines (76 loc) · 3.12 KB
/
MODULE.bazel
File metadata and controls
96 lines (76 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
module(
name = "define",
version = "0.0.1",
)
register_toolchains("//tools/bzl:python_toolchain_toolchain")
# --- Core dependencies ---
bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "rules_python", version = "2.0.0")
bazel_dep(name = "rules_go", version = "0.60.0")
bazel_dep(name = "gazelle", version = "0.50.0")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "protobuf", version = "34.1")
bazel_dep(name = "protovalidate", version = "1.2.0")
bazel_dep(name = "aspect_rules_py", version = "1.11.2")
bazel_dep(name = "rules_buf", version = "0.5.4")
bazel_dep(name = "rules_multitool", version = "1.11.1")
bazel_dep(name = "aspect_rules_lint", version = "2.5.0")
bazel_dep(name = "aspect_rules_js", version = "3.0.3")
bazel_dep(name = "rules_nodejs", version = "6.7.4")
# Transitive overrides
bazel_dep(name = "rules_android", version = "0.7.2") # Fix build breakage
bazel_dep(name = "rules_foreign_cc", version = "0.15.1") # Bazel 9 compat
bazel_dep(name = "with_cfg.bzl", version = "0.14.6") # incompatible_stop_exporting_language_modules
# --- Python toolchain ---
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
# --- Python pip dependencies (via aspect_rules_py uv) ---
pypi = use_extension("@aspect_rules_py//uv/unstable:extension.bzl", "uv")
pypi.declare_hub(hub_name = "pypi")
pypi.project(
hub_name = "pypi",
lock = "//:uv.lock",
pyproject = "//:pyproject.toml",
)
use_repo(pypi, "pypi")
# --- Go SDK ---
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.26.2")
# --- Go dependencies from go.mod ---
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//defcl/buf:go.mod")
go_deps.gazelle_override(
directives = [
"gazelle:exclude wellknownimports/google/protobuf/compiler",
],
path = "github.com/bufbuild/protocompile",
)
use_repo(go_deps, "build_buf_go_bufplugin", "org_golang_google_protobuf")
# --- Buf toolchain ---
buf = use_extension("@rules_buf//buf:extensions.bzl", "buf")
buf.toolchains(
sha256 = "1020011cb7c2d35b545a41630c0f7ed3a78cf1c2880b1fc5ae5c663fef5ef846",
version = "v1.68.2",
)
use_repo(buf, "rules_buf_toolchains")
# --- Multitool (ruff, uv binaries) ---
multitool = use_extension("@rules_multitool//multitool:extension.bzl", "multitool")
multitool.hub(lockfile = "//tools:multitool.lock.json")
use_repo(multitool, "multitool")
# --- NodeJS ---
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
node.toolchain(node_version = "24.14.1")
# Translate the pnpm-lock.yaml file to bazel targets
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm", dev_dependency = True)
use_repo(pnpm, "pnpm")