Building the Documentation¶
All documentation and related files are located in the source tree under the doc
directory. The Makefiles must be generated by the main configure script. The current configure
script switch for enabling documentation builds is --enable-docs
.
Additional packages required for building the documentation.
- System installs
These should be installed via yum or dnf.
- graphviz
Graph visualization, used for diagrams in many places.
- java
A java based utility is run to generate diagrams and so a java executor is required.
- python2-pip
PIP for installing Python packages. Install this if you are using Python 2.
- python3-pip
PIP for installing Python packages. Install this if you are using Python 3.
- PIP installs
These should be installed using pip.
- sphinx
A Python package that is the based Sphinx Documentation.
- sphinx-rtd-theme
Style package for the preferred ATS documentation style.
- sphinxcontrib-plantuml
Support for using plantuml inline.
- sphinx-intl
Internation support, which is needed if a non-English version is built. Currently a Japanese (
JA
) version is available.
With a configured source tree, building the documentation requires only the
invocation make html
from within doc/
. For repeated builds while working
on the documentation doing make html
again is sufficient. After fixing all warnings / errors,
however, it is advisable to clean out the built and intermediate
files by running the following instead (again, from within the doc/
directory of the Traffic Server source tree):
make clean && make html
This will ensure that make doesn’t inadvertantly skip the regeneration of any targets.
Note
It is expected that any PR updating the documentation builds without any errors or warnings. This can be easy to miss if the full build is not done before submitting the pull request.
To view the built documentation, you may point any browser to the directory
doc/docbuild/html/
. If you are building the documentation on your local
machine, you may access the HTML documentation files directly without the need
for a full-fledged web server, as all necessary resources (CSS, Javascript, and
images) are referenced using relative paths and there are no server-side scripts
necessary to render the documentation.