Bazel Blog
blog.bazel.build · Company blog · on HN since 2017
The Bazel team at Google posts release notes and announcements for the Bazel build system, including adoption stories like Android and embedded.
What HN saysHN commenters link it for Bazel's worker protocol, the Android move to Bazel, and its embedded post explaining where Bazel fits.
23HN people shared it
10linked it in comments
31stories submitted
293story points
10 months agolast shared
2017people per year2026
Most-shared posts
- 1Android Platform Migrating to Bazel3 people · 5 points · first shared 2020 · discussion on HN
- 2Bazel Remote Build Execution3 people · 3 points · first shared 2018 · discussion on HN
- 3Bazel 1.02 people · 4 points · first shared 2019 · discussion on HN
- 4Dynamic scheduling for faster builds2 people · 3 points · first shared 2019 · discussion on HN
- 5Bazel 2.01 people · 160 points · first shared 2019 · 113 comments on HN
- 6Bazel 0.101 people · 45 points · first shared 2018 · discussion on HN
- 7Bazel for Embedded: Pigweed SDK Launches with Native Bazel Support1 people · 12 points · first shared 2024 · discussion on HN
- 8Bazel 0.121 people · 10 points · first shared 2018 · discussion on HN
- 9Bazel 0.131 people · 6 points · first shared 2018 · discussion on HN
- 10Bazel 0.211 people · 6 points · first shared 2018 · discussion on HN
- 11Bazel Stability and Semantic Versioning1 people · 4 points · first shared 2019 · discussion on HN
- 12Bazel – a multi-language build system1 people · 4 points · first shared 2018 · discussion on HN
- 13Bazel 0.151 people · 4 points · first shared 2018 · discussion on HN
- 14Bazel 3.01 people · 4 points · first shared 2020 · discussion on HN
- 15Bazel 4.01 people · 3 points · first shared 2021 · discussion on HN
What HN people wrote when they linked it
jingwen · 2018-06-18
Bazel supports persistent compilers with its worker protocol [0]. It's already supported for javac. It may be worthwhile to investigate how well zapcc can integrate with Bazel.
[0] https://blog.bazel.build/2015/12/10/java-workers.html
kaycebasques · 2024-08-08
We realize Bazel is not the right build system for every embedded project. The "Bazel for Embedded" post that came out today (we co-authored it) talks more about why we find Bazel so compelling: https://blog.bazel.build/2024/08/08/bazel-for-embedded.html
malkia · 2022-01-18
AFAIK, Soong -> Bazel - https://blog.bazel.build/2020/11/12/aosp_migrating_to_bazel.html (2020)
laurentlb · 2021-05-14
A few months ago, Android (AOSP) announced it was moving from Soong to Bazel:
https://blog.bazel.build/2020/11/12/aosp_migrating_to_bazel.html
Why would Rust in Android move to Soong? Who else is using Soong?
lioeters · 2019-11-20
Not sure if this actually answers the question, but - Bazel, the build system used at Google, creates dependency graphs (example: https://blog.bazel.build/2015/06/17/visualize-your-build.html), which I believe can be used to run tests on any code affected by a change.
jsty · 2019-04-24
Something along those lines seems to be in the works:
https://blog.bazel.build/2018/10/05/remote-build-execution.html
Promarged · 2018-03-13
> This always comes and bites us back isn't it? The whole promise of Docker was that we would be freed form these pains... But yet here we stand :(
Exactly. Using a separate build host makes builds more independent but on the other hand you'll be running images that the dev did not check.
By the way, are docker image identifiers derived from the actual contents? (Are they reproducible?)
This would suggest they are not:
> Docker images are non-reproducible: each "layer" identifier is a random hex string (and not cryptographic hash of the layer content),
Source: https://blog.bazel.build/2015/07/28/docker_build.html
peter_d_sherman · 2024-02-21
>"Starlark (formerly known as Skylark) is a language intended for use as a configuration language. It was designed for the Bazel build system, but may be useful for other projects as well."
[...]
>"Design Principles
Deterministic evaluation. Executing the same code twice will give the same results.
Hermetic execution. Execution cannot access the file system, network, system clock.
This sounds like Starlark has purposes, intent and capabilites very similar/analogous/comparable to the Nix Programming Language:
https://zero-to-nix.com/concepts/nix-language
>"Nix is a pure, functional, lazy, declarative, and reproducible [aka "deterministic"] programming language."
Starlark is used for Bazel, which is used for builds...
Nix is used for builds and to build the entirety of NixOS operating system itself...
Both are deterministic (and thus lead to reproducible builds).
So they seem to have the same purposes and intent...
It could be argued that Nix is functional whereas Starlark (apparently based on Python which is not a functional programming language) doesn't appear to be, but aside from this nuance, both would seem to implement the same general purpose and intent...
Related:
"A glimpse of the design of Skylark"
https://blog.bazel.build/2017/03/21/design-of-skylark.html
Now, I am not clear if the Nix programming language is paralellizable, or could be made paralellizable...
>"One special feature of Skylark is how it handles parallelism. In Bazel, a large build…
Ayyar · 2018-11-27
Xoogler here.
Internally as Google, you have a substantially power powerful version of Codesearch, which is semantic, i.e. it relies on actual binary artifacts produced by builds to index code. All of the code base uses Blaze ( open sourced as Bazel) to express the rules.
The version of code search here is cute, but it's still not a full blown structured semantic code search, which I really miss. Searching for and browsing code on Github feels underwhelming in comparison, because you wan't really find or explore code the way you think of it.
You can see a demo of semantic Codesearch tech externalized here at:
https://blog.bazel.build/2017/12/14/introducing-bazel-code-search.html…
http://cs.chromium.org
For example if you click on a header or a symbol, you can get proper cross references to a symbol.
https://cs.chromium.org/chromium/src/pdf/document_loader_impl.cc?dr&am…
I really wish they add structured code search to Cloud Repos, even if it comes with some heavy restrictions such you must use Bazel as a build system.
It would be a killer feature, and to my knowledge there is no equivalent to such a product. IDEs offer some similar overlapping functionality, though other code search engines still operate in terms of strings rather than actually real binary symbols ( I think Sourcegraph is trying here but that still does not seem to use some kind of accurate and structured information like you have in the code, it still seems not use…