[virt-tools-list] [PATCH-v6.1 4/5] add option for snapshot-id suffix to __version__

Gene Czarcinski gene at czarc.net
Wed Apr 17 00:44:16 UTC 2013


1.  The added suffix is in the form YYYYMMDD and that is all.

2.  Code is added to classes my_sdist and my_rpm to check if
a snapshot id is requested (--snapshot or -s) and, if
requested, to append the id to the value of cliconfig.__version__

3.  The added suffix only applies to the name of the sdist-tarball
and the rpm spec file it includes ... the "internal" version
remains unchanged.
.
Signed-off-by: Gene Czarcinski <gene at czarc.net>
---
 setup.py             | 41 +++++++++++++++++++++++++++++++++--------
 virtcli/cliconfig.py |  2 ++
 2 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/setup.py b/setup.py
index 167caf6..54d8299 100644
--- a/setup.py
+++ b/setup.py
@@ -8,6 +8,7 @@ import fnmatch
 import os
 import sys
 import unittest
+from datetime import date
 
 from distutils.core import Command, setup
 from distutils.command.sdist import sdist
@@ -181,19 +182,40 @@ class my_install(install):
 
         install.finalize_options(self)
 
-class my_sdist(sdist_auto, sdist):
-    user_option = []
+# Note: cliconfig.__snapshot__ by default is 0, it can be set to 1 by
+#       either sdist or rpm and then the snapshot suffix is appended.
+
+class my_sdist(sdist_auto):
+    user_options=sdist.user_options + [
+            ("snapshot", "s", "add snapshot id to version")]
+
+    boolean_options=sdist.boolean_options + ["snapshot"]
+
     description = "Update virt-manager.spec; build sdist-tarball."
 
+    def initialize_options(self):
+        self.snapshot = None
+        sdist.initialize_options(self)
+
+    def finalize_options(self):
+        if self.snapshot is not None:
+            self.snapshot = 1
+            cliconfig.__snapshot__ = 1
+        sdist.finalize_options(self)
+
     def run(self):
         ver = cliconfig.__version__
+        if cliconfig.__snapshot__ == 1:
+            ver = ver + '.' +  date.today().isoformat().replace('-', '')
+        cliconfig.__version__ = ver
+        setattr(self.distribution.metadata, 'version', ver)
         f1 = open('virt-manager.spec.in', 'r')
         f2 = open('virt-manager.spec', 'w')
         for line in f1:
             f2.write(line.replace('@VERSION@', ver))
         f1.close()
         f2.close()
-        sdist.run(self)
+        sdist_auto.run(self)
 
 
 ###################
@@ -201,21 +223,24 @@ class my_sdist(sdist_auto, sdist):
 ###################
 
 class my_rpm(Command):
-    user_options = []
-    description = "Build a non-binary rpm."
+    user_options=[("snapshot", "s", "add snapshot id to version")]
+
+    description = "Build src and noarch rpms."
 
     def initialize_options(self):
-        pass
+        self.snapshot = None
 
     def finalize_options(self):
-        pass
+        if self.snapshot is not None:
+            self.snapshot = 1
+            cliconfig.__snapshot__ = 1
 
     def run(self):
         """
         Run sdist, then 'rpmbuild' the tar.gz
         """
         self.run_command('sdist')
-        os.system('rpmbuild -ta dist/virt-manager-%s.tar.gz' %
+        os.system('rpmbuild -ta --clean dist/virt-manager-%s.tar.gz' %
                   cliconfig.__version__)
 
 
diff --git a/virtcli/cliconfig.py b/virtcli/cliconfig.py
index 6b2660f..121a0a3 100644
--- a/virtcli/cliconfig.py
+++ b/virtcli/cliconfig.py
@@ -44,6 +44,8 @@ def _get_param(name, default):
 
 __version__ = "0.9.100"
 
+__snapshot__ = 0
+
 _usr_version = _get_param("pkgversion", "")
 if _usr_version is not None and _usr_version != "":
     __version__ = _usr_version
-- 
1.8.1.4




More information about the virt-tools-list mailing list