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