]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - setup.py
strip the single quotes around $VERSION
[tahoe-lafs/tahoe-lafs.git] / setup.py
index f18b82aa0aee7231811ea707a3bd6244ccb78c35..d6fe60b9a41c34e7aa69e21b9183dbd441d72d44 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -37,7 +37,8 @@ def read_version_py(infname):
         if mo:
             return mo.group(1)
 
-version = read_version_py("src/allmydata/_version.py")
+VERSION_PY_FILENAME = 'src/allmydata/_version.py'
+version = read_version_py(VERSION_PY_FILENAME)
 
 APPNAME='allmydata-tahoe'
 APPNAMEFILE = os.path.join('src', 'allmydata', '_appname.py')
@@ -261,9 +262,9 @@ __version__ = verstr
 '''
 
 def run_command(args, cwd=None):
+    use_shell = sys.platform == "win32"
     try:
-        # remember shell=False, so use git.cmd on windows, not just git
-        p = subprocess.Popen(args, stdout=subprocess.PIPE, cwd=cwd)
+        p = subprocess.Popen(args, stdout=subprocess.PIPE, cwd=cwd, shell=use_shell)
     except EnvironmentError as e:  # if this gives a SyntaxError, note that Tahoe-LAFS requires Python 2.6+
         print("Warning: unable to run %r." % (" ".join(args),))
         print(e)
@@ -302,10 +303,7 @@ def versions_from_git(tag_prefix):
         print("Warning: unable to find version because we could not obtain the source directory.")
         print(e)
         return {}
-    GIT = "git"
-    if sys.platform == "win32":
-        GIT = "git.cmd"
-    stdout = run_command([GIT, "describe", "--tags", "--dirty", "--always"],
+    stdout = run_command(["git", "describe", "--tags", "--dirty", "--always"],
                          cwd=source_dir)
     if stdout is None:
         # run_command already complained.
@@ -320,7 +318,7 @@ def versions_from_git(tag_prefix):
     else:
         normalized_version = "%s.post%s" % (pieces[0], pieces[1])
 
-    stdout = run_command([GIT, "rev-parse", "HEAD"], cwd=source_dir)
+    stdout = run_command(["git", "rev-parse", "HEAD"], cwd=source_dir)
     if stdout is None:
         # run_command already complained.
         return {}
@@ -330,7 +328,7 @@ def versions_from_git(tag_prefix):
         normalized_version += ".dev0"
 
     # Thanks to Jistanidiot at <http://stackoverflow.com/questions/6245570/get-current-branch-name>.
-    stdout = run_command([GIT, "rev-parse", "--abbrev-ref", "HEAD"], cwd=source_dir)
+    stdout = run_command(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=source_dir)
     branch = (stdout or "unknown").strip()
 
     return {"version": version, "normalized": normalized_version, "full": full, "branch": branch}
@@ -350,19 +348,25 @@ class UpdateVersion(Command):
     def finalize_options(self):
         pass
     def run(self):
+        global version
+        verstr = version
         if os.path.isdir(os.path.join(basedir, ".git")):
             verstr = self.try_from_git()
-        else:
-            print("no version-control data found, leaving _version.py alone")
-            return
+
         if verstr:
             self.distribution.metadata.version = verstr
+        else:
+            print("""\
+********************************************************************
+Warning: no version information found. This may cause tests to fail.
+********************************************************************
+""")
 
     def try_from_git(self):
-        versions = versions_from_git("allmydata-tahoe-")
+        # If we change APPNAME, the release tag names should also change from then on.
+        versions = versions_from_git(APPNAME + '-')
         if versions:
-            fn = 'src/allmydata/_version.py'
-            f = open(fn, "wb")
+            f = open(VERSION_PY_FILENAME, "wb")
             f.write(GIT_VERSION_BODY %
                     { "pkgname": self.distribution.get_name(),
                       "version": versions["version"],
@@ -371,7 +375,8 @@ class UpdateVersion(Command):
                       "branch": versions["branch"],
                     })
             f.close()
-            print("git-version: wrote '%s' into '%s'" % (versions["version"], fn))
+            print("Wrote normalized version %r into '%s'" % (versions["normalized"], VERSION_PY_FILENAME))
+
         return versions.get("normalized", None)