From 441eea989780ce0c7d4623acb6cb883e96c9f548 Mon Sep 17 00:00:00 2001
From: Marc Bonnici <marc.bonnici@arm.com>
Date: Wed, 20 Feb 2019 11:50:53 +0000
Subject: [PATCH] devlib/version: Implement devlibs version as a namedtuple

Instead of defining devlibs versions as a string use a namedtuple and
add in a revision field.
---
 devlib/__init__.py      |  4 ++--
 devlib/utils/version.py | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/devlib/__init__.py b/devlib/__init__.py
index e1c07e8..4deab24 100644
--- a/devlib/__init__.py
+++ b/devlib/__init__.py
@@ -53,10 +53,10 @@ from devlib.host import LocalConnection
 from devlib.utils.android import AdbConnection
 from devlib.utils.ssh import SshConnection, TelnetConnection, Gem5Connection
 
-from devlib.utils.version import get_commit as __get_commit
+from devlib.utils.version import get_devlib_version, get_commit as __get_commit
 
 
-__version__ = '1.1.dev1'
+__version__ = get_devlib_version()
 
 __commit = __get_commit()
 if __commit:
diff --git a/devlib/utils/version.py b/devlib/utils/version.py
index 16b4308..eba36dd 100644
--- a/devlib/utils/version.py
+++ b/devlib/utils/version.py
@@ -15,8 +15,23 @@
 
 import os
 import sys
+from collections import namedtuple
 from subprocess import Popen, PIPE
 
+
+VersionTuple = namedtuple('Version', ['major', 'minor', 'revision', 'dev'])
+
+version = VersionTuple(1, 1, 0, 'dev1')
+
+
+def get_devlib_version():
+    version_string = '{}.{}.{}'.format(
+        version.major, version.minor, version.revision)
+    if version.dev:
+        version_string += '.{}'.format(version.dev)
+    return version_string
+
+
 def get_commit():
     p = Popen(['git', 'rev-parse', 'HEAD'], cwd=os.path.dirname(__file__),
               stdout=PIPE, stderr=PIPE)