.. SPDX-License-Identifier: GPL-2.0-or-later

Documentation

This section explains how to use and develop the LTP documentation. The current documentation format is written using reStructedText and it's built on top of Sphinx.

Building documentation


Before building, make sure you have python3 ``virtualenv`` module installed.

.. code-block:: bash

    # run configure to be able to compile doc dependencies in metadata/
    make autotools
    ./configure
    cd doc

    # prepare virtual environment
    python3 -m virtualenv .venv
    . .venv/bin/activate
    pip install -r requirements.txt

    # build documentation
    make

Once the procedure has been completed, documentation will be visible at
``doc/html/index.html``.

.. warning::

    Documentation requires ``Python >= 3.6``.
    The current :master:`.readthedocs.yml` workflow is using ``Python 3.12``,
    it is tested in GitHub Actions :master:`.github/workflows/ci-sphinx-doc.yml`.

Validating spelling
~~~~~~~~~~~~~~~~~~~

To check documentation words spelling, we provide support for
[aspell](http://aspell.net/), so make sure that it's installed. The
documentation can be tested via ``make spelling`` command. Output will be
visible in the ``doc/build`` folder and, if any error will be found, a warning
message will be shown.

C API documentation
~~~~~~~~~~~~~~~~~~~

The C API documentation is generated from headers using
[kernel-doc](https://return42.github.io/linuxdoc/linuxdoc-howto/kernel-doc-syntax.html)
syntax which is supported by Sphinx via
[linuxdoc](https://pypi.org/project/linuxdoc/) extension.