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.