From afbfc031f7a9bc794439fde2bacf0d6916b84c1f Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@brief.schottelius.org>
Date: Thu, 25 Oct 2012 19:12:22 +0200
Subject: [PATCH 1/3] begin to split off version information from source

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
---
 .version                              | 1 +
 doc/dev/logs/2012-10-25.version-split | 3 +++
 2 files changed, 4 insertions(+)
 create mode 100644 .version
 create mode 100644 doc/dev/logs/2012-10-25.version-split

diff --git a/.version b/.version
new file mode 100644
index 00000000..3d45b5c6
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+2.0.14
diff --git a/doc/dev/logs/2012-10-25.version-split b/doc/dev/logs/2012-10-25.version-split
new file mode 100644
index 00000000..975e1173
--- /dev/null
+++ b/doc/dev/logs/2012-10-25.version-split
@@ -0,0 +1,3 @@
+- store version in .version
+- when distributed / packaged, include .version into sourcecode
+- when in git checkout, use dynamic versioning

From 637e4b28cbd091766ee51687be435d12bb6c2a32 Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@brief.schottelius.org>
Date: Thu, 25 Oct 2012 22:19:27 +0200
Subject: [PATCH 2/3] include base for dynamic and static versioning

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
---
 build                                 | 16 ++++++++++++++--
 doc/dev/logs/2012-10-25.version-split |  7 ++++---
 lib/cdist/__init__.py                 | 11 +++--------
 lib/cdist/version.py                  |  1 +
 lib/cdist/version_dynamic.py          | 27 +++++++++++++++++++++++++++
 5 files changed, 49 insertions(+), 13 deletions(-)
 create mode 120000 lib/cdist/version.py
 create mode 100644 lib/cdist/version_dynamic.py

diff --git a/build b/build
index bec7f5a9..a9647ff1 100755
--- a/build
+++ b/build
@@ -134,7 +134,7 @@ case "$1" in
    ;;
 
    clean)
-      rm -f ${MAN7DSTDIR}/cdist-reference.text
+      rm -f ${MAN7DSTDIR}/cdist-reference.text lib/cdist/version.py
       find "${MANDIR}" -mindepth 2 -type l \
          -o -name "*.1" \
          -o -name "*.7" \
@@ -154,7 +154,19 @@ case "$1" in
       fi
    ;;
 
-   *)
+    version-dynamic)
+        cd lib/cdist/
+        ln -sf version_dynamic.py version.py
+    ;;
+
+    version-dist)
+        version=$(cat .version)
+        cd lib/cdist/
+        echo "VERSION=\"$version\"" > version_static.py
+        ln -sf version_static.py version.py
+    ;;
+
+    *)
       echo ''
       echo 'Welcome to cdist!'
       echo ''
diff --git a/doc/dev/logs/2012-10-25.version-split b/doc/dev/logs/2012-10-25.version-split
index 975e1173..f381c48f 100644
--- a/doc/dev/logs/2012-10-25.version-split
+++ b/doc/dev/logs/2012-10-25.version-split
@@ -1,3 +1,4 @@
-- store version in .version
-- when distributed / packaged, include .version into sourcecode
-- when in git checkout, use dynamic versioning
+x store version in .version
+x when distributed / packaged, include .version into sourcecode
+    split into two files
+x when in git checkout, use dynamic versioning
diff --git a/lib/cdist/__init__.py b/lib/cdist/__init__.py
index 85bc5f77..02d708b1 100644
--- a/lib/cdist/__init__.py
+++ b/lib/cdist/__init__.py
@@ -22,14 +22,9 @@
 import os
 import subprocess
 
-try:
-    with open(os.devnull, 'w') as devnull:
-        here = os.path.dirname(os.path.realpath(__file__))
-        VERSION = subprocess.check_output(
-                    'cd "%s" && git describe' % here,
-                    stderr=devnull, shell=True).decode('utf-8')
-except:
-    VERSION     = "2.0.14"
+import cdist.version
+
+VERSION = cdist.version.VERSION
 
 BANNER = """
              ..          .       .x+=:.        s
diff --git a/lib/cdist/version.py b/lib/cdist/version.py
new file mode 120000
index 00000000..153cf043
--- /dev/null
+++ b/lib/cdist/version.py
@@ -0,0 +1 @@
+version_dynamic.py
\ No newline at end of file
diff --git a/lib/cdist/version_dynamic.py b/lib/cdist/version_dynamic.py
new file mode 100644
index 00000000..5f69f374
--- /dev/null
+++ b/lib/cdist/version_dynamic.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+#
+# 2010-2012 Nico Schottelius (nico-cdist at schottelius.org)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see <http://www.gnu.org/licenses/>.
+#
+#
+
+import os
+import subprocess
+
+here = os.path.dirname(os.path.realpath(__file__))
+VERSION = subprocess.check_output('cd "%s" && git describe' % here,
+    shell=True).decode('utf-8')

From d3c7abbaba7935efd8c4e6a9176ecef8ee36deb0 Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@brief.schottelius.org>
Date: Thu, 25 Oct 2012 22:32:05 +0200
Subject: [PATCH 3/3] ignore static version

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
---
 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.gitignore b/.gitignore
index 69a8ea98..b86e4a99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,6 @@ doc/man/man*/docbook-xsl.css
 
 # Python / cache
 __pycache__/
+
+# Is static and will never be included
+lib/cdist/version_static.py