From: Thanh Ha Date: Thu, 18 Oct 2018 15:47:50 +0000 (-0400) Subject: Parse version number from git tags X-Git-Tag: v0.1.0^2 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F50%2F13050%2F3;p=releng%2Fcommon-packer.git Parse version number from git tags Base documentation version numbers from git tags automatically. Change-Id: I205b4bb24073de69f135024e9612f9bd28009a93 Signed-off-by: Thanh Ha --- 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