]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Fix versioning code
authorJeff Peeler <jpeeler@redhat.com>
Sat, 29 Sep 2012 00:00:34 +0000 (20:00 -0400)
committerJeff Peeler <jpeeler@redhat.com>
Tue, 9 Oct 2012 16:05:54 +0000 (17:05 +0100)
Removed cruft from OpenStack common versioning code that was removed.
Added optional git SHA information if module is available. The
intent is to have the additional git revision reported only when FINAL
is set to False.

Change-Id: Iae94b84027e7428cd394726e07845d2bad631586
Signed-off-by: Jeff Peeler <jpeeler@redhat.com>
heat/service.py
heat/version.py
setup.py

index 4ea5ba0d2db80bc2c5d1f89d5b95cd58472a8041..5552444046305c6fda704d60630b723a9a0eb579 100644 (file)
@@ -116,7 +116,7 @@ class Service(object):
         self.timers = []
 
     def start(self):
-        vcs_string = version.version_string_with_vcs()
+        vcs_string = version.version_string(type='long')
         LOG.info(_('Starting %(topic)s node (version %(vcs_string)s)'),
                   {'topic': self.topic, 'vcs_string': vcs_string})
         # TODO do we need this ? -> utils.cleanup_file_locks()
index 82f0aaa12fb41772cbffcfdcd462ac7bc3b0c73a..2c75971aef05a0d1e93e6ef6939056cdfe05f8cb 100644 (file)
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+
 try:
-    from heat.vcsversion import version_info
+    import git
 except ImportError:
-    version_info = {'branch_nick': u'LOCALBRANCH',
-                    'revision_id': 'LOCALREVISION',
-                    'revno': 0}
+    git = None
 
-HEAT_VERSION = ['7']
-REVISION = HEAT_VERSION
+try:
+    from heat.vcsversion import version_info
+except ImportError:
+    version_info = {'sha': ''}
 
+HEAT_VERSION = '7'
 FINAL = False   # This becomes true at Release Candidate time
 
 
-def canonical_version_string():
-    return '.'.join(filter(None, HEAT_VERSION))
+def get_git_sha():
+    if not git:
+        return version_info['sha']
+
+    try:
+        repo = git.Repo('.')
+    except InvalidGitRepositoryError:
+        return version_info['sha']
+    return repo.head.commit.hexsha
 
 
-def version_string():
-    if FINAL:
-        return canonical_version_string()
-    else:
-        return '%s-dev' % (canonical_version_string(),)
+def write_git_sha():
+    if not git:
+        return
 
+    sha = get_git_sha()
 
-def vcs_version_string():
-    return "%s:%s" % (version_info['branch_nick'], version_info['revision_id'])
+    if sha:
+        with open('heat/vcsversion.py', 'w') as version_file:
+            version_file.write("""
+# This file is automatically generated by heat's setup.py, so don't edit it. :)
+version_info = {
+    'sha': '%s'
+}
+""" % (sha))
 
 
-def version_string_with_vcs():
-    return "%s-%s" % (canonical_version_string(), vcs_version_string())
+def version_string(type='short'):
+    version = HEAT_VERSION
+    if not FINAL:
+        version += '-dev ' + get_git_sha()
+    elif type != 'short':
+        version += ' ' + get_git_sha()
+    return version
index 72b1d95683f5cd7ec72c91050b42dc49f0d9cf4c..4503489e08f89c9a410423f153f14bcb7efeb83d 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -21,12 +21,12 @@ import setuptools
 
 from heat.openstack.common import setup
 
-# import this after write_vcsversion because version imports vcsversion
 from heat import version
+version.write_git_sha()
 
 setuptools.setup(
     name='heat',
-    version=version.canonical_version_string(),
+    version=version.HEAT_VERSION,
     description='The heat project provides services for provisioning '
                 'virtual machines',
     license='Apache License (2.0)',