You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2016/04/30 11:50:22 UTC

svn commit: r1741736 - /commons/cms-site/trunk/conf/parse-latest-release.py

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