qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/11] Enable build and install of our rST docs
@ 2019-02-01 14:50 Peter Maydell
  2019-02-01 14:50 ` [Qemu-devel] [PATCH 01/11] docs/cpu-hotplug.rst: Fix rST markup issues Peter Maydell
                   ` (26 more replies)
  0 siblings, 27 replies; 50+ messages in thread
From: Peter Maydell @ 2019-02-01 14:50 UTC (permalink / raw)
  To: qemu-devel
  Cc: patches, Stefan Hajnoczi, Paolo Bonzini, Daniel P . Berrangé,
	Marc-André Lureau, Philippe Mathieu-Daudé

This patchset enables building and installing the various rST
docs we have started to accumulate in our docs/ directory.
It does this using Sphinx (which is the docs tooling that the
Linux kernel uses). The series is not trying to take us in one
giant leap to a brave new Sphinx-powered world -- it is simply
setting up a framework so that we are at least building and
shipping these documents and can gradually migrate other parts
of our documentation to it.

The approach I've used here is that we will have multiple "manuals",
as proposed by Paolo here:
  https://wiki.qemu.org/Features/Documentation
For the moment I've only created 'interop' and 'devel' as we don't
yet have any rST files for 'user', 'system' or 'specs'.

One slightly awkward mismatch between how Sphinx naturally wants
to work and our requirements is that when Sphinx generates a
documentation set all in one go it creates hyperlinks between
all the docs, they all appear in a single top level table of
contents, and so on. But for QEMU's docs we don't want to
ship the "devel" manual to end-users. I've taken an approach
suggested to me on sphinx-users
(https://www.mail-archive.com/sphinx-users@googlegroups.com/msg03224.html)
where we run Sphinx once per manual, and treat them as
entirely separate documents. The config/tooling in this patchset
also supports building everything in a single run, for compatibility
with third-party docs sites like readthedocs.org.

To see the results:

What you get in the docs/ subdir of your build directory
when you do a local build:
 http://people.linaro.org/~peter.maydell/build-dir-docs/
(follow the links to 'devel' and 'interop' for the two manuals)

What we'll ship in 'make install' in /usr/local/share/doc/qemu/
http://people.linaro.org/~peter.maydell/installed-docs/
(should be same as the build dir except we don't ship 'devel')

What you get with a standalone single-run docs build:
 http://people.linaro.org/~peter.maydell/standalone-docs/index.html

These use the default 'alabaster' theme from Sphinx. I
also experimented with the 'read_the_docs' theme, which I
do think looks nicer. Unfortunately it also requires the
docs we install to include about 3MB of TrueType font files
per manual, which is awkward licensing-wise as the TTFs are
under the Open Font License and it's not completely clear to
me that it's OK to ship those to use with a doc file that is
GPLed. Alabaster doesn't ship fonts, which sidesteps both
those problems.

Other notes:
 * this does not build the two .rst files that are directly
   in docs/ (cpu-hotplug.rst and pr-manager.rst) -- we should
   move these to whichever of the five manuals is the best place
 * I do have some prototype patches which integrate the kernel's
   kerneldoc Sphinx extension to parse doc comments in source
   code. I haven't included them here because I think the 'devel'
   manual is the lowest priority of the five. They might be
   useful if we want to try things like building documentation
   of supported machine models from in-code comments/etc, though.
 * as noted in a previous email thread, the configure changes
   now mean that building docs depends on build-sphinx being
   available, so this is a new build-dep for --enable-docs.

thanks
-- PMM

Peter Maydell (11):
  docs/cpu-hotplug.rst: Fix rST markup issues
  docs: Convert memory.txt to rst format
  docs: Commit initial files from sphinx-quickstart
  docs/conf.py: Disable unused _static directory
  docs/conf.py: Configure the 'alabaster' theme
  docs/conf.py: Don't include rST sources in HTML build
  docs/conf.py: Disable option warnings
  Separate conf.py for each manual we want
  Makefile, configure: Support building rST documentation
  Makefile: Abstract out "identify the pkgversion" code
  docs/conf.py: Don't hard-code QEMU version

 configure                             |   4 +-
 Makefile                              |  78 +++++++---
 docs/conf.py                          | 215 ++++++++++++++++++++++++++
 docs/cpu-hotplug.rst                  |   2 +-
 docs/devel/conf.py                    |  15 ++
 docs/devel/index.rst                  |  21 +++
 docs/devel/{memory.txt => memory.rst} | 128 ++++++++-------
 docs/index.rst                        |  15 ++
 docs/interop/conf.py                  |  15 ++
 docs/interop/index.rst                |  18 +++
 10 files changed, 430 insertions(+), 81 deletions(-)
 create mode 100644 docs/conf.py
 create mode 100644 docs/devel/conf.py
 create mode 100644 docs/devel/index.rst
 rename docs/devel/{memory.txt => memory.rst} (85%)
 create mode 100644 docs/index.rst
 create mode 100644 docs/interop/conf.py
 create mode 100644 docs/interop/index.rst

-- 
2.20.1

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2019-02-28 13:40 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-01 14:50 [Qemu-devel] [PATCH 00/11] Enable build and install of our rST docs Peter Maydell
2019-02-01 14:50 ` [Qemu-devel] [PATCH 01/11] docs/cpu-hotplug.rst: Fix rST markup issues Peter Maydell
2019-02-01 16:29   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 02/11] docs: Convert memory.txt to rst format Peter Maydell
2019-02-01 16:31   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 03/11] docs: Commit initial files from sphinx-quickstart Peter Maydell
2019-02-01 16:41   ` Alex Bennée
2019-02-01 16:46     ` Peter Maydell
2019-02-01 17:34   ` Peter Maydell
2019-02-01 14:50 ` [Qemu-devel] [PATCH 04/11] docs/conf.py: Disable unused _static directory Peter Maydell
2019-02-01 16:41   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 05/11] docs/conf.py: Configure the 'alabaster' theme Peter Maydell
2019-02-01 16:43   ` Alex Bennée
2019-02-28 13:39     ` Peter Maydell
2019-02-01 14:50 ` [Qemu-devel] [PATCH 06/11] docs/conf.py: Don't include rST sources in HTML build Peter Maydell
2019-02-01 16:43   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 07/11] docs/conf.py: Disable option warnings Peter Maydell
2019-02-01 16:44   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 08/11] Separate conf.py for each manual we want Peter Maydell
2019-02-01 16:58   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 09/11] Makefile, configure: Support building rST documentation Peter Maydell
2019-02-01 16:19   ` Alex Bennée
2019-02-01 16:25     ` Peter Maydell
2019-02-01 17:11     ` Alex Bennée
2019-02-01 17:16       ` Peter Maydell
2019-02-01 14:50 ` [Qemu-devel] [PATCH 10/11] Makefile: Abstract out "identify the pkgversion" code Peter Maydell
2019-02-01 16:59   ` Alex Bennée
2019-02-01 14:50 ` [Qemu-devel] [PATCH 11/11] docs/conf.py: Don't hard-code QEMU version Peter Maydell
2019-02-01 17:04   ` Alex Bennée
2019-02-01 15:05 ` [Qemu-devel] [PATCH 00/11] Enable build and install of our rST docs no-reply
2019-02-01 17:40   ` Peter Maydell
2019-02-01 15:09 ` no-reply
2019-02-01 16:56 ` no-reply
2019-02-01 17:14 ` no-reply
2019-02-01 17:15 ` no-reply
2019-02-01 17:17 ` no-reply
2019-02-01 17:18 ` no-reply
2019-02-01 17:19 ` no-reply
2019-02-01 17:22 ` no-reply
2019-02-01 17:29 ` no-reply
2019-02-01 17:33 ` no-reply
2019-02-01 17:34 ` no-reply
2019-02-01 17:37 ` no-reply
2019-02-01 17:48 ` no-reply
2019-02-03 15:14 ` no-reply
2019-02-14 11:29 ` Peter Maydell
2019-02-14 14:56   ` Marc-André Lureau
2019-02-14 15:24     ` Peter Maydell
2019-02-14 18:46       ` Paolo Bonzini
2019-02-14 19:00         ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).