Documentation ============= Documentation for LightGBM is generated using `Sphinx `__ and `Breathe `__, which works on top of `Doxygen `__ output. List of parameters and their descriptions in `Parameters.rst <./Parameters.rst>`__ is generated automatically from comments in `config file `__ by `this script `__. After each commit on ``master``, documentation is updated and published to `Read the Docs `__. Build ----- It is not necessary to re-build this documentation while modifying LightGBM's source code. The HTML files generated using ``Sphinx`` are not checked into source control. However, you may want to build them locally during development to test changes. Docker ^^^^^^ The most reliable way to build the documentation locally is with Docker, using `the same images Read the Docs uses `_. Run the following from the root of this repository to pull the relevant image and run a container locally. .. code:: sh docker run \ --rm \ --user=0 \ -v $(pwd):/opt/LightGBM \ --env C_API=true \ --env CONDA=/opt/miniforge \ --env READTHEDOCS=true \ --workdir=/opt/LightGBM/docs \ --entrypoint="" \ readthedocs/build:ubuntu-20.04-2021.09.23 \ /bin/bash build-docs.sh When that code completes, open ``docs/_build/html/index.html`` in your browser. .. note:: The navigation in these locally-built docs does not link to the local copy of the R documentation. To view the local version of the R docs, open ``docs/_build/html/R/index.html`` in your browser. Without Docker ^^^^^^^^^^^^^^ You can build the documentation locally without Docker. Just install Doxygen and run in ``docs`` folder .. code:: sh pip install breathe sphinx 'sphinx_rtd_theme>=0.5' make html Note that this will not build the R documentation. Consider using common R utilities for documentation generation, if you need it. Or use the Docker-based approach described above to build the R documentation locally. Optionally, you may also install ``scikit-learn`` and get richer documentation for the classes in ``Scikit-learn API``. If you faced any problems with Doxygen installation or you simply do not need documentation for C code, it is possible to build the documentation without it: .. code:: sh pip install sphinx 'sphinx_rtd_theme>=0.5' export C_API=NO || set C_API=NO make html