Bazel
summary
Bazel compiles anything with hermetic reproducible caching so repeated runs do nothing and remote/external caches or a build farm cut compile time dramatically; Google runs roughly 600 parallel jobs against a mono‑repo and teams gate toolchains with Starlark (restricted Python) and Java core. Recommended practices: one source/one header/one rule, include‑what‑you‑use, package visibility and layering_check. Tooling: Buildifier, Gazelle, Bazelisk for pinned versions, CMake/third‑party rule wrappers, remote cache/Redis or large AWS instances for heavy builds.
AI-written summary · about
chapters (31)
- 0:00Introduction
- 0:10What is Bazel
- 1:57Why use Bazel
- 5:28History of build systems
- 7:15Graphing and hashing
- 10:28Caching and execution
- 15:16Bazel and C++
- 20:26Querying and visibility
- 23:25Include what you use
- 25:57Build file structure
- 32:36Rule attributes
- 35:58Complex query expressions
- 37:15Rule tagging and settings
- 40:12Bazelrc configuration
- 45:22Asan mode configuration
- 47:20Config settings
- 50:27Test attributes
- 52:26Advanced querying
- 56:41Reverse dependencies
- 59:30Querying for specific rules
- 1:06:43Buildifier and Gazelle
- 1:08:49Handling external code
- 1:10:53CMake integration
- 1:12:35Configure and make
- 1:14:12Toolchains
- 1:18:30Bazel Central Registry
- 1:19:31IDE integration
- 1:20:53Compile commands extraction
- 1:22:07Build farm setup
- 1:27:13Starlark playground
- 1:28:43CI configuration








