doc: update genrest script for latest kconfiglib

The genrest.py script (used to generate config documentation from the
Kconfig files) broke when upgrading to the latest kconfiglib (10.9.1).
Copied the latest genrest.py script from the Zephyr project (where this
script and processing was developed) and things work again.

Update Makefile's call to genrest.py (toplevel Kconfig path is now found
relative to the srctree.

Update requirements.txt to match the kconfiglib version family
verified to work.

fixes: #1387

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

Documentation scripts: enhance 'show-versions.py'

Modify the doc/scripts/show-versions.py script by making it
gather the list of Python modules to check the version for from
the "requirements.txt" file. It should help keep this in sync
if/when our requirements evolve.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
This commit is contained in:
David B. Kinder 2018-10-01 14:25:21 -07:00 committed by David Kinder
parent 1c0a05705f
commit 8e21d5ee99
3 changed files with 35 additions and 12 deletions

View File

@ -46,7 +46,7 @@ content:
kconfig:
$(Q)srctree=../hypervisor \
python3 scripts/genrest.py ../hypervisor/Kconfig reference/kconfig/
python3 scripts/genrest.py Kconfig reference/kconfig/
pullsource:
$(Q)scripts/pullsource.sh

View File

@ -2,4 +2,4 @@ breathe==4.9.1
sphinx==1.7.7
docutils==0.14
sphinx_rtd_theme==0.4.0
kconfiglib==10.9.1
kconfiglib==10.*

View File

@ -6,15 +6,38 @@
#
# Show installed versions of doc building tools
import os.path
import sys
import pkg_resources
import subprocess
print ("breathe version: " +
__import__("breathe").__version__ + "\n" +
"docutils version: " +
__import__("docutils").__version__ + "\n" +
"sphinx version: " +
__import__("sphinx").__version__ + "\n" +
"sphinx_rtd_theme version: " +
__import__("sphinx_rtd_theme").__version__ + "\n" +
"doxygen version: " +
subprocess.check_output(["doxygen", "-v"]).decode("utf-8"))
class color:
PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'
# Check all requirements listed in requirements.txt and print out version installed (if any)
print ("Listing versions of doc build dependencies found on your system...\n")
rf = open(os.path.join(sys.path[0], "requirements.txt"),"r")
for reqs in pkg_resources.parse_requirements(rf):
try:
ver = pkg_resources.get_distribution(reqs.project_name).version
print (" " + reqs.project_name.ljust(25," ") + " version: " + ver)
except:
print (color.RED + color.BOLD + reqs.project_name + " is missing." + color.END +
" (Hint: install all dependencies with " + color.YELLOW +
"\"pip3 install --user -r requirements.txt\"" + color.END + ")")
rf.close()
# Print out the version of Doxygen (not installed via pip3)
print (" " + "doxygen".ljust(25," ") + " version: " + subprocess.check_output(["doxygen", "-v"]).decode("utf-8"))