Author: sebb
Date: Sat Apr 30 09:50:22 2016
New Revision: 1741736

URL: http://svn.apache.org/viewvc?rev=1741736&view=rev
Log:
Better handling of -alpha/beta/rc

Modified:
    commons/cms-site/trunk/conf/parse-latest-release.py

Modified: commons/cms-site/trunk/conf/parse-latest-release.py
URL: 
http://svn.apache.org/viewvc/commons/cms-site/trunk/conf/parse-latest-release.py?rev=1741736&r1=1741735&r2=1741736&view=diff
==============================================================================
--- commons/cms-site/trunk/conf/parse-latest-release.py (original)
+++ commons/cms-site/trunk/conf/parse-latest-release.py Sat Apr 30 09:50:22 2016
@@ -2,11 +2,23 @@
 
 import os
 import os.path
+import re
 
 # TODO rewrite to use standard Python XML(minidom or xml.etree) instead of 
requiring extra package
 from lxml import etree
 
-from distutils.version import LooseVersion, StrictVersion
+from distutils.version import StrictVersion
+
+def CommonsVersion(v):
+       # Massage the suffixes to satisfy StrictVersion
+       v1 = re.sub(r'-beta', "b", v)
+       v1 = re.sub(r'-rc', "a", v1)
+       v1 = re.sub(r'-alpha', "a", v1)
+#      if v != v1:
+#              print v,v1
+
+       # This compares numbers correctly and treats [ab]\d+ suffix as earlier 
than ones without
+       return(StrictVersion(v1))
 
 def findLatestVersion(element, version_tag, date_tag):
        latest_version = None
@@ -17,7 +29,7 @@ def findLatestVersion(element, version_t
                if latest_version == None:
                        latest_version = version_number
                        latest_date = date
-               elif LooseVersion(version_number) > 
LooseVersion(latest_version):
+               elif CommonsVersion(version_number) > 
CommonsVersion(latest_version):
                        latest_version = version_number
                        latest_date = date
 


Reply via email to