---
layout: documentation
title: Query how-to
---
<h1><a name="_Bazel_Query_How_To"> </a>Bazel query how-to</h1>

<p>This is a quick tutorial to get you started using Bazel's query language to trace dependencies in your code.<p/>

<p>For a language details and <code>--output</code> flag details, please see the reference manual, <a href="query.html">Bazel query reference</a>.  You can get help for Bazel query by typing <code>bazel help query</code>.<p/>

<p>To execute a query while ignoring errors such as missing targets, use the <tt>--keep_going</tt> flag.</p>

<h2><a name="_Contents"> </a>  Contents </h2>

<p />
<ul>
<li> <a href="#Finding_the_Dependencies_of_a_Ru">Finding the Dependencies of a Rule</a>
</li>
<li> <a href="#Tracing_the_Dependency_Chain_bet">Tracing the Dependency Chain between Two Packages</a>
<ul>
<li> <a href="#Aside_implicit_dependencies">Aside: implicit dependencies</a>
</li>
</ul>
</li>
<li> <a href="#Reverse_Dependencies">Reverse Dependencies</a>
</li>
<li> <a href="#Miscellaneous_Uses">Miscellaneous Uses</a>
<ul>
<li> <a href="#What_exists_">What exists ...</a>
<ul>
<li> <a href="#What_packages_exist_beneath_foo_">What packages exist beneath <code>foo</code>?</a>
</li>
<li> <a href="#What_rules_are_defined_in_the_foo">What rules are defined in the <code>foo</code> package?</a>
</li>
<li> <a href="#What_files_are_generated_by_rule">What files are generated by rules in the <code>foo</code> package?</a>
</li>
<li> <a href="#What_s_the_set_of_BUILD_files_ne">What's the set of BUILD files needed to build <code>//foo</code>?</a>
</li>
<li> <a href="#What_are_the_individual_tests_th">What are the individual tests that a <code>test_suite</code> expands to?</a>
<ul>
<li> <a href="#Which_of_those_are_C_tests_">Which of those are C++ tests?</a>
</li>
<li> <a href="#Which_of_those_are_small_Medium_">Which of those are small?  Medium?  Large?</a>
</li>
</ul>
</li>
<li> <a href="#What_are_the_tests_beneath_foo_t">What are the tests beneath <code>foo</code> that match a pattern?</a>
</li>
<li> <a href="#What_package_contains_file_java_">What package contains file <code>src/main/java/com/example/cache/LRUCache.java</code>?</a>
</li>
<li> <a href="#What_is_the_build_label_for_java">What is the build label for <code>src/main/java/com/example/cache/LRUCache.java</code>?</a>
</li>
<li> <a href="#What_build_rule_contains_file_ja">What build rule contains file <code>src/main/java/com/example/cache/LRUCache.java</code> as a source?</a>
</li>
</ul>
</li>
<li> <a href="#What_package_dependencies_exist_">What package dependencies exist ...</a>
<ul>
<li> <a href="#What_packages_does_foo_depend_on">What packages does <code>foo</code> depend on? (What do I need to check out to build <code>foo</code>)</a>
</li>
<li> <a href="#What_packages_does_the_foo_">What packages does the <code>foo</code> tree depend on, excluding <code>foo/contrib</code>?</a>
</li>
</ul>
</li>
<li> <a href="#What_rule_dependencies_exist_">What rule dependencies exist ...</a>
<ul>
<li> <a href="#What_genproto_rules_does_bar_">What genproto rules does bar depend upon?</a>
</li>
<li> <a href="#Find_the_definition_of_some_JNI_">Find the definition of some JNI (C++) library that is transitively depended upon by a Java binary rule in the servlet tree.</a>
<ul>
<li> <a href="#_Now_find_the_definitions_of_all">...Now find the definitions of all the Java binaries that depend on them</a>
</li>
</ul>
</li>
</ul>
</li>
<li> <a href="#What_file_dependencies_exist_">What file dependencies exist ...</a>
<ul>
<li> <a href="#What_s_the_complete_set_of_Java_">What's the complete set of Java source files required to build QUX?</a>
</li>
<li> <a href="#What_is_the_complete_set_of_Java">What is the complete set of Java source files required to build QUX's tests?</a>
</li>
</ul>
</li>
<li> <a href="#What_differences_in_dependencies">What differences in dependencies between X and Y exist ...</a>
<ul>
<li> <a href="#What_targets_does_foo_depend_on_">What targets does <code>//foo</code> depend on that <code>//foo:foolib</code> does not?</a>
</li>
<li> <a href="#What_C_libraries_do_the_foo_test">What C++ libraries do the <code>foo</code> tests depend on that the <code>//foo</code> production binary does <em>not</em> depend on?</a>
</li>
</ul>
</li>
<li> <a href="#Why_does_this_dependency_exist_">Why does this dependency exist ...</a>
<ul>
<li> <a href="#Why_does_bar_depend_on_groups">Why does <code>bar</code> depend on <code>groups2</code>?</a>
</li>
<li> <a href="#Show_me_a_path_from_docker_updater">Show me a path from <code>docker/updater:updater_systest</code> (a <code>py_test</code>) to some <code>cc_library</code> that it depends upon:</a>
</li>
<li> <a href="#Why_does_library_photos_fronten">Why does library <code>//photos/frontend:lib</code> depend on two variants of the same library <code>//third_party/jpeglib</code> and <code>//third_party/jpeg</code>?</a>
</li>
</ul>
</li>
<li> <a href="#What_depends_on_">What depends on  ...</a>
<ul>
<li> <a href="#What_rules_under_bar_depend_o">What rules under bar depend on Y?</a>
</li>
</ul>
</li>
<li> <a href="#How_do_I_break_a_dependency_">How do I break a dependency ...</a>
<ul>
<li> <a href="#What_dependency_paths_do_I_have_">What dependency paths do I have to break to make <code>bar</code> no longer depend on X?</a>
</li>
</ul>
</li>
<li> <a href="#Misc_">Misc ...</a>
<ul>
<li> <a href="#How_many_sequential_steps_are_th">How many sequential steps are there in the <code>ServletSmokeTests</code> build?</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p />
<h2><a name="Finding_the_Dependencies_of_a_Ru"> </a> Finding the Dependencies of a Rule </h2>
<p />
To see the dependencies of <code>//src/main/java/com/example/base:base</code>, use the <code><b>deps</b></code> function in bazel query:
<p />
<pre>
    $ <kbd>bazel query "deps(src/main/java/com/example/base:base)"</kbd>
    //resources:translation.xml
    //src/main/java/com/example/base:AbstractPublishedUri.java
    <var>...</var>
</pre>
<p />
  This is the set of all targets required to build <code>//src/main/java/com/example/base:base</code>.
<p />
<h2><a name="Tracing_the_Dependency_Chain_bet"> </a> Tracing the Dependency Chain between Two Packages </h2>
<p />
The library <code><b>//third_party/zlib:zlibonly</b></code> isn't in the BUILD file for <code>//src/main/java/com/example/base</code>, but it is an indirect dependency. How can we trace this dependency path?  There are two useful functions here: <code>allpaths</code> and <code>somepath</code>
<p />
<pre class="prettyprint">
$ <kbd>bazel query "somepath(src/main/java/com/example/base:base, third_party/zlib:zlibonly)"</kbd>
//src/main/java/com/example/base:base
//translations/tools:translator
//translations/base:base
//third_party/py/MySQL:MySQL
//third_party/py/MySQL:_MySQL.so
//third_party/mysql:mysql
//third_party/zlib:zlibonly
$ <kbd>bazel query "allpaths(src/main/java/com/example/common/base:base, third_party/...)"</kbd>
  <var>...many errors detected in BUILD files...</var>
//src/main/java/com/example/common/base:base
//third_party/java/jsr166x:jsr166x
//third_party/java/sun_servlet:sun_servlet
//src/main/java/com/example/common/flags:flags
//src/main/java/com/example/common/flags:base
//translations/tools:translator
//translations/tools:aggregator
//translations/base:base
//tools/pkg:pex
//tools/pkg:pex_phase_one
//tools/pkg:pex_lib
//third_party/python:python_lib
//translations/tools:messages
//third_party/py/xml:xml
//third_party/py/xml:utils/boolean.so
//third_party/py/xml:parsers/sgmlop.so
//third_party/py/xml:parsers/pyexpat.so
//third_party/py/MySQL:MySQL
//third_party/py/MySQL:_MySQL.so
//third_party/mysql:mysql
//third_party/openssl:openssl
//third_party/zlib:zlibonly
//third_party/zlib:zlibonly_v1_2_3
//third_party/python:headers
//third_party/openssl:crypto
</pre>
<p />
<h3><a name="Aside_implicit_dependencies"> </a> Aside: implicit dependencies </h3>
<div>
<p />
The BUILD file for <code>src/main/java/com/example/common/base</code> never references <code>//translations/tools:aggregator</code>. So, where's the direct dependency?
<p />
Certain rules include implicit dependencies on additional libraries or tools.  For example, to build a <code>genproto</code> rule, you need first to build the Protocol Compiler, so every <code>genproto</code> rule carries an implicit dependency on the protocol compiler.  These dependencies are not mentioned in the build file, but added in by the build tool.  The full set of implicit dependencies is currently undocumented; read the source code of <a href="https://github.com/bazelbuild/bazel/tree/master/src/main/java/com/example/devtools/build/lib/packages/RuleClassProvider.java">RuleClassProvider</a>.)
</div>
<p />
<h2><a name="Reverse_Dependencies"> </a> Reverse Dependencies </h2>
<p />
You might want to know the set of targets that depends on some target.  e.g., if you're going to change some code, you might want to know what other code you're about to break.  You can use <code>rdeps(u, x)</code> to find the reverse dependencies of the targets in <code>x</code> within the transitive closure of <code>u</code>.
<p />
Unfortunately, invoking, e.g.,
<code>rdeps(..., daffie/annotations2:constants-lib)</code>
is not practical for a large tree, because it requires parsing every BUILD file and building a very large dependency graph (Bazel may run out of memory).  If you would like to execute this query across a large repository, you may have to query subtrees and then combine the results.
<p />
<h2><a name="Miscellaneous_Uses"> </a> Miscellaneous Uses </h2>
<p />
You can use <code>bazel query</code> to analyze many dependency relationships.
<p />
<h3><a name="What_exists_"> </a> What exists ... </h3>
<p />
<h4><a name="What_packages_exist_beneath_foo_"> </a> What packages exist beneath <code>foo</code>? </h4>
<div>
  <code>bazel query 'foo/...' --output package</code>
</div>
<p />
<h4><a name="What_rules_are_defined_in_the_gw"> </a> What rules are defined in the <code>foo</code> package? </h4>
<div>
  <code>bazel query 'kind(rule, foo:all)' --output label_kind</code>
</div>
<p />
<h4><a name="What_files_are_generated_by_rule"> </a> What files are generated by rules in the <code>foo</code> package? </h4>
  <code>bazel query 'kind("generated file", //foo:*)'</code>
<p />
<h4><a name="What_s_the_set_of_BUILD_files_ne"> </a> What's the set of BUILD files needed to build <code>//foo</code>? </h4>
<div>
  <code>bazel query 'buildfiles(deps(//foo))' --output location | cut -f1 -d:</code>
</div>
<p />
<h4><a name="What_are_the_individual_tests_th"> </a> What are the individual tests that a <code>test_suite</code> expands to? </h4>
<div>
  <code>bazel query 'tests(//foo:smoke_tests)'</code>
</div>
<p />
<h5><a name="Which_of_those_are_C_tests_"> </a> Which of those are C++ tests? </h5>
<div>
  <code>bazel query 'kind(cc_.*, tests(//foo:smoke_tests))'</code>
</div>
<p />
<h5><a name="Which_of_those_are_small_Medium_"> </a> Which of those are small?  Medium?  Large? </h5>
<div>
  <code>bazel query 'attr(size, small, tests(//foo:smoke_tests))'</code>
<p />
  <code>bazel query 'attr(size, medium, tests(//foo:smoke_tests))'</code>
<p />
  <code>bazel query 'attr(size, large, tests(//foo:smoke_tests))'</code>
</div>
<p />
<p />
<h4><a name="What_are_the_tests_beneath_foo_t"> </a> What are the tests beneath <code>foo</code> that match a pattern? </h4>
  <code>bazel query 'filter("pa?t", kind(".*_test rule", //foo/...))'</code>
The pattern is a regex and is applied to the full name of the rule. It's similar to doing
  <code>bazel query 'kind(".*_test rule", //foo/...)' | grep -E 'pa?t'</code>
<p />
<h4><a name="What_package_contains_file_java_"> </a> What package contains file <code>src/main/java/com/example/cache/LRUCache.java</code>? </h4>
  <code>bazel query 'buildfiles(src/main/java/com/example/cache/LRUCache.java)' --output=package</code>
<p />
<h4><a name="What_is_the_build_label_for_java"> </a> What is the build label for <code>src/main/java/com/example/cache/LRUCache.java</code>? </h4>
  <code>bazel query src/main/java/com/example/cache/LRUCache.java</code>
<p />
<h4><a name="What_build_rule_contains_file_ja"> </a> What build rule contains file <code>src/main/java/com/example/cache/LRUCache.java</code> as a source? </h4>
<div>
<pre>
fullname=$(bazel query src/main/java/com/example/cache/LRUCache.java)
bazel query "attr('srcs', $fullname, ${fullname//:*/}:*)"
</pre>
</div>
<p />
<h3><a name="What_package_dependencies_exist_"> </a> What package dependencies exist ... </h3>
<p />
<h4><a name="What_packages_does_foo_depend_on"> </a> What packages does <code>foo</code> depend on? (What do I need to check out to build <code>foo</code>) </h4>
<div>
  <code>bazel query 'buildfiles(deps(//foo:foo))' --output package</code>
<p />
Note, <code>buildfiles</code> is required in order to correctly obtain all files
referenced by <code>subinclude</code>; see the reference manual for details.
</div>
<p />
<h4><a name="What_packages_does_the_foo_"> </a> What packages does the <code>foo</code> tree depend on, excluding <code>foo/contrib</code>? </h4>
<div>
  <code>bazel query 'deps(foo/... except foo/contrib/...)' --output package</code>
</div>
<p />
<h3><a name="What_rule_dependencies_exist_"> </a> What rule dependencies exist ... </h3>
<h4><a name="What_genproto_rules_does_bar_"> </a> What genproto rules does bar depend upon? </h4>
<div>
  <code>bazel query 'kind(genproto, deps(bar/...))'</code>
</div>
<p />
<h4><a name="Find_the_definition_of_some_JNI_"> </a> Find the definition of some JNI (C++) library that is transitively depended upon by a Java binary rule in the servlet tree. </h4>
<div>
  <code>bazel query 'some(kind(cc_.*library, deps(kind(java_binary, src/main/java/com/example/frontend/...))))' --output location</code>
</div>
<p />
<h5><a name="_Now_find_the_definitions_of_all"> </a> ...Now find the definitions of all the Java binaries that depend on them </h5>
<div>
  <pre>bazel query 'let jbs = kind(java_binary, src/main/java/com/example/frontend/...) in
  let cls = kind(cc_.*library, deps($jbs)) in
    $jbs intersect allpaths($jbs, $cls)'</pre>
</div>
<p />
<p />
<h3><a name="What_file_dependencies_exist_"> </a> What file dependencies exist ... </h3>
<h4><a name="What_s_the_complete_set_of_Java_"> </a> What's the complete set of Java source files required to build QUX? </h4>
<div>
  Source files: <code>bazel query 'kind("source file", deps(src/main/java/com/example/qux/...))' | grep java$</code>
<p />
  Generated files: <code>bazel query 'kind("generated file", deps(src/main/java/com/example/qux/...))' | grep java$</code>
</div>
<p />
<h4><a name="What_is_the_complete_set_of_Java"> </a> What is the complete set of Java source files required to build QUX's tests? </h4>
<div>
  Source files: <code>bazel query 'kind("source file", deps(kind(".*_test rule", javatests/com/example/qux/...)))' | grep java$</code>
<p />
  Generated files: <code>bazel query 'kind("generated file", deps(kind(".*_test rule", javatests/com/example/qux/...)))' | grep java$</code>
</div>
<p />
<p />
<h3><a name="What_differences_in_dependencies"> </a> What differences in dependencies between X and Y exist ... </h3>
<h4><a name="What_targets_does_foo_depend_on_"> </a> What targets does <code>//foo</code> depend on that <code>//foo:foolib</code> does not? </h4>
<div>
  <code>bazel query 'deps(//foo) except deps(//foo:foolib)'</code>
</div>
<p />
<h4><a name="What_C_libraries_do_the_foo_test"> </a> What C++ libraries do the <code>foo</code> tests depend on that the <code>//foo</code> production binary does <em>not</em> depend on? </h4>
<div>
  <code>bazel query 'kind("cc_library", deps(kind(".*test rule", foo/...)) except deps(//foo))'</code>
</div>
<p />
<h3><a name="Why_does_this_dependency_exist_"> </a> Why does this dependency exist ... </h3>
<p />
<h4><a name="Why_does_bar_depend_on_groups"> </a> Why does <code>bar</code> depend on <code>groups2</code>? </h4>
<div>
<p />
  <code>bazel query 'somepath(bar/...,groups2/...:*)'</code>
<p />
    Once you have the results of this query, you will often find that a
    single target stands out as being an unexpected or egregious and
    undesirable dependency of <code>bar</code>.  The query can then
    be further refined to:
</div>
<p />
<h4><a name="Show_me_a_path_from_docker_updater"> </a> Show me a path from <code>docker/updater:updater_systest</code> (a <code>py_test</code>) to some <code>cc_library</code> that it depends upon: </h4>
<div>
<pre>bazel query 'let cc = kind(cc_library, deps(docker/updater:updater_systest)) in
  somepath(docker/updater:updater_systest, $cc)'</pre>
</div>
<p />
<h4><a name="Why_does_library_photos_fronten"> </a> Why does library <code>//photos/frontend:lib</code> depend on two variants of the same library <code>//third_party/jpeglib</code> and <code>//third_party/jpeg</code>? </h4>
<div>
This query boils down to: "show me the subgraph of
<code>//photos/frontend:lib</code> that depends on both libraries".  When shown
in topological order, the last element of the result is the most
likely culprit.
<p />
<pre>
% bazel query 'allpaths(//photos/frontend:lib, //third_party/jpeglib)
                intersect
               allpaths(//photos/frontend:lib, //third_party/jpeg)'
//photos/frontend:lib
//photos/frontend:lib_impl
//photos/frontend:lib_dispatcher
//photos/frontend:icons
//photos/frontend/modules/gadgets:gadget_icon
//photos/thumbnailer:thumbnail_lib
//third_party/jpeg/img:renderer
</pre>
</div>
<p />
<h3><a name="What_depends_on_"> </a> What depends on  ... </h3>
<h4><a name="What_rules_under_bar_depend_o"> </a> What rules under bar depend on Y? </h4>
<div>
  <code>bazel query 'bar/... intersect allpaths(bar/..., Y)'</code>
<p />
  Note: <code>X intersect allpaths(X, Y)</code> is the general idiom for the query "which X depend on Y?"
  If expression X is non-trivial, it may be convenient to bind a name to it using
  <code>let</code> to avoid duplication.
</div>
<p />
<h3><a name="How_do_I_break_a_dependency_"> </a> How do I break a dependency ... </h3>
<!-- TODO find a convincing value of X to plug in here -->
<h4><a name="What_dependency_paths_do_I_have_"> </a> What dependency paths do I have to break to make <code>bar</code> no longer depend on X? </h4>
<div>
To output the graph to a <code>png</code> file:
<p />
<pre>
bazel query 'allpaths(bar/...,X)' --output graph | dot -Tpng > /tmp/dep.png
</pre>
</div>
<p />
<h3><a name="Misc_"> </a> Misc ... </h3>
<h4><a name="How_many_sequential_steps_are_th"> </a> How many sequential steps are there in the <code>ServletSmokeTests</code> build? </h4>
<div>
Unfortunately, the query language can't currently give you the longest
path from x to y, but it can find the (or rather <i>a</i>) most
distant node from the starting point, or show you the <em>lengths</em> of the
longest path from x to every y that it depends on.  Use <code>maxrank</code>:
<p />
<pre> % bazel query 'deps(//src/test/java/com/example/servlet:ServletSmokeTests)'
--output maxrank | tail -1
85 //third_party/zlib:zutil.c
</pre>
<p />
The result indicates that there exist paths of length 85 that must
occur in order in this build.
</div>
<p />
</table>
<p />
