Is Skydoc used to generate the documentation on Bazel.io?
Not for now. The Build Encyclopedia documents the set of native Bazel build rules written in Java, and the Skylark Library documents the built-in Skylark modules and functions. Because both of these sets of docs are generated from Bazel's Java source code, they are generated using a separate documentation generation tool.
We are planning to create a catalog of Skylark rule sets to make it easy to publish and discover Skylark rule sets and browse their documentation. See bazelbuild/bazel#1046 for more information.
Why do the docstrings for rules come after the rule definition?
Unlike in other languages, Python docstrings are special string literals rather than comments. Because Skylark is a subset of Python, we take the same approach for Skylark docstrings as well. Because rule declarations are basically global variables, we follow the same convention for variable docstrings used by Python documentation generation tools, such as epydoc.
skylark_library instead of
skylark_library rule is used to create logical sets of Skylark (
source files. Since Skylark is the name of the language, we decided to call this
skylark_library and the rule for generating documentation from Skylark
skylark_doc. Potentially, we may reuse the
skylark_library rules for
other purposes, such as running lint tests on the
.bzl files, etc. Also, this
is consistent with the convention used for rules that we have for generating
documentation for other programming languages, such as Rust and D (see the
d_docs rules respectively).
Note that if you only want to generate documentation for
.bzl files in a
single package (directory), you can simply use the
skylark_doc rule and list
all of the
.bzl files in
skylark_library is useful for generating
documentation for a bunch of
.bzl files spread across multiple different