Rewrote and updated several pages in the Blaze docs. Updates include:
- Rewrote Writing BUILD files page as build-files.md. b/183718088
- Wrote Getting Started with Blaze.
- Cleaned up Overview.
- Updated Sitemap.
- Started cleaning up Concepts and Guide.
- Added link redirect to METADATA.
- Cleaned up broken links.
TODO: update[]
Looking for review input on the possibly outdated tutorials in build-files.md.
PiperOrigin-RevId: 370481159
diff --git a/site/docs/build-ref.html b/site/docs/build-ref.html
index e418a0a..1179f95 100644
--- a/site/docs/build-ref.html
+++ b/site/docs/build-ref.html
@@ -95,7 +95,7 @@
Files are further divided into two kinds.
<i>Source files</i> are usually written by the efforts of people,
and checked in to the repository.
- <i>Generated files</i>, sometimes called derived files,
+ <i>Generated files</i>, sometimes called derived files or output files,
are not checked in, but are generated by the build tool from source
files according to specific rules.
</p>
@@ -143,8 +143,8 @@
<p>
Package groups are sets of packages whose purpose is to limit accessibility
of certain rules. Package groups are defined by the
- <code>package_group</code> function. They have two properties: the list of
- packages they contain and their name. The only allowed ways to refer to them
+ <code>package_group</code> function. They have three properties: the list of
+ packages they contain, their name, and other package groups they include. The only allowed ways to refer to them
are from the <code>visibility</code> attribute of rules or from the
<code>default_visibility</code> attribute of the <code>package</code>
function; they do not generate or consume files. For more information, refer
@@ -246,7 +246,7 @@
tree contains both the package
<code>my/app</code> and the package
<code>my/app/testdata</code> (i.e., each of these two
- packages has its own BUILD file). The latter package contains a
+ directories has its own BUILD file). The latter package contains a
file named <code>testdepot.zip</code>. Here are two ways (one
wrong, one correct) to refer to this file within
<code>//my/app:BUILD</code>:
@@ -266,7 +266,11 @@
looks for <code>//a/b/c</code> in the external repository itself.
This is especially relevant when writing rules in the main
repository that refer to targets in the main repository, and will be
- used from external repositories. For information about the different ways
+ used from external repositories.
+</p>
+
+<p>
+For information about the different ways
you can refer to targets, see
[target patterns](guide.html#specifying-targets-to-build).
</p>
@@ -275,12 +279,9 @@
<h3 id="lexi">Lexical specification of a label</h3>
<p>
- The syntax of labels is intentionally strict, so as to
- forbid metacharacters that have special meaning to the shell. This
- helps to avoid inadvertent quoting problems, and makes it easier to
- construct tools and scripts that manipulate labels, such as the
-
- <a href='query.html'>Bazel Query Language</a>.
+ Label syntax discourages use of metacharacters that have special meaning to the shell. This helps
+ to avoid inadvertent quoting problems, and makes it easier to construct tools and scripts that
+ manipulate labels, such as the <a href='query.html'>Bazel Query Language</a>.
The precise details of allowed target names are below.
</p>
@@ -304,9 +305,7 @@
contain multiple consecutive slashes as path separators
(e.g. <code>foo//bar</code>). Similarly, up-level references
(<code>..</code>) and current-directory references
- (<code>./</code>) are forbidden. The sole exception to this
- rule is that a target name may consist of exactly
- '<code>.</code>'.
+ (<code>./</code>) are forbidden.
</p>
<p>While it is common to use <code>/</code> in the name of a file
@@ -408,21 +407,6 @@
</p>
<p>
- The <code>outs</code> attribute present in many rules has type "list
- of output labels"; this is similar to the type of
- the <code>srcs</code> attribute, but differs in two significant
- ways. Firstly, due to the invariant that the outputs of a rule
- belong to the same package as the rule itself, output labels cannot
- include a package component; they must be in one of the "relative"
- forms shown above. Secondly, the relationship implied by an
- (ordinary) label attribute is inverse to that implied by an output
- label: a rule <i>depends on</i> its <code>srcs</code>, whereas a rule <i>is
- depended on by</i> its <code>outs</code>. The two types of label attributes
- thus assign direction to the edges between targets, giving rise to a
- dependency graph.
-</p>
-
-<p>
This directed acyclic graph over targets is called the
"target graph" or "build dependency graph", and is the domain over
which the <a href='query.html'>Bazel Query tool</a> operates.
@@ -466,7 +450,7 @@
To encourage a clean separation between code and data, BUILD files cannot
contain function definitions, <code>for</code> statements or
<code>if</code> statements (but list comprehensions and <code>if</code>
- expressions are allowed). Functions should be declared in <code>.bzl</code>
+ expressions are allowed). Functions can be declared in <code>.bzl</code>
files instead. Additionally, <code>*args</code> and <code>**kwargs</code>
arguments are not allowed in BUILD files; instead list all the arguments
explicitly.
@@ -560,7 +544,7 @@
so <code>//my:program</code> would appear at
(e.g.) <code>$(BINDIR)/my/program</code>. </p>
- <p>Such rules also create a runfiles directory
+ <p>In some languages, such rules also create a runfiles directory
containing all the files mentioned in a <code>data</code>
attribute belonging to the rule, or any rule in its transitive
@@ -974,8 +958,7 @@
<p>Unfortunately, there are some scenarios where directory labels must be used.
For example, if the <code>testdata</code> directory contains files whose
- names do not conform to the strict <a href='#lexi'>label syntax</a>
- (e.g. they contain certain punctuation symbols), then explicit
+ names do not conform to the <a href='#lexi'>label syntax</a>, then explicit
enumeration of files, or use of the
<a href='be/functions.html#glob'><code>glob()</code></a> function will
produce an invalid labels error. You must use directory labels in this case,