From 6373a1a066c05d560f096db26c48d17de65c734e Mon Sep 17 00:00:00 2001 From: "David B. Kinder" Date: Tue, 20 Mar 2018 17:34:09 -0700 Subject: [PATCH] doc: add doc building/publishing instructions Add a new document describing how doc building and publishing works and how to setup a doc working directory and build tools to make it so. Signed-off-by: David B. Kinder --- Makefile | 2 +- docbuild.rst | 219 +++++++++++++++++++++++++++++++++++++++ images/acrn-doc-fork.png | Bin 0 -> 55010 bytes index.rst | 1 + scripts/requirements.txt | 2 +- 5 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 docbuild.rst create mode 100644 images/acrn-doc-fork.png diff --git a/Makefile b/Makefile index 28576ae69..4859f8608 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ doxy: pullsource $(Q)(cat acrn.doxyfile) | doxygen - 2>&1 html: doxy - $(Q)$(SPHINXBUILD) -b html -d $(BUILDDIR)/doctrees $(SOURCEDIR) $(BUILDDIR)/html $(SPHINXOPTS) $(O) > doc.log 2>&1 + -$(Q)$(SPHINXBUILD) -b html -d $(BUILDDIR)/doctrees $(SOURCEDIR) $(BUILDDIR)/html $(SPHINXOPTS) $(O) > doc.log 2>&1 $(Q)./scripts/filter-doc-log.sh doc.log diff --git a/docbuild.rst b/docbuild.rst new file mode 100644 index 000000000..0ec23aebc --- /dev/null +++ b/docbuild.rst @@ -0,0 +1,219 @@ +.. _acrn_doc: + +ACRN documentation generation +############################# + +These instructions will walk you through generating the Project ACRN's +documentation and publishing it to https://projectacrn.github.io. +You can also use these instructions to generate the ARCN documentation +on your local system. + +Documentation overview +********************** + +Project ACRN content is written using the reStructuredText markup +language (.rst file extension) with Sphinx extensions, and processed +using Sphinx to create a formatted stand-alone website. Developers can +view this content either in its raw form as .rst markup files, or you +can generate the HTML content and view it with a web browser directly on +your workstation. + +You can read details about `reStructuredText`_, and `Sphinx`_ from +their respective websites. + +The project's documentation contains the following items: + +* ReStructuredText source files used to generate documentation found at the + http://projectacrn.github.io website. All of the reStructuredText sources + are found in this acrn-documentation repo. + +* Doxygen-generated material used to create all API-specific documents + found at http://projectacrn.github.io/api/. Clones of the + acrn-hypervisor and acrn-devicemodel repos are also used to access the + header files for the the public APIs, but more about that later. + +The reStructuredText files are processed by the Sphinx documentation system, +and make use of the breathe extension for including the doxygen-generated API +material. + + +Set up the documentation working folders +**************************************** + +You'll need git installed to get the working folders set up: + +* For an Ubuntu development system use: + + .. code-block:: bash + + sudo apt-get install git + +* For a Fedora development system use + + .. code-block:: bash + + sudo dnf install git + +Because we need up-to-date header files to generate API docs, doc +generation assumes the three repos are cloned as sibling folders. +Here's the recommended folder setup for documentation contributions and +generation: + +.. code-block: none + + projectacrn/ + acrn-documentation/ + acrn-hypervisor/ + acrn-devicemodel/ + +It's best if these folders are ssh clones of your personal forks of the +upstream project ACRN repos (though https clones work too): + +#. Use your browser to visit https://github.com/projectacrn. One at a + time, visit the **acrn-documentation**, **acrn-hypervisor**, and + **acrn-devicemodel** repos and do a fork to your personal GitHub account. + + .. image:: images/acrn-doc-fork.png + :align: center + +#. At a command prompt, create the working folder and clone the three + repositories to your local computer: + + .. code-block:: bash + + cd ~ + mkdir projectacrn && cd projectacrn + git clone git@github.com:/acrn-documentation.git + git clone git@github.com:/acrn-hypervisor.git + git clone git@github.com:/acrn-devicemodel.git + +#. For each of the cloned local repos, tell git about the upstream repos: + + .. code-block:: bash + + cd acrn-documentation + git remote add upstream git@github.com:projectacrn/acrn-documentation.git + cd ../acrn-hypervisor + git remote add upstream git@github.com:projectacrn/acrn-hypervisor.git + cd ../acrn-devicemodel + git remote add upstream git@github.com:projectacrn/acrn-devicemodel.git + cd .. + +#. If you haven't do so already, be sure to configure git with your name + and email address for the signed-off-by line in your commit messages: + + .. code-block:: bash + + git config --global user.name "David Developer" + git config --global user.email "david.developer@company.com" + +Installing the documentation tools +********************************** + +Our documentation processing has been tested to run with: + +* Python 3.6.3 +* Doxygen version 1.8.13 +* Sphinx version 1.6.7 +* Breathe version 4.7.3 +* docutils version 0.14 +* sphinx_rtd_theme version 0.2.4 + +Depending on your Linux version, install the needed tools: + +* For Ubuntu use: + + .. code-block:: bash + + sudo apt-get install doxygen python3-pip python3-wheel make + +* For Fedora use: + + .. code-block:: bash + + sudo dnf install doxygen python3-pip python3-wheel make + +And for either Linux environment, install the remaining python-based +tools: + + .. code-block:: bash + + cd ~/projectacrn/acrn-documentation + pip3 install --user -r scripts/requirements.txt + +And with that you're ready to generate the documentation. + +Documentation presentation theme +******************************** + +Sphinx supports easy customization of the generated documentation +appearance through the use of themes. Replace the theme files and do +another ``make htmldocs`` and the output layout and style is changed. +The ``read-the-docs`` theme is installed as part of the +``requirements.txt`` list above. + +Running the documentation processors +************************************ + +The acrn-documentation directory has all the .rst source files, extra tools, and Makefile for +generating a local copy of the ACRN technical documentation. + +.. code-block:: bash + + cd ~/projectacrn/acrn-documentation + make html + +Depending on your development system, it will take about 15 seconds to +collect and generate the HTML content. When done, you can view the HTML +output with your browser started at ``~/projectacrn/acrn-documentation/_build/html/index.html`` + +Publishing content +****************** + +If you have push rights to the projectacrn repo called +projectacrn.github.io, you can update the public project documentation +found at https://projectacrn.github.io. + +You'll need to do a one-time clone the upstream repo: + +.. code-block:: bash + + git clone git@github.com:projectacrn/projectacrn.github.io.git + +Then, after you've verified the generated HTML from ``make html`` looks +good, you can push directly to the publishing site with: + +.. code-block:: bash + + make publish + +This will delete everything in the publishing repo (in case the new version has +deleted files) and push a copy of the newly-generated HTML content +directly to the GitHub pages publishing repo. The public site at +https://projectacrn.github.io will be updated (nearly) immediately +so it's best to verify the locally generated html before publishing. + +Filtering expected warnings +*************************** + +Alas, there are some known issues with the doxygen/Sphinx/Breathe +processing that generates warnings for some constructs, in particular +around unnamed structures in nested unions or structs. +While these issues are being considered for fixing in +Sphinx/Breathe, we've added a post-processing filter on the output of +the documentation build process to check for "expected" messages from the +generation process output. + +The output from the Sphinx build is processed by the python script +``scripts/filter-known-issues.py`` together with a set of filter +configuration files in the ``.known-issues/doc`` folder. (This +filtering is done as part of the ``Makefile``.) + +If you're contributing components included in the ACRN API +documentation and run across these warnings, you can include filtering +them out as "expected" warnings by adding a conf file to the +``.known-issues/doc`` folder, following the example of other conf files +found there. + +.. _reStructuredText: http://sphinx-doc.org/rest.html +.. _Sphinx: http://sphinx-doc.org/ diff --git a/images/acrn-doc-fork.png b/images/acrn-doc-fork.png new file mode 100644 index 0000000000000000000000000000000000000000..9a06ba18076657e0377043f8e5defe81e1154ee9 GIT binary patch literal 55010 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 literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index efc794779..7760e34e6 100644 --- a/index.rst +++ b/index.rst @@ -31,6 +31,7 @@ Sections release_notes.rst contribute.rst api/index.rst + docbuild.rst Indices and Tables ****************** diff --git a/scripts/requirements.txt b/scripts/requirements.txt index cde1f185d..5adbdfa6d 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -1,4 +1,4 @@ breathe==4.7.3 -sphinx==1.6.5 +sphinx==1.6.7 docutils==0.14 sphinx_rtd_theme