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 / 10
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 / 10
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 / 10
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 / 10
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.
6 / 10
During a code review, Sarah asks David: 'Why are we using the ninja rule here? It seems overly complex for just compiling our C++ files.' David responds, 'We're leveraging Bazel's ability to manage dependencies and build configurations efficiently—the ninja rule offers fine-grained control over parallel builds and caching.' Which of the following best describes the primary benefit of using a ninja rule in this context?
The core benefit of using ninja within Bazel is its ability to manage dependencies and enable parallel builds. While caching can be a secondary advantage, David's response accurately captures this fundamental purpose. The question tests understanding of a common use case – optimizing build speed through parallel execution, which is precisely what the ninja rule provides.
7 / 10
In a Slack channel discussing a slow Bazel build, Alex writes: 'Let's investigate if we can improve our `build.bazel` configuration to reduce the time spent on incremental builds.' Considering this message, what is Alex most likely referring to when discussing 'incremental builds'?
Incremental builds are a critical aspect of Bazel's performance. They work by intelligently tracking file changes and only rebuilding parts of the build that have been modified since the last build – avoiding redundant computations. Alex's statement highlights this key concept, focusing on the mechanism behind reducing build times.
8 / 10
You are reviewing a PR that uses the remote_archive rule to fetch code from an external repository. The PR description states: 'This ensures consistent builds across all our CI environments by using a remote archive.' What is the primary purpose of utilizing a remote_archive in this scenario?
The remote_archive rule is designed to create a consistent build environment by providing a snapshot of external dependencies. This centralized, versioned archive ensures that all builds use the same artifacts, mitigating issues caused by variations in local environments or network connectivity – directly addressing the PR's stated goal.
9 / 10
During a standup meeting, Mark is explaining a complex Bazel build to his team. He says, 'We're using Bazel's `filegroup` rule to manage all our source files and ensure they are included in the correct build targets.' What is the main function of the filegroup rule in this context?
The filegroup rule is fundamental to organizing source code within a Bazel project. Its primary function is to group files together and define the conditions under which those files should be included in specific build targets – providing structure and control over the build process.
10 / 10
A Bazel job fails with an error message: 'Rule 'cc_library' failed because input file 'my_source.cpp' does not exist.' The build system is using the copy_if_disappears attribute to ensure that inputs are always present. What does this attribute do?
The copy_if_disappears attribute addresses potential issues with missing inputs. When a file listed as an input is absent, Bazel automatically copies it from a designated source location *before* executing the rule that depends on it – guaranteeing that the build has all necessary resources.
What will I practise in "Bazel Build System Vocabulary"?
This module focuses on Monorepo Build Systems — real workplace phrasing you'll use on the job. It contains 10 scenario-based multiple-choice questions with instant feedback.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account or sign-up required.
How many questions does this exercise have?
This module includes 10 questions. Each one gives an immediate right/wrong result plus a full explanation of the correct phrasing.
What happens if I answer a question incorrectly?
You'll see the correct answer highlighted straight away, along with a plain-English explanation of why it's right and why the other options don't fit — mistakes are part of the learning here.
Can I retry the exercise if I want a better score?
Yes — use the 'Try again' button on the results screen to reset your score and go through the questions again. There's no limit on attempts.
Who is this Monorepo Build Systems exercise for?
It's aimed at IT professionals with working English who want to sound more natural and precise around monorepo build systems — useful whether you're preparing for real conversations at work or just building confidence with the vocabulary.
Do I need an account to track my progress?
No account is needed. Your progress through the exercise is tracked locally in your browser for the current session, and you can replay the module at any time.
How is this different from reading a blog article?
This exercise is an interactive drill that tests and reinforces specific phrasing through multiple-choice questions with instant feedback, while blog articles explain concepts and vocabulary in prose. The two work well together.
Where can I find more Monorepo Build Systems exercises?
See the Monorepo Build Systems hub for more modules like this one, or browse the full Exercises page for other IT-English topics.
Can I complete this exercise on my phone?
Yes — every exercise on CoderSlingo is fully responsive and works on phones and tablets, so you can practise anywhere.