In Bazel, the ___ file defines build targets, rules, and dependencies for a package in the repository.
The BUILD (or BUILD.bazel) file is Bazel's equivalent of a Makefile. It declares targets using rules and specifies their dependencies, source files, and build settings.
2 / 5
In Bazel's target syntax `//path/to/package:target_name`, the `//` refers to the ___.
`//` in Bazel target labels refers to the workspace root. `//src/lib:my_lib` means: from the workspace root, look in `src/lib/` directory for the `my_lib` target.
3 / 5
A ___ build guarantees that the same inputs always produce the same outputs, regardless of the machine or environment.
A hermetic build is fully isolated from the host environment — it only uses declared inputs and produces deterministic outputs. This enables reliable remote caching and reproducibility across machines.
4 / 5
Bazel uses ___ to isolate each build action, preventing it from reading files not declared as inputs.
Sandboxing creates an isolated filesystem for each build action, containing only declared inputs. This enforces hermeticity by preventing accidental dependency on undeclared files.
5 / 5
Remote Build Execution (RBE) in Bazel distributes build ___ across a cluster of worker machines.
RBE distributes individual build actions (compile a file, link a binary) across remote workers. Combined with remote caching, this drastically reduces build times for large codebases.