Writing qiBuild documentation¶
One of the strengths of the qiBuild framework is the documentation you are reading right now ;)
It is completely written using sphinx, so do not hesitate to create links between various sections.
Please submit documentation updates (if relevant) when you submit your patches.
Documenting CMake API¶
The qiBuild CMake API is automatically generated from the
comments of the cmake files in cmake/qibuild
If you add a new file, please add it to the list in
ref/cmake/api.rst
and in tools/gen_cmake_doc.py
(The script is called by tox right before building the sphinx documentation)
Also, when changing the comments of a cmake functions, please
regenerate the .rst
files to check the output.
Generating command line help¶
The output of
qibuild --help
or
qibuild make --help
is automatically generated using:
- The
help
argument used in the various _parsers functions. - The first line of the docstring of module corresponding to the action.
So just make sure to write proper docstrings, and to correctly
specify the help
arguments when you configure your parser.
If you think the new action is worth it, you can also patch the qibuild man pages.
If you add a new executable, please add the corresponding man page
in ref/man
.
This allows the qiBuild debian package to pass lintian
checks.
Documenting configuration files syntax¶
Right now the syntax of the configuration files is not frozen yet. Just make sure to update the Configuration files syntax section.
If your changes are incompatible, make sure (and add tests for it!) that you can convert from the previous version automatically.
Writing Python documentation¶
We are using sphinx autodoc extension to generate the qiBuild Python documentation, so please make sure to use valid rst syntax inside your docstrings.
Sphinx’s markup is light enough to be used directly in the docstrings, but please keep the files readable!
As a rule of thumb, if you want to refer to other parts of the documentation, do
it in the .rst
file, and not directly in the .py
file.
This is BAD:
class Foo:
""" Does this and that
.. warning:: A big warning
Example::
# A big example
def tutu:
foo = Foo()
.. seealso:
* :ref:`qibuild-foo-stuff`
"""
.. foo.rst
Foo
---
.. autoclass: Foo
This is OK:
class Foo:
""" Does this and that
.. warning:: A big warning
"""
.. foo.rst
Foo
---
.. autoclass: Foo
Example::
# A big example
def tutu:
foo = Foo()
.. seealso:
* :ref:`qibuild-foo-stuff`
Also, even if the Module Index page is generated automatically
py Sphinx
, do not forget to update the qiBuild Python packages documentation
toctree
.