Bazel cycle in dependency graph parse. requirements_by_platform for Among other things, they allow Bazel to interact with other package management systems while also respecting the dependency graph built out of Bazel modules. requirements_by_platform for Oct 30, 2025 · Skyframe is the evaluation and incrementality model of Bazel. Bazel query how-to This is a quick tutorial to get you started using Bazel's query language to trace dependencies in your code. On each instance of Bazel server, Skyframe stores the dependency graph constructed from the previous runs of the Analysis phase. C++ use cases Configuring C++ toolchains Dependency graphs Use labels to reference targets Migrate Ready to move your project to Bazel? Our migration guides show you how. While task-based build systems are good step above build scripts, they give too much power to individual engineers by letting them define their own tasks. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Dependency graph is disabled Dependency graph has not been enabled by an organization owner or a user with admin permissions for this repository. This can be reported to bazelbuild/bazel upstream, but in general, I very much doubt that adding support for cycles is something that can be easily supported in bazel itself. Jan 25, 2017 · Description of the problem / feature request / question: query documentation says dependency graphs "should" be acyclic. optional experimental_target_platforms – (list [str]) (default []) NOTE: This will be removed in the next major version, so please consider migrating to bzlmod and rely on pip. ) In gRPC 1. bazel file: bazel_dep(name = "cython", version = "3. Aug 28, 2024 · Troubleshooting common Bazel issues with the build log 28 August 2024 troubleshooting, build-log, bazel Troubleshooting common Bazel issues with the build log # The build log is a treasure trove of information when it comes to debugging Bazel builds. In some cases, it is useful to query the Action Graph on Skyframe. bazel file, and then repeatedly requests any dependency's MODULE. What version of Go are you using (go version)? $ go version 1. New docs: The documentation for Bzlmod on bazel. proto files. If you don't have one handy, here's a tiny workspace you can use: May 16, 2021 · I want to get mutual dependencies of all dependencies of a target, to provide this information to a binary (for static analysis). Syntax Feb 27, 2024 · It seems using genquery on any Rust targets leads to failures due to a cycle in the dependency graph. Oct 30, 2025 · This page covers artifact-based build systems and the philosophy behind their creation. 15. May 27, 2024 · This are the strategies I use to trace a . Bugs: what's the simplest, easiest way to rep Bazel uses those statements to create the project’s dependency graph, which enables accurate incremental builds. The diff below can be used to repro the issue and get the output that follows. Nov 18, 2015 · TensorFlow Build issue with Bazel (Error: cycle in dependency graph) #623 New issue Closed Oct 30, 2025 · This page covers how to get started using Bazel's query language to trace dependencies in your code. ERROR: @io_bazel_rules_go//:go_context_data: cycle in dependency graph #130 Oct 30, 2025 · It is an error if there is a cycle in the dependency graph of targets. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Oct 30, 2025 · Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. So as to avoid any extra dependencies OR to detect if I am missing some dependency. Artifact-based build systems have a small number of tasks defined by the system that engineers can configure in Dec 4, 2018 · ERROR: /root/tensorflow/tensorflow/lite/BUILD:202:1: in cc_library rule //tensorflow/lite:string_util: cycle in dependency graph #24141 Closed terryaic opened this issue on Dec 4, 2018 · 2 comments Browse Bazel modules and versionsTo start using this module, make sure you have set up Bzlmod according to the user guide, and add the following to your MODULE. bcr. experimental_target_platforms ¶: (optional list of string, default []) A list of platforms that we will generate the conditional dependency graph for cross platform wheels by parsing the wheel metadata. java, C. The algorithms used by the query language are intended for use in acyclic Jan 5, 2022 · Continue to help good content that is interesting, well-researched, and useful, rise to the top! To gain full voting privileges, Jun 10, 2024 · A dependency attribute with a default value creates an implicit dependency. Nov 11, 2015 · Hi, I failed to build bazel from source using GCC which is not installed as /usr/bin/gcc. 87. Oct 30, 2025 · The previous sections described packages, targets and labels, and the build dependency graph abstractly. Get the sample project Next, retrieve the sample app from Bazel's Examples repository by running the following in your command-line tool of choice: Bazel rules for running uv. 1 and B 1. I won't go into the details of that MODULE. /usr/bi Dec 10, 2024 · Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message Browse Bazel modules and versionsTo start using this module, make sure you have set up Bzlmod according to the user guide, and add the following to your MODULE. It has several benefits. bazel file for that sub package? Bazel 使用这些语句创建项目的依赖关系图,从而实现准确的增量构建。 如需直观呈现示例项目的依赖项,您可以在工作区根目录下运行以下命令,生成依赖关系图的文本表示形式: Mar 4, 2024 · It efficiently determines the project’s dependency graph, which means Bazel understands how different parts of your project depend on each other. Suppose you have the following dependency graph: Bazel query language expressions operate over the build dependency graph, which is the graph implicitly defined by all rule declarations in all BUILD files. Both types of visibility help other developers distinguish between your library's public API and its implementation details, and help enforce structure as your workspace grows. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Jun 7, 2018 · For Go programs that should not or cannot run protoc through Bazel (for example, because their protos have import prefixes that Bazel doesn't understand), we'll provide go_library rules, built from . Private attributes and implicit dependencies A dependency attribute with a default value creates an implicit dependency. pb. Feb 3, 2024 · Directed Acyclic Graph Directed Acyclic Graphs do not have any cycles. Let‘s visualize our sample project’s dependencies. For instance – Bzlmod, the new external dependency subsystem, does not directly work with repo definitions. Oct 30, 2025 · To perform module resolution, Bazel starts by reading the root module's MODULE. You can get help by typing bazel help query or bazel help cquery on the command line. 2 etc are Bazel modules; you can think of each one as a MODULE. It lets you visualize the dependency graph, find out why a certain module or a version of a module is present in the graph, view the repo definitions backing modules, inspect usages of module extensions and repos they generate, among other Bazel query language expressions operate over the build dependency graph, which is the graph implicitly defined by all rule declarations in all BUILD files. A target's transitive dependencies are those targets upon which it depends via a path ERROR: @io_bazel_rules_go//:go_context_data: cycle in dependency graph #130 Oct 30, 2025 · It is an error if there is a cycle in the dependency graph of targets. This blog provides a detailed, developer-centric explanation of how Bazel works under the hood, focusing specifically on three core pillars of its power: dependency graphs, caching mechanisms, and remote execution. bazel can have several downsides and unintended side effects if not managed carefully: Duplication: releasing a new version of a module typically involves both incrementing the version in Jun 13, 2023 · The other binary can then locate the py_binary relative to the source directory. Bazel query language expressions operate over the build dependency graph, which is the graph implicitly defined by all rule declarations in all BUILD files. It looks like test/e2e is a sub package of e2e. Bazel lets you see a graph of your build dependencies. 3") awesome-bazel A curated list of Bazel rules, tooling and resources. This section describes the concrete syntax used to define a package. To debug that I want to compare maven dependency:tree to bazel's dependency tree. Bazel starts from the root module -- that is, the project you're working on. Oct 30, 2025 · The depends upon relation induces a Directed Acyclic Graph (DAG) over targets, and it is called a dependency graph. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Bazel query language expressions operate over the build dependency graph, which is the graph implicitly defined by all rule declarations in all BUILD files. A module must have a MODULE. Let’s visualize our sample project’s dependencies. Feb 27, 2024 · Looking through internal channels, --experimental_skip_ttvs_for_genquery should be the fix, however it is not enabled by default for Bazel; is there a reason for it? @scentini I'm gonna close this issue out since the issue is fixed and there's now regression testing for it. 7, x86_64 Any other potentially useful information about your toolchain Oct 30, 2025 · When is the implementation function executed? If the repository is declared as local then change in a dependency in the dependency graph (including the WORKSPACE file itself) will cause an execution of the implementation function. 11. It also describes the output formats bazel query supports. graph", version = "1. The implementation function can be restarted if a dependency it requests is missing. This rule is especially important for Dependency Graphs because building two packages that depend on each other can cause problems at either Build Time or Runtime (depending on the language and build tool). For instance a <-> b and a <-> c cannot be listed as two separate cycles. As this would prevent users from installing bazel, this is release blocking. ko file back to its Bazel target and dependencies 1. 1") Because we use Bazel at Trunk. 12. 1. Out-of-Disk Space Errors # When Bazel runs out of disk Jan 5, 2022 · 循环依赖:循环依赖就是循环引用,就是两个或多个bean互相之间持有对方。比如beanA引用beanB,beanB引用beanA,当我们实例化beanA的时候发现beanB作为beanA的成员对象出现了,那么我们就可能在实例化beanA的中间需要先实例化beanB,然后完成beanB的实例化之后,才能完成beanA的实例化,可惜的是beanB中也引用了 Possible Transitive Dependency Issue while building P4Runtime (Cycle Detected Error) : r/bazel r/bazel Current search is within r/bazel Remove r/bazel filter and expand search to all of Reddit Oct 30, 2025 · Instead, it builds a dependency graph from modules, runs extensions on top of the graph, and defines repos accordingly. An example use case would be: Run bazel build //target_a Run bazel build //target_b Sep 29, 2023 · Maybe something involved with the hjar. Mar 9, 2023 · The Bazel rules expose each direct dependency as a "label" so you can include it in the deps of the code that imports from that dependency, bringing the external libraries into your dependency graph. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects. One prevalent example of such a circular dependency is between rules_go and gazelle. For example, if a source file is changed, Bazel knows which binaries rely on this file and, therefore, need to be rebuilt. 0): Bazel now supports a new command that allows the user to inspect the external dependency graph, and look at modules, repos, and extensions in detail. In this post, we'll explore common issues and how to identify them using the build log. Nov 13, 2024 · What is Bazel Query? What is a Bazel Query? It’s a feature that allows exploring and analyzing the project’s build graph within the Bazel ecosystem. Jan 30, 2024 · Sample Workspace Structure Critical Concepts in Bazel’s Process Action Graph: This is a Direct Acyclic Graph (DAG) that represents dependency relations between targets. In Maven Central, compile scope normally behaves as exports in Bazel as hjars aren't available in Gradle/Maven (see also #147), and runtime scope is like Bazel's runtime_deps. Mar 25, 2025 · With our vendored copy acting as a proper Bazel module, Bzlmod ensured it was used throughout the dependency graph, including in the bazel_tools module. Nov 26, 2024 · Multiple previous points mentioned how monorepos facilitates wider changes in the codebase, usually touching things deep into the dependency graph. bazel file from a Bazel registry until it discovers the entire dependency graph. Target visibility Target Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. . bazel file at its repo root, next to the WORKSPACE file. It could help you debug things, but honestly it's just really cool to see what your build is doing. Is there any way to get dependency tree for a bazel target? The dependency graph is a key feature that makes Bazel an ideal choice for large-scale projects with thousands of interrelated modules and microservices. Bazel Query (Most Direct) aquery for Precise Dependency Graphs bazel aquery //path/to:your_target --output=graph This command will generate a graph visualization of all the actions (including compilation) that contribute to the your_target build You can visually inspect the graph or process it with a Jan 16, 2025 · Bazel modules can have circular dependencies While repositories cannot have circular definitions, and BUILD targets can't have circular dependencies, Bazel modules can have circular dependencies. 1") Oct 30, 2025 · This page answers some frequently asked questions about external dependencies in Bazel. Contribute to bazel-contrib/rules_uv development by creating an account on GitHub. It lets you visualize the dependency graph, find out why a certain module or a version of a module is present in the graph, view the repo definitions backing modules, inspect usages of module extensions and repos they generate, among other functions. bazel of the root module. go files for these dependencies. Sep 27, 2019 · There in runtime I am facing some issues. If both files exist, BUILD. For example: A target A depends upon a target B if B is needed by A at build or execution time. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Warning: If a dependency participates in multiple cycles, all of those cycles must be collapsed down to one. 0, provides a range of tools to help the user understand their external dependency graph when Bzlmod is enabled. Bazel introduces an advanced local caching mechanism that avoids redundant work during builds. Once enabled, you can track this repository’s dependencies. Note: The BUILD file can be named either BUILD or BUILD. In fact, in the context of builds, there are two dependency graphs, the graph of actual dependencies and the graph of declared dependencies. Aug 28, 2020 · I’m not very familiar with Bazel itself, but, reading through the README, it recommends that you have a BUILD. An example use case would be: Run bazel build //target_a Run bazel build Jul 24, 2023 · mod command (available in 6. bazel file, since newer protobuf versions now contain their own. To visualize dependency graphs, the tool called Graphviz is used, which you can download in order to follow along. com if this is a bug A Maven dependency graph generator for Bazel. May 12, 2025 · ‍ This ensures you're testing both direct and transitive consumers of the dependency — catching real issues without wasting CI cycles on unrelated code. 3. Software engineers use Bazel Queries to better understand the relationships between dependency charts and achieve better build times and better debugging. This will The depends upon relation induces a Directed Acyclic Graph (DAG) over targets, and it is called a dependency graph. Oct 30, 2025 · Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. By definition, every package contains a BUILD file, which is a short program. bazel file for each pkg that contains go code. bazel file: bazel_dep(name = "patchelf", version = "0. bazel How should I version a Bazel module? Setting version with the module directive in the source archive MODULE. The depends upon relation induces a Directed Acyclic Graph (DAG) over targets, and it is called a dependency graph. apache-airflow for instance has dependency cycles with a number of its optional dependencies, which means those optional dependencies must all be a part of the airflow cycle. diff --git a/cra Feb 13, 2018 · Notifications You must be signed in to change notification settings Fork 712 Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. Oct 30, 2025 · Bazel takes a BUILD file as input and uses the file to create a graph of dependencies and to derive the actions that must be completed to build intermediate and final software outputs. 1") Skyframe is the evaluation and incrementality model of Bazel. Nov 15, 2022 · Bazel's query / cquery / aquery commands Bazel provides 3 different query modes (query, cquery and aquery) that allow users to query the target graph, configured target graph and action graph respectively. 1-homebrew Does this issue reproduce with the latest releases of all the above? Yes for the first two, but I didn't check with the latest Bazel. A target's direct dependencies are those other targets reachable by a path of length 1 in the dependency graph. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Sep 24, 2021 · What version of rules_go are you using? 8e968b5fcea1d2d64071872b12737bbb5514524ee5f0a4f54f5920266c261acb What version of gazelle are you using? 62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f What version of Bazel are yo May 27, 2025 · Bazel complains about a cycle in the dependency graph when I try to use the all-in-one target and provide it to a oci_image Sep 4, 2025 · Build systems like Bazel require the dependency graph to be a directed graph without cycles (commonly known as Directed Acyclic Graph, or DAG) because cycles would lead to infinite build loops and prevent the system from knowing which component to build first. 7. MODULE. 4 Does this issue reproduce with the latest release? Yes What operating system and processor architecture are you using (go env)? go Bazel 使用这些语句创建项目的依赖关系图,从而实现准确的增量构建。 如需直观呈现示例项目的依赖项,您可以在工作区根目录下运行以下命令,生成依赖关系图的文本表示形式: Mar 4, 2024 · It efficiently determines the project’s dependency graph, which means Bazel understands how different parts of your project depend on each other. If true, Bazel ignores `bazel_dep` and `use_extension` declared as `dev_dependency` in the MODULE. 1. boringssl dependency cycle (followup) #1330 Open abhinavsingh1196 opened this issue on Feb 23 · 1 comment abhinavsingh1196 commented on Feb 23 • Oct 30, 2025 · This page covers Bazel's two visibility systems: target visibility and load visibility. The mod command, introduced in Bazel 6. If there's a cycle in the sources B. Is it possible that you need to add another BUILD. This gives developers more confidence and makes it easier to spread the knowledge about the system's deeper workings to the broader team. bazel if it's not the root module regardless of the value of this flag. A Bazel module is a Bazel project that can have multiple versions, each of which publishes metadata about other modules that it Feb 27, 2017 · This file yields the following dependency graph: Notice how the proto_library provide structure for both Java and C++ code generators, and how there's only one java_proto_library even though there multiple . bazel takes precedence over BUILD. Oct 30, 2025 · Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. Browse Bazel modules and versionsTo start using this module, make sure you have set up Bzlmod according to the user guide, and add the following to your MODULE. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Feb 3, 2021 · What version of Bazel are you using? bazel 3. build has been reorganized. May 5, 2025 · In order to reduce confusion and prioritize accurate information, dependency graph now has deduplication logic with well-defined precedence rules: Dependency graph only displays one instance of each manifest file. To execute a query while ignoring errors such as Dec 18, 2019 · That is, there are no cycles allowed within a Bazel dependency graph. bazel file: bazel_dep(name = "boost. Additionally, two SemVer versions a and b compare a < b iff the same holds when they're compared as Bazel module versions. View the Project on GitHub jin/awesome-bazel Awesome Bazel {Fast, Correct} - Choose two Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. How can I get Oct 30, 2025 · The mod command provides a range of tools to help the user understand their external dependency graph. bazel. io, we've started to take advantage of these dependency graphs by creating a parallel mode in our merge process. Dec 20, 2016 · This problem can also be tested locally by running //src/test/shell/bazel:bazel_boostrap_distfile_test, a manual test. A target's transitive dependencies are those targets upon which it depends via a path of any length through the graph. bazel file: bazel_dep(name = "ninja", version = "1. then below that there is an example of making a py_binary a data dependency of another object. Contribute to menny/mabel development by creating an account on GitHub. 27. Bazel is an artifact-based build system. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Apr 30, 2023 · For some tools that are NOT conforming to standards (such as bazel), having min-airflow-version for those providers causes circular dependency (even though technically dependencies in PyPI can - and often are - circular, because dependencies in Python are not DAG and can contain cycles. Most of the time, the two graphs are so similar that this distinction need not be made, but it is useful for the discussion below. For simplicity's When testing CMake 3. Warning: If a dependency participates in multiple cycles, all of those cycles must be collapsed down to one. Target visibility Target Aug 28, 2024 · Troubleshooting common Bazel issues with the build log 28 August 2024 troubleshooting, build-log, bazel Troubleshooting common Bazel issues with the build log # The build log is a treasure trove of information when it comes to debugging Bazel builds. To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: What version of Go are you using (go version)? $ go version 1. the ZERO_CHECK seems to generate a cyclic dependency, which was not the case up to CMake 3. 4 Does this issue reproduce with the latest release? Yes What operating system and processor architecture are you using (go env)? go Feb 16, 2023 · Notice the cycle in dependency graph: target depends on an already-reported cycle coming from bazel. By default, Bazel then selects one version of each module to use. It is implicit because it’s a part of the target graph that the user doesn’t specify it in a BUILD file. Mar 29, 2025 · Optimize your build performance by pinpointing dependency bottlenecks With a solid understanding of bazel query in your toolbox, you'll not only be able to maintain control over your Bazel-managed codebase as it grows, you'll be able to build more advanced workflows on top of it that help you get the most out of this incredibly useful tool. For a language details and --output flag details, please see the reference manuals, Bazel query reference and Bazel cquery reference. Jan 22, 2020 · ATTENTION! Please read and follow: if this is a question about how to build / test / query / deploy using Bazel, or a discussion starter, send it to bazel-discuss@googlegroups. How can we compare these dependencies (maven vs bazel). It is implicit because it's a part of the target graph that the user doesn't specify it in a BUILD file. For practical use cases, see the Bazel Query How-To. Version resolution The diamond dependency problem is a staple in the versioned dependency management space. 58. bazel-xcode / PodToBUILD Notifications You must be signed in to change notification settings Fork 68 Star 319 Code Pull requests Actions Security Insights Actions Oct 30, 2025 · Overview of the system Bazel's external dependency system works on the basis of Bazel modules, each of which is a versioned Bazel project, and repositories (or repos), which are directory trees containing source files. Build dependency graphs should be acyclic. java, the usual solution is to include them all in the same java_library: Nov 6, 2025 · This page is the reference manual for the Bazel Query Language used when you use bazel query to analyze build dependencies. Jun 17, 2015 · Reposted from Kristina Chodorow's blog. Bazel supports This directed acyclic graph over targets is called the "target graph" or "build dependency graph", and is the domain over which the Bazel Query tool operates. Environment Modules is adopted to manage multiple versions of software, coexisting on our platform. In other words, Bazel Query is a tool that helps software engineers see how different Warning: If a dependency participates in multiple cycles, all of those cycles must be collapsed down to one. however this example has a circular dependency and can not be built here is the code below Bazel query language expressions operate over the build dependency graph, which is the graph implicitly defined by all rule declarations in all BUILD files. What operating system and processor architecture are you using? macOS 10. Aug 26, 2024 · I am trying to figure out how to get bazel to walk the dependency graph of a target so I can extract a list of all the headers to feed to doxygen for documentation. Oct 30, 2025 · This tutorial uses Git for source control, so for best results, install Git as well. If you want to go even further and narrow the scope, Bazel lets you control the depth of the dependency graph. java, and D. 26. You can also use visibility when deprecating a public API to allow current users while denying new ones. To try it out, you'll need a project that uses Bazel to build. This is important when attempting to create coherent builds, since cycles in the build tree imply the need for some kind of heuristic to break the cycle (or let the cycle break the build). To visualize the sample project's dependencies, you can generate a text representation of the dependency graph by running this command at the workspace root: Aug 24, 2018 · Bazel does not allow cycles in the action graph. Out-of-Disk Space Errors # When Bazel runs out of disk GitHub is where people build software. To execute a query while ignoring errors such as missing targets, use the Jun 20, 2023 · Cycles in a Dependency Graph BQL expects the build dependency graphs to be acyclic (ie free of any cycles/loops) and you should try to avoid cyclic dependencies. Mar 20, 2024 · Is the BUILD file itself included in the dependency graph? If I have a rule R that output X depends on inputs A, B, C and tool T with command-line options Topt that reference some other library L, In the example dependency graph above, A 1. 0 the grpc-core artifact had part of its contents moved into a new grpc-util artifact. Each module can specify some tags for module extensions; here some are specified for the extension "maven", and some are specified for "cargo". I defined a rule that loop through direct dependencies. Aug 13, 2020 · Description of the problem / feature request: When target A depends on target B and target B has visibility attribute pointing to target A Bazel sees it as the dependency loop and errors out. Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. A Bazel module is a Bazel project that can have multiple versions, each of which publishes metadata about other modules that it depends on. 4 pip_parse supports fixing multiple cycles simultaneously, however cycles must be distinct. Nov 5, 2024 · Detect Cycle in a Directed Graph 判断一个图是否有环,有环图如下: 这里唯一注意的就是,这是个有向图, 边组成一个环,不一定成环,因为方向可以不一致。 这里就是增加一个 数组 保存当前已经访问过的路径信息 recStack []; 而visited []数组是访问过的点的信息,两者作用是不一样的。 知道这个知识点 Oct 30, 2025 · Bazel analyzes this dependency graph by calling an implementation function of the corresponding rule (in this case "java_library") for every target in the above example. In general, these go_libraries should not be mixed with the go_proto_libraries above. 1 on windows, our project (C++ static library + pybind11 wrapper and python wheel generation) fails to configure. Instead, it builds a dependency graph from modules, runs extensions on top of the graph, and defines repos accordingly. The three kinds of repos -- the main repo (which is the source tree you‘re working in), the repos representing transitive dependency modules, and the repos created by module extensions Oct 30, 2025 · Any valid SemVer version is a valid Bazel module version. It is important to understand that this graph is somewhat abstract, and does not constitute a complete description of how to perform all the steps of a build. bazel file. 18. In other words, Bazel Query is a tool that helps software engineers see how different Bazel uses those statements to create the project's dependency graph, which enables accurate incremental builds. It's allowed us to merge several PRs together (when they don't interact: Front-end vs Back-end vs docs, etc). 0. It uses a human-readable, high-level build language. In some cases, it is useful to query the Action Graph currently on Skyframe. Note that, those dev dependencies are always ignored in the MODULE.