blob: ed508aed7bc8c2dddeca97e032a082642615dc60 [file] [log] [blame]
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
.. include:: ../../common.defs
.. _developer-doc-building:
Building the Documentation
**************************
All documentation and related files are located in the source tree under the :ts:git:`doc`
directory. The Makefiles must be generated by the main configure script. The current :ref:`configure
script<admin-configuration-options>` switch for enabling documentation builds is ``--enable-docs``.
Additional packages required for building the documentation.
System installs
These should be installed via `yum <https://fedoraproject.org/wiki/Yum>`__ or
`dnf <https://fedoraproject.org/wiki/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 <https://pypi.python.org/pypi/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 <http://plantuml.com/PlantUML_Language_Reference_Guide.pdf>`__ inline.
sphinx-intl
International support, which is needed if a non-English version is built. Currently a Japanese
(``JA``) version is available.
These should be also installed using `pipenv
<https://docs.pipenv.org/>`__ and :ts:git:`doc/Pipfile`. To setup the environment, run below commands from within the :ts:git:`doc/` directory of the |TS| source tree::
pipenv install
pipenv shell
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 |TS| source tree)::
make clean && make html
This will ensure that make doesn't inadvertently 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.