Skip to content

Commit 6b6db21

Browse files
committed
analysis: add Bazel toolchain analysis
1 parent 3f46926 commit 6b6db21

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

toolchain-analysis/bazel.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Bazel toolchain analysis
2+
3+
[Bazel](https://bazel.build/) is an open-source build and test tool similar to
4+
Make, Maven, and Gradle. It uses a human-readable, high-level build language.
5+
Bazel supports projects in multiple languages and builds outputs for multiple
6+
platforms. Bazel supports large codebases across multiple repositories, and
7+
large numbers of users.
8+
9+
## Supported platforms
10+
11+
TODO: test Bazel against currently Node.js supported platforms and toolchains
12+
(see [BUILDING.MD](https://github.com/nodejs/node/edit/master/BUILDING.md)).
13+
14+
### Unsupported platforms
15+
16+
TODO: see above
17+
18+
## Pros
19+
20+
* Easier to upgrade V8 as we don't need to rewrite build configs for V8
21+
* Compared to GN, Bazel is more widely adopted outside Chromium
22+
23+
## Cons
24+
25+
* Other dependencies will need Node.js-maintained GN build files
26+
* Currently support a limited set of platforms [^1]
27+
* V8 team can't guarantee Bazel will still be maintained if V8 stops being used
28+
at Google outside Chroumium
29+
30+
[^1]: There's a registry of community-maintained build files for popular
31+
projects. It still doesn't cover several dependenceis that Node.js needs but
32+
might be a better place to have those files instead of keeping them in Node.js
33+
itself https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/.
34+
35+
## Known ports
36+
37+
* No known open-source ports
38+
39+
40+
## Need more info
41+
42+
* Could V8 use Bazel instead of GN in their CI?
43+
44+
## Observations
45+
46+
*

0 commit comments

Comments
 (0)