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