mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-19 12:12:16 +00:00
doc: update doc guidlines for ACRN config options
Explain how ACRN configuration options are documented and generated Signed-off-by: David B. Kinder <david.b.kinder@intel.com> Tracked-On: #5911
This commit is contained in:
parent
5ec5d9f578
commit
4ea0d49a74
@ -653,6 +653,45 @@ This is the second instruction step.
|
|||||||
only one set of numbered steps is intended per document and the steps
|
only one set of numbered steps is intended per document and the steps
|
||||||
must be level 2 headings.
|
must be level 2 headings.
|
||||||
|
|
||||||
|
Configuration Option Documentation
|
||||||
|
**********************************
|
||||||
|
|
||||||
|
Most of the ACRN documentation is maintained in ``.rst`` files found in the
|
||||||
|
``doc/`` folder. API documentation is maintained as Doxygen comments in the C
|
||||||
|
header files (or as kerneldoc comments in the ``acrn-kernel`` repo headers),
|
||||||
|
along with some prose documentation in ``.rst`` files. The ACRN configuration
|
||||||
|
option documentation is created based on details maintained in schema definition
|
||||||
|
files (``.xsd``) in the ``misc/config_tools/schema`` folder. These schema
|
||||||
|
definition files are used by the configuration tool to validate the XML scenario
|
||||||
|
configuration files as well as to hold documentation about each option. For
|
||||||
|
example:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<xs:element name="RELEASE" type="Boolean" default="n">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Build an image for release (``y``) or debug (``n``).
|
||||||
|
In a **release** image, assertions are not enforced and debugging
|
||||||
|
features are disabled, including logs, serial console, and the
|
||||||
|
hypervisor shell.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
|
||||||
|
During the documentation ``make html`` processing, the documentation annotations
|
||||||
|
in the ``.xsd`` files are extracted and transformed into restructureText using
|
||||||
|
an XSLT transformation found in ``doc/scripts/configdoc.xsl``. The generated
|
||||||
|
option documentation is organized and formatted to make it easy to created links
|
||||||
|
to specific option descriptions using an ``:option:`` role, for example
|
||||||
|
``:option:`hv.DEBUG_OPTIONS.RELEASE``` would link to
|
||||||
|
:option:`hv.DEBUG_OPTIONS.RELEASE`.
|
||||||
|
|
||||||
|
The transformed option documentation is
|
||||||
|
created in the ``_build/rst/reference/configdoc.txt`` file and included by
|
||||||
|
``doc/reference/config-options.rst`` to create the final published
|
||||||
|
:ref:`scenario-config-options` document. You make changes to the option
|
||||||
|
descriptions by editing the documentation found in one of the ``.xsd`` files.
|
||||||
|
|
||||||
|
|
||||||
Documentation Generation
|
Documentation Generation
|
||||||
************************
|
************************
|
||||||
|
|
||||||
|
@ -8,6 +8,10 @@ documentation and publishing it to https://projectacrn.github.io.
|
|||||||
You can also use these instructions to generate the ACRN documentation
|
You can also use these instructions to generate the ACRN documentation
|
||||||
on your local system.
|
on your local system.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:local:
|
||||||
|
:depth: 1
|
||||||
|
|
||||||
Documentation Overview
|
Documentation Overview
|
||||||
**********************
|
**********************
|
||||||
|
|
||||||
@ -67,14 +71,15 @@ recommended folder setup for documentation contributions and generation:
|
|||||||
misc/
|
misc/
|
||||||
acrn-kernel/
|
acrn-kernel/
|
||||||
|
|
||||||
The parent ``projectacrn folder`` is there because we'll also be creating a
|
The parent ``projectacrn folder`` is there because, if you have repo publishing
|
||||||
publishing area later in these steps. For API documentation generation, we'll also
|
rights, we'll also be creating a publishing area later in these steps. For API
|
||||||
need the ``acrn-kernel`` repo contents in a sibling folder to the
|
documentation generation, we'll also need the ``acrn-kernel`` repo contents in a
|
||||||
acrn-hypervisor repo contents.
|
sibling folder to the acrn-hypervisor repo contents.
|
||||||
|
|
||||||
It's best if the ``acrn-hypervisor``
|
It's best if the ``acrn-hypervisor`` folder is an ssh clone of your personal
|
||||||
folder is an ssh clone of your personal fork of the upstream project
|
fork of the upstream project repos (though ``https`` clones work too and won't
|
||||||
repos (though ``https`` clones work too):
|
require you to
|
||||||
|
`register your public SSH key with GitHub <https://github.com/settings/keys>`_):
|
||||||
|
|
||||||
#. Use your browser to visit https://github.com/projectacrn and do a
|
#. Use your browser to visit https://github.com/projectacrn and do a
|
||||||
fork of the **acrn-hypervisor** repo to your personal GitHub account.)
|
fork of the **acrn-hypervisor** repo to your personal GitHub account.)
|
||||||
@ -100,8 +105,11 @@ repos (though ``https`` clones work too):
|
|||||||
cd acrn-hypervisor
|
cd acrn-hypervisor
|
||||||
git remote add upstream git@github.com:projectacrn/acrn-hypervisor.git
|
git remote add upstream git@github.com:projectacrn/acrn-hypervisor.git
|
||||||
|
|
||||||
|
After that, you'll have ``origin`` pointing to your cloned personal repo and
|
||||||
|
``upstream`` pointing to the project repo.
|
||||||
|
|
||||||
#. For API documentation generation we'll also need the ``acrn-kernel`` repo available
|
#. For API documentation generation we'll also need the ``acrn-kernel`` repo available
|
||||||
locally:
|
locally into the ``acrn-hypervisor`` folder:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -151,7 +159,7 @@ Then use ``pip3`` to install the remaining Python-based tools:
|
|||||||
cd ~/projectacrn/acrn-hypervisor/doc
|
cd ~/projectacrn/acrn-hypervisor/doc
|
||||||
pip3 install --user -r scripts/requirements.txt
|
pip3 install --user -r scripts/requirements.txt
|
||||||
|
|
||||||
Add ``$HOME/.local/bin`` to the front of your ``PATH`` so the system will
|
Use this command to add ``$HOME/.local/bin`` to the front of your ``PATH`` so the system will
|
||||||
find expected versions of these Python utilities such as ``sphinx-build`` and
|
find expected versions of these Python utilities such as ``sphinx-build`` and
|
||||||
``breathe``:
|
``breathe``:
|
||||||
|
|
||||||
@ -159,7 +167,7 @@ find expected versions of these Python utilities such as ``sphinx-build`` and
|
|||||||
|
|
||||||
printf "\nexport PATH=\$HOME/.local/bin:\$PATH" >> ~/.bashrc
|
printf "\nexport PATH=\$HOME/.local/bin:\$PATH" >> ~/.bashrc
|
||||||
|
|
||||||
.. note::
|
.. important::
|
||||||
|
|
||||||
You will need to open a new terminal for this change to take effect.
|
You will need to open a new terminal for this change to take effect.
|
||||||
Adding this to your ``~/.bashrc`` file ensures it is set by default.
|
Adding this to your ``~/.bashrc`` file ensures it is set by default.
|
||||||
@ -197,7 +205,7 @@ another ``make html`` and the output layout and style is changed. The
|
|||||||
sphinx build system creates document cache information that attempts to
|
sphinx build system creates document cache information that attempts to
|
||||||
expedite documentation rebuilds, but occasionally can cause an unexpected error or
|
expedite documentation rebuilds, but occasionally can cause an unexpected error or
|
||||||
warning to be generated. Doing a ``make clean`` to create a clean
|
warning to be generated. Doing a ``make clean`` to create a clean
|
||||||
generation environment and a ``make html`` again generally cleans this up.
|
generation environment and a ``make html`` again generally fixes these issues.
|
||||||
|
|
||||||
The ``read-the-docs`` theme is installed as part of the
|
The ``read-the-docs`` theme is installed as part of the
|
||||||
``requirements.txt`` list above. Tweaks to the standard
|
``requirements.txt`` list above. Tweaks to the standard
|
||||||
|
Loading…
Reference in New Issue
Block a user