diff mbox series

[v2,11/11] docs/conf.py: Don't hard-code QEMU version

Message ID 20190228145624.24885-12-peter.maydell@linaro.org
State Superseded
Headers show
Series Enable build and install of our rST docs | expand

Commit Message

Peter Maydell Feb. 28, 2019, 2:56 p.m. UTC
Don't hard-code the QEMU version number into conf.py. Instead
we either pass it to sphinx-build on the command line, or
(if doing a standalone Sphinx run in a readthedocs.org setup)
extract it from the VERSION file.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

---
 Makefile     |  2 +-
 docs/conf.py | 21 ++++++++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé Feb. 28, 2019, 3:55 p.m. UTC | #1
On 2/28/19 3:56 PM, Peter Maydell wrote:
> Don't hard-code the QEMU version number into conf.py. Instead

> we either pass it to sphinx-build on the command line, or

> (if doing a standalone Sphinx run in a readthedocs.org setup)

> extract it from the VERSION file.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>


> ---

>  Makefile     |  2 +-

>  docs/conf.py | 21 ++++++++++++++++-----

>  2 files changed, 17 insertions(+), 6 deletions(-)

> 

> diff --git a/Makefile b/Makefile

> index 46cb8e62571..526bac7f516 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -865,7 +865,7 @@ docs/version.texi: $(SRC_PATH)/VERSION

>  sphinxdocs: docs/devel/index.html docs/interop/index.html

>  

>  # Canned command to build a single manual

> -build-manual = $(call quiet-command,sphinx-build $(if $(V),,-q) -b html -d .doctrees/$1 $(SRC_PATH)/docs/$1 docs/$1 ,"SPHINX","docs/$1")

> +build-manual = $(call quiet-command,sphinx-build $(if $(V),,-q) -b html -D version=$(VERSION) -D release="$(FULL_VERSION)" -d .doctrees/$1 $(SRC_PATH)/docs/$1 docs/$1 ,"SPHINX","docs/$1")

>  # We assume all RST files in the manual's directory are used in it

>  manual-deps = $(wildcard $(SRC_PATH)/docs/$1/*.rst) $(SRC_PATH)/docs/$1/conf.py $(SRC_PATH)/docs/conf.py

>  

> diff --git a/docs/conf.py b/docs/conf.py

> index 6a334f545ec..0842d44e930 100644

> --- a/docs/conf.py

> +++ b/docs/conf.py

> @@ -75,11 +75,22 @@ author = u'The QEMU Project Developers'

>  # The version info for the project you're documenting, acts as replacement for

>  # |version| and |release|, also used in various other places throughout the

>  # built documents.

> -#

> -# The short X.Y version.

> -version = u'4.0'

> -# The full version, including alpha/beta/rc tags.

> -release = u'4.0'

> +

> +# Extract this information from the VERSION file, for the benefit of

> +# standalone Sphinx runs as used by readthedocs.org. Builds run from

> +# the Makefile will pass version and release on the sphinx-build

> +# command line, which override this.

> +try:

> +    extracted_version = None

> +    with open(os.path.join(qemu_docdir, '../VERSION')) as f:

> +        extracted_version = f.readline().strip()

> +except:

> +    pass

> +finally:

> +    if extracted_version:

> +        version = release = extracted_version

> +    else:

> +        version = release = "unknown version"

>  

>  # The language for content autogenerated by Sphinx. Refer to documentation

>  # for a list of supported languages.

>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 46cb8e62571..526bac7f516 100644
--- a/Makefile
+++ b/Makefile
@@ -865,7 +865,7 @@  docs/version.texi: $(SRC_PATH)/VERSION
 sphinxdocs: docs/devel/index.html docs/interop/index.html
 
 # Canned command to build a single manual
-build-manual = $(call quiet-command,sphinx-build $(if $(V),,-q) -b html -d .doctrees/$1 $(SRC_PATH)/docs/$1 docs/$1 ,"SPHINX","docs/$1")
+build-manual = $(call quiet-command,sphinx-build $(if $(V),,-q) -b html -D version=$(VERSION) -D release="$(FULL_VERSION)" -d .doctrees/$1 $(SRC_PATH)/docs/$1 docs/$1 ,"SPHINX","docs/$1")
 # We assume all RST files in the manual's directory are used in it
 manual-deps = $(wildcard $(SRC_PATH)/docs/$1/*.rst) $(SRC_PATH)/docs/$1/conf.py $(SRC_PATH)/docs/conf.py
 
diff --git a/docs/conf.py b/docs/conf.py
index 6a334f545ec..0842d44e930 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -75,11 +75,22 @@  author = u'The QEMU Project Developers'
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
-#
-# The short X.Y version.
-version = u'4.0'
-# The full version, including alpha/beta/rc tags.
-release = u'4.0'
+
+# Extract this information from the VERSION file, for the benefit of
+# standalone Sphinx runs as used by readthedocs.org. Builds run from
+# the Makefile will pass version and release on the sphinx-build
+# command line, which override this.
+try:
+    extracted_version = None
+    with open(os.path.join(qemu_docdir, '../VERSION')) as f:
+        extracted_version = f.readline().strip()
+except:
+    pass
+finally:
+    if extracted_version:
+        version = release = extracted_version
+    else:
+        version = release = "unknown version"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.