From 0d40801826d81a2bf8e64590abd961a2811ed440 Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Thu, 18 Oct 2018 11:47:50 -0400 Subject: [PATCH] Parse version number from git tags Base documentation version numbers from git tags automatically. Change-Id: I205b4bb24073de69f135024e9612f9bd28009a93 Signed-off-by: Thanh Ha --- docs/conf.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index 62617af..5b3b5a2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,4 +18,31 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. # +import subprocess + from docs_conf.conf import * + +def format_version(version): + fmt = '{tag}.dev{commitcount}+{gitsha}' + parts = version.split('-') + assert len(parts) in (3, 4) + dirty = len(parts) == 4 + tag, count, sha = parts[:3] + if count == '0' and not dirty: + return tag + return fmt.format(tag=tag, commitcount=count, gitsha=sha.lstrip('g')) + +# 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. +command = 'git describe --tags --long --dirty' +try: + git_version = format_version( + subprocess.check_output(command.split()).decode('utf-8').strip()) +except subprocess.CalledProcessError: # Handle docs builds from tarball + git_version = "v0.0.9999-local" +version = git_version +# The full version, including alpha/beta/rc tags. +release = version -- 2.16.6