aboutsummaryrefslogtreecommitdiffhomepage
path: root/site
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-04-22 08:32:33 +0000
committerGravatar Laurent Le Brun <laurentlb@google.com>2015-04-22 12:42:41 +0000
commita0d555f5fbf74adc059134d4147201428c414a52 (patch)
tree70e7503ce6392300fb41b28c9b90d89ee39cf8ad /site
parent537a90b5b90856788412c962de61ece14e83274b (diff)
New design for Bazel site.
-- MOS_MIGRATED_REVID=91768459
Diffstat (limited to 'site')
-rw-r--r--site/404.md8
-rw-r--r--site/blog/index.md18
-rw-r--r--site/contributing.md7
-rw-r--r--site/docs/getting-started.md58
-rw-r--r--site/docs/install.md2
-rw-r--r--site/docs/skyframe.md2
-rw-r--r--site/docs/windows.md2
-rw-r--r--site/faq.md (renamed from site/FAQ.md)1
-rw-r--r--site/governance.md2
-rw-r--r--site/index.html82
-rw-r--r--site/index.md46
-rw-r--r--site/roadmap.md2
-rw-r--r--site/search.html19
-rw-r--r--site/support.md185
-rw-r--r--site/users.md4
15 files changed, 259 insertions, 179 deletions
diff --git a/site/404.md b/site/404.md
index 685366521f..a2e57ee702 100644
--- a/site/404.md
+++ b/site/404.md
@@ -7,8 +7,8 @@ permalink: /404.html
====================
<pre>
-<div>$ bazel build :what-you-were-looking-for</div>
-<div>...............</div>
-<div><b><span style="color: red;">ERROR</span></b>: no such page ':what-you-were-looking-for': BUILD file not found on package path.</div>
-<div><b><span style="color: green;">INFO</span></b>: Elapsed time: 0.567s</div>
+$ bazel build :what-you-were-looking-for
+...............
+<b><span style="color: red;">ERROR</span></b>: no such page ':what-you-were-looking-for': BUILD file not found on package path.
+<b><span style="color: green;">INFO</span></b>: Elapsed time: 0.567s
</pre>
diff --git a/site/blog/index.md b/site/blog/index.md
index 865a8f7b97..4e8755cfdb 100644
--- a/site/blog/index.md
+++ b/site/blog/index.md
@@ -1,17 +1,15 @@
---
-layout: default
+layout: blog
---
-Bazel Blog
-==========
-
{% for post in site.categories.blog %}
-[{{ post.title }}]({{ post.url }})
-----------------------------------
-_{{ post.date | date_to_long_string }}_
-{{ post.content }}
+<div class="blog-post">
+ <h1 class="blog-post-title"><a href="{{ post.url }}">{{ post.title }}</a></h1>
+ <div class="blog-post-meta">
+ <span class="text-muted">{{ post.date | date_to_long_string }}</span>
+ </div>
+ {{ post.content }}
+</div>
{% endfor %}
-
-[Subscribe](feed.xml)
diff --git a/site/contributing.md b/site/contributing.md
index b5184bf1b9..dbbc3c806f 100644
--- a/site/contributing.md
+++ b/site/contributing.md
@@ -1,11 +1,12 @@
---
-layout: default
+layout: community
---
# Contributing to Bazel
-*Please do not send us pull requests on GitHub!* We welcome contributions
-(see below) but we cannot currently accept patches via pull request.
+If you wish to contribute, prefer using Gerrit over GitHub pull request. We
+might redirect you to Gerrit if you send us a non-trivial change in a GitHub
+Pull Request.
## How can I contribute to Bazel?
diff --git a/site/docs/getting-started.md b/site/docs/getting-started.md
index 3f30b4ce55..0cc37cbe9a 100644
--- a/site/docs/getting-started.md
+++ b/site/docs/getting-started.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: documentation
---
# Getting Started with Bazel
@@ -11,11 +11,11 @@ provided compile script. Make sure that you are running Bazel on a supported
platform and that you have installed other required software as described in the
[installation guide](install.html).
-```bash
+{% highlight bash %}
$ git clone https://github.com/google/bazel.git
$ cd bazel
$ ./compile.sh
-```
+{% endhighlight %}
`./compile.sh` creates the `bazel` executable in `output/bazel`.
@@ -42,7 +42,7 @@ Suppose that you have an existing project in a directory, say,
To make sure everything is set up correctly in your build root, build one of the
examples from the `examples/` directory.
-```bash
+{% highlight bash %}
$ cd ~/gitroot/my-project
$ bazel build examples/java-native/src/main/java/com/example/myproject:hello-world
Extracting Bazel installation...
@@ -54,7 +54,7 @@ Target //examples/java-native/src/main/java/com/example/myproject:hello-world up
INFO: Elapsed time: 3.040s, Critical Path: 1.14s
$ bazel-bin/examples/java-native/src/main/java/com/example/myproject/hello-world
Hello world
-```
+{% endhighlight %}
Bazel puts binaries it has built under `bazel-bin/`. Note that you can
always look at the `build` command's output to find output file paths.
@@ -77,14 +77,14 @@ subdirectory.
Thus, to add build rules to my-project, create a file named `BUILD` in the
`my-project/` directory. Add the following lines to this BUILD file:
-```python
+{% highlight python %}
# ~/gitroot/base_workspace/my-project/BUILD
java_binary(
name = "my-runner",
srcs = glob(["**/*.java"]),
main_class = "com.example.ProjectRunner",
)
-```
+{% endhighlight %}
BUILD files are Python-like scripts. BUILD files cannot contain arbitrary
Python, but each build rule looks like a Python function call and you can use
@@ -103,7 +103,7 @@ the class that contains the main method.
If you have no actual Java project you're using, you can use the following
commands to make a fake project for this example:
-```bash
+{% highlight bash %}
$ # If you're not already there, move to your build root directory.
$ cd ~/gitroot/base_workspace
$ mkdir -p my-project/java/com/example
@@ -125,11 +125,11 @@ public class Greeting {
}
}
EOF
-```
+{% endhighlight %}
Now build your project:
-```bash
+{% highlight bash %}
$ bazel build my-project:my-runner
INFO: Found 1 target...
Target //my-project:my-runner up-to-date:
@@ -138,7 +138,7 @@ Target //my-project:my-runner up-to-date:
INFO: Elapsed time: 1.021s, Critical Path: 0.83s
$ bazel-bin/my-project/my-runner
Hi!
-```
+{% endhighlight %}
Congratulations, you've created your first Bazel BUILD file!
@@ -154,7 +154,7 @@ To break up a project, create separate rules for each subcomponent and then
make them depend on each other. For the example above, add the following rules
to the `my-project/BUILD` file:
-```python
+{% highlight python %}
java_binary(
name = "my-other-runner",
srcs = ["java/com/example/ProjectRunner.java"],
@@ -166,11 +166,11 @@ java_library(
name = "greeter",
srcs = ["java/com/example/Greeting.java"],
)
-```
+{% endhighlight %}
Now you can build and run `my-project:my-other-runner`:
-```bash
+{% highlight bash %}
$ bazel run my-project:my-other-runner
INFO: Found 1 target...
Target //my-project:my-other-runner up-to-date:
@@ -180,7 +180,7 @@ INFO: Elapsed time: 2.454s, Critical Path: 1.58s
INFO: Running command line: bazel-bin/my-project/my-other-runner
Hi!
-```
+{% endhighlight %}
If you edit _ProjectRunner.java_ and rebuild `my-other-runner`, only
`ProjectRunner.java` needs to be rebuilt (<code>greeter</code> is unchanged).
@@ -193,7 +193,7 @@ can refer to targets defined in other BUILD files using the syntax
`my-project/java/com/example/` has a `cmdline/` subdirectory with the following
file:
-```bash
+{% highlight bash %}
$ mkdir my-project/java/com/example/cmdline
$ cat > my-project/java/com/example/cmdline/Runner.java <<EOF
package com.example.cmdline;
@@ -206,12 +206,12 @@ public class Runner {
}
}
EOF
-```
+{% endhighlight %}
We could add a `BUILD` file at `my-project/java/com/example/cmdline/BUILD`
that contained the following rule:
-```python
+{% highlight python %}
# ~/gitroot/base_workspace/my-project/java/com/example/cmdline/BUILD
java_binary(
name = "runner",
@@ -219,7 +219,7 @@ java_binary(
main_class = "com.example.cmdline.Runner",
deps = ["//my-project:greeter"]
)
-```
+{% endhighlight %}
However, by default, build rules are _private_. This means that they can only be
referred to by rules in the same BUILD file. This prevents libraries that are
@@ -227,32 +227,32 @@ implementation details from leaking into public APIs, but it also means that you
must explicitly allow `runner` to depend on `my-project:greeter`. As is, if we
build `runner` we'll get a permissions error:
-```bash
+{% highlight bash %}
$ bazel build my-project/java/com/example/cmdline:runner
ERROR: /usr/local/google/home/kchodorow/gitroot/base_workspace/my-project/java/com/example/cmdline/BUILD:2:1:
Target '//my-project:greeter' is not visible from target '//my-project/java/com/example/cmdline:runner'.
Check the visibility declaration of the former target if you think the dependency is legitimate.
ERROR: Analysis of target '//my-project/java/com/example/cmdline:runner' failed; build aborted.
INFO: Elapsed time: 0.091s
-```
+{% endhighlight %}
You can make a rule visibile to rules in other BUILD files by adding a
`visibility = level` attribute. Change the `greeter` rule in
_my-project/BUILD_ to be visible to our new rule:
-```python
+{% highlight python %}
java_library(
name = "greeter",
srcs = ["java/com/example/Greeting.java"],
visibility = ["//my-project/java/com/example/cmdline:__pkg__"],
)
-```
+{% endhighlight %}
This makes `//my-project:greeter` visible to any rule in the
`//my-project/java/com/example/cmdline` package. Now we can build and
run the binary:
-```bash
+{% highlight bash %}
$ bazel run my-project/java/com/example/cmdline:runner
INFO: Found 1 target...
Target //my-project/java/com/example/cmdline:runner up-to-date:
@@ -262,7 +262,7 @@ INFO: Elapsed time: 1.576s, Critical Path: 0.81s
INFO: Running command line: bazel-bin/my-project/java/com/example/cmdline/runner
Hi!
-```
+{% endhighlight %}
See the [build encyclopedia](build-encyclopedia.html) for more visibility options.
@@ -272,7 +272,7 @@ If you look at the contents of
_bazel-bin/my-project/java/com/example/cmdline/runner.jar_, you can see that it
only contains `Runner.class`, not its dependencies (`Greeting.class`):
-```bash
+{% highlight bash %}
$ jar tf bazel-bin/my-project/java/com/example/cmdline/runner.jar
META-INF/
META-INF/MANIFEST.MF
@@ -280,18 +280,18 @@ com/
com/example/
com/example/cmdline/
com/example/cmdline/Runner.class
-```
+{% endhighlight %}
To deploy a `runner` binary, we need a self-contained jar. To build this, build
runner_deploy.jar (or, more generally, _&lt;target-name&gt;_deploy.jar_):
-```bash
+{% highlight bash %}
$ bazel build my-project/java/com/example/cmdline:runner_deploy.jar
INFO: Found 1 target...
Target //my-project/java/com/example/cmdline:runner_deploy.jar up-to-date:
bazel-bin/my-project/java/com/example/cmdline/runner_deploy.jar
INFO: Elapsed time: 1.700s, Critical Path: 0.23s
-```
+{% endhighlight %}
`runner_deploy.jar` will contain all of its dependencies.
diff --git a/site/docs/install.md b/site/docs/install.md
index 17bb79e087..37775bcc05 100644
--- a/site/docs/install.md
+++ b/site/docs/install.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: documentation
---
# Installing Bazel
diff --git a/site/docs/skyframe.md b/site/docs/skyframe.md
index 1cdaa1bc23..772df97377 100644
--- a/site/docs/skyframe.md
+++ b/site/docs/skyframe.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: documentation
---
# Skyframe
diff --git a/site/docs/windows.md b/site/docs/windows.md
index 6c05a9e956..967e33ce82 100644
--- a/site/docs/windows.md
+++ b/site/docs/windows.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: documentation
---
Building Bazel on Windows
diff --git a/site/FAQ.md b/site/faq.md
index 1146b5841d..9f8283a116 100644
--- a/site/FAQ.md
+++ b/site/faq.md
@@ -1,5 +1,6 @@
---
layout: default
+title: FAQ
---
What is Bazel?
diff --git a/site/governance.md b/site/governance.md
index 96aa0ee7f8..5393cef86e 100644
--- a/site/governance.md
+++ b/site/governance.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: community
---
# Governance
diff --git a/site/index.html b/site/index.html
new file mode 100644
index 0000000000..7d3c6de4b5
--- /dev/null
+++ b/site/index.html
@@ -0,0 +1,82 @@
+---
+layout: home
+---
+
+<div class="hero">
+ <div class="container">
+ <img src="{{site_root}}images/bazel-logo.png" class="img-responsive center-block" />
+ <p class="lead">{Fast, Correct} - Choose two</p>
+ </div>
+</div>
+<div class="hero-bar">
+ <div class="container">
+ <a class="btn btn-success" href="{{ "/docs/install.html" | prepend: site_root }}">Get Bazel</a>
+ <a class="btn btn-success" href="{{ "/docs/getting-started.html" | prepend: site_root }}">Get Started</a></p>
+ </div>
+</div>
+<div class="landing-feature-1">
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-12">
+ <h1>Correct, reproducible, fast builds for everyone</h1>
+ <p class="lead">Bazel is a build tool from Google that builds code quickly and reliably. We use it to build the majority of Google's software, and it's specifically designed to handle our huge source code repositories and our testing and release requirements.</p>
+ </div>
+ <div class="col-sm-4">
+ <h3>Fast</h3>
+ <p>Bazel is used at Google to build software from a massive, shared code repository in which all software is built from source. Caching and parallel processing make it fast. (Don't worry. It works for small projects, too.)</p>
+ </div>
+ <div class="col-sm-4">
+ <h3>Reproducible</h3>
+ <p>Bazel was designed with correctness and reproducibility in mind. A build performed on a continuous build machine or in a release pipeline will generate bitwise-identical outputs to those generated on a developer's machine.</p>
+ </div>
+ <div class="col-sm-4">
+ <h3>Flexible</h3>
+ <p>Bazel's architecture supports many different programming languages within Google, and can be used to build both client and server software targeting multiple architectures from the same underlying codebase.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="landing-feature-2">
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-12">
+ <h1>Get Started</h1>
+ </div>
+ <div class="col-sm-4">
+ <h3>Install Bazel</h2>
+ <p>See our <a href="docs/install.html">Installation Guide</a> to learn how to download and install Bazel.</p>
+ </div>
+ <div class="col-sm-4">
+ <h3>Run Bazel</h2>
+ <p>See our <a href="docs/getting-started.html">Getting Started Guide</a> to learn how to write a BUILD file and Run Bazel .</p>
+ </div>
+ <div class="col-sm-4">
+ <h3>Bazel Commands</h2>
+ <p>See our <a href="docs/bazel-user-manual.html">User Manual</a> to learn about the Bazel command-line tool.</p>
+ </div>
+ <div class="col-sm-12">
+ <h3>Learn More</h2>
+ <p>Take a look at our <a href="docs/install.html">documentation</a> and read our <a href="faq.html">our FAQ</a>.</p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="landing-feature-1">
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-12">
+ <h1>About Bazel</h1>
+ <p>
+ <a href="contributing.html">Contribute</a><br />
+ <a href="governance.html">Governance Plan</a><br />
+ <a href="roadmap.html">Roadmap</a><br />
+ <a href="support.html">Support</a><br />
+ <a href="users.html">Who's using Bazel</a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/site/index.md b/site/index.md
deleted file mode 100644
index 0735971dcb..0000000000
--- a/site/index.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-layout: default
----
-
-# Bazel ([Alpha](roadmap.html#alpha))
-
-*{Fast, Correct} - Choose two*
-
-Bazel is a build tool that builds code quickly and reliably. It is used to build
-the majority of Google's software, and thus it has been designed to handle
-build problems present in Google's development environment, including:
-
-* **A massive, shared code repository, in which all software is built from
-source.** Bazel has been built for speed, using both caching and parallelism
-to achieve this. Bazel is critical to Google's ability to continue
-to scale its software development practices as the company grows.
-
-* **An emphasis on automated testing and releases.** Bazel has
-been built for correctness and reproducibility, meaning that a build performed
-on a continuous build machine or in a release pipeline will generate
-bitwise-identical outputs to those generated on a developer's machine.
-
-* **Language and platform diversity.** Bazel's architecture is general enough to
-support many different programming languages within Google, and can be
-used to build both client and server software targeting multiple
-architectures from the same underlying codebase.
-
-Find more background about Bazel in our [FAQ](FAQ.html)
-
-## Getting Started
-
- * How to [install Bazel](docs/install.html)
- * How to [get started using Bazel](docs/getting-started.html)
- * The Bazel command line is documented in the [user manual](docs/bazel-user-manual.html)
- * The rule reference documentation is in the [build encyclopedia](docs/build-encyclopedia.html)
- * How to [use the query command](docs/query.html)
- * How to [extend Bazel](docs/skylark/index.html)
- * The test environment is described in the [test encyclopedia](docs/test-encyclopedia.html)
-
-* About the Bazel project:
-
- * A list of [projects using Bazel](users.html).
- * How to [contribute to Bazel](contributing.html)
- * Our [governance plan](governance.html)
- * Future plans are in the [roadmap](roadmap.html)
- * For each feature, which level of [support](support.html) to expect.
diff --git a/site/roadmap.md b/site/roadmap.md
index 63526c32bd..d26685500f 100644
--- a/site/roadmap.md
+++ b/site/roadmap.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: community
---
# Bazel Feature Roadmap
diff --git a/site/search.html b/site/search.html
new file mode 100644
index 0000000000..0ee2e8e863
--- /dev/null
+++ b/site/search.html
@@ -0,0 +1,19 @@
+---
+layout: default
+title: Site Search
+---
+
+<script>
+ (function() {
+ var cx = '012346921571893344015:xv_nfgpzbu4';
+ var gcse = document.createElement('script');
+ gcse.type = 'text/javascript';
+ gcse.async = true;
+ gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+ '//www.google.com/cse/cse.js?cx=' + cx;
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(gcse, s);
+ })();
+</script>
+
+<gcse:search></gcse:search>
diff --git a/site/support.md b/site/support.md
index 2690077761..75fc58a1d7 100644
--- a/site/support.md
+++ b/site/support.md
@@ -1,5 +1,5 @@
---
-layout: default
+layout: community
---
# Support Policy
@@ -26,32 +26,39 @@ We make no breaking changes to the rules, or provide instructions on how to migr
issues that are reported, and also keep up with changes in the underlying tools. We ensure that all
the tests pass.
-<table>
-<colgroup><col width="30%"/><col/></colgroup>
- <tr>
- <th>Rules</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td>C/C++ rules except <code>cc_toolchain</code></td>
- <td></td>
- </tr>
- <tr>
- <td>Java rules</td>
- <td></td>
- </tr>
- <tr>
- <td><code>genrule</code></td>
- <td></td>
- </tr>
- <tr>
- <td><code>test_suite</code></td>
- <td></td>
- </tr>
- <tr>
- <td><code>filegroup</code></td>
- <td></td>
- </tr>
+<table class="table table-condensed table-striped table-bordered">
+ <colgroup>
+ <col width="30%"/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th>Rules</th>
+ <th>Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>C/C++ rules except <code>cc_toolchain</code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Java rules</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>genrule</code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>test_suite</code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>filegroup</code></td>
+ <td></td>
+ </tr>
+ </tbody>
</table>
@@ -59,44 +66,51 @@ the tests pass.
We avoid breaking changes when possible. We actively fix issues that are reported, but may fall
behind the current state of the tools. We ensure that all the tests pass.
-<table>
-<colgroup><col width="30%"/><col/></colgroup>
- <tr>
- <th>Rules</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><code>cc_toolchain</code></td>
- <td>
- <ul>
- <li>We intend to make significant changes to the way C/C++ toolchains are defined; we will
- keep our published C/C++ toolchain definition(s) up to date, but we make no guarantees for
- custom ones.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>iOS/Objective C rules</td>
- <td>
- <ul>
- <li>We cannot vouch for changes made by Apple &reg; to the underlying tools and
- infrastructure.</li>
- <li>The rules are fairly new and still subject to change; we try to avoid breaking changes,
- but this may not always be possible.</li>
- <li>No testing support yet.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>Extra actions (<code>extra_action</code>, <code>action_listener</code>)</td>
- <td>
- <ul>
- <li>Extra actions expose information about Bazel that we consider to be implementation
- details, such as the exact interface between Bazel and the tools we provide; as such,
- users will need to keep up with changes to tools to avoid breakage.</li>
- </ul>
- </td>
- </tr>
+<table class="table table-condensed table-striped table-bordered">
+ <colgroup>
+ <col width="30%"/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th>Rules</th>
+ <th>Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>cc_toolchain</code></td>
+ <td>
+ <ul>
+ <li>We intend to make significant changes to the way C/C++ toolchains are defined; we will
+ keep our published C/C++ toolchain definition(s) up to date, but we make no guarantees for
+ custom ones.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>iOS/Objective C rules</td>
+ <td>
+ <ul>
+ <li>We cannot vouch for changes made by Apple &reg; to the underlying tools and
+ infrastructure.</li>
+ <li>The rules are fairly new and still subject to change; we try to avoid breaking changes,
+ but this may not always be possible.</li>
+ <li>No testing support yet.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>Extra actions (<code>extra_action</code>, <code>action_listener</code>)</td>
+ <td>
+ <ul>
+ <li>Extra actions expose information about Bazel that we consider to be implementation
+ details, such as the exact interface between Bazel and the tools we provide; as such,
+ users will need to keep up with changes to tools to avoid breakage.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
</table>
### Built-In Rules and the Internal API For Rules ###
@@ -134,21 +148,28 @@ to be a lengthy process however.
We will not break existing tests, but otherwise make no dedicated effort to keep the rules working
or up-to-date.
-<table>
-<colgroup><col width="30%"/><col/></colgroup>
- <tr>
- <th>Rules</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><code>Fileset</code></td>
- <td>
- <ul>
- <li>There are vestiges of Fileset / FilesetEntry in the source code, but we do not intend to
- support them in Bazel, ever.</li>
- <li>They're still widely used internally, and are therefore unlikely to go away in the near
- future.</li>
- </ul>
- </td>
- </tr>
+<table class="table table-condensed table-striped table-bordered">
+ <colgroup>
+ <col width="30%"/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th>Rules</th>
+ <th>Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>Fileset</code></td>
+ <td>
+ <ul>
+ <li>There are vestiges of Fileset / FilesetEntry in the source code, but we do not intend to
+ support them in Bazel, ever.</li>
+ <li>They're still widely used internally, and are therefore unlikely to go away in the near
+ future.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
</table>
diff --git a/site/users.md b/site/users.md
index 6de0b5309f..d0174e6d34 100644
--- a/site/users.md
+++ b/site/users.md
@@ -1,3 +1,7 @@
+---
+layout: community
+---
+
# Projects Using Bazel
If you'd like your project listed here, please