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 2021/04/20 00:33:31 UTC
svn commit: r1888987 - in /commons/cms-site/trunk/conf:
component_releases.properties parse-latest-release.py
Author: sebb
Date: Tue Apr 20 00:33:31 2021
New Revision: 1888987
URL: http://svn.apache.org/viewvc?rev=1888987&view=rev
Log:
Use minidom and simplify parsing
Modified:
commons/cms-site/trunk/conf/component_releases.properties
commons/cms-site/trunk/conf/parse-latest-release.py
Modified: commons/cms-site/trunk/conf/component_releases.properties
URL: http://svn.apache.org/viewvc/commons/cms-site/trunk/conf/component_releases.properties?rev=1888987&r1=1888986&r2=1888987&view=diff
==============================================================================
--- commons/cms-site/trunk/conf/component_releases.properties (original)
+++ commons/cms-site/trunk/conf/component_releases.properties Tue Apr 20 00:33:31 2021
@@ -1,9 +1,9 @@
bcelVersion=6.5.0
-bcelReleased=2020-06-10
+bcelReleased=2020-06-05
beanutilsVersion=1.9.4
beanutilsReleased=2019-08-13
bsfVersion=3.1
-bsfReleased=2010-06-24
+bsfReleased=2010-24-06
chainVersion=1.2
chainReleased=2008-06-02
cliVersion=1.4
@@ -11,21 +11,21 @@ cliReleased=2017-03-09
codecVersion=1.15
codecReleased=2020-09-01
collectionsVersion=4.4
-collectionsReleased=2019-07-08
+collectionsReleased=2019-07-05
compressVersion=1.20
compressReleased=2020-02-08
configurationVersion=2.7
configurationReleased=2020-03-11
-cryptoVersion=1.1.0
-cryptoReleased=2020-09-02
+cryptoVersion=1.0.0
+cryptoReleased=2016-07-22
csvVersion=1.8
-csvReleased=2020-02-06
-daemonVersion=1.2.2
-daemonReleased=2019-09-30
-dbcpVersion=2.8.0
-dbcpReleased=2020-09-25
-dbutilsVersion=1.7
-dbutilsReleased=2017-07-20
+csvReleased=2020-02-01
+daemonVersion=1.2.4
+daemonReleased=2021-01-21
+dbcpVersion=2.3.0
+dbcpReleased=2018-05-12
+dbutilsVersion=1.6
+dbutilsReleased=2014-07-20
digesterVersion=3.2
digesterReleased=2011-12-13
discoveryVersion=0.5
@@ -40,36 +40,36 @@ functorVersion=1.0
functorReleased=2011-??-??
geometryVersion=1.0-beta1
geometryReleased=2020-07-19
-imagingVersion=1.0-alpha1
-imagingReleased=2019-05-02
-ioVersion=2.8.0
-ioReleased=2020-09-10
+imagingVersion=1.0-alpha2
+imagingReleased=2020-08-07
+ioVersion=2.6
+ioReleased=2017-10-15
jciVersion=1.1
jciReleased=2013-10-14
jcsVersion=3.0
jcsReleased=2020-08-16
-jellyVersion=1.0.1
-jellyReleased=2017-09-27
+jellyVersion=1.0
+jellyReleased=2005-06-16
jexlVersion=3.1
jexlReleased=2017-04-14
jxpathVersion=1.3
jxpathReleased=2008-08-14
-langVersion=3.12.0
-langReleased=2021-03-01
+langVersion=3.9
+langReleased=2019-04-15
launcherVersion=1.1
launcherReleased=2004-08-22
loggingVersion=1.2
loggingReleased=2014-07-11
mathVersion=3.5
mathReleased=2015-04-17
-netVersion=3.8.0
-netReleased=2021-02-19
+netVersion=3.7
+netReleased=2020-08-06
numbersVersion=1.0-beta1
numbersReleased=2020-04-08
ognlVersion=4.0
ognlReleased=2013-??-??
-poolVersion=2.9.0
-poolReleased=2020-09-29
+poolVersion=2.4.2
+poolReleased=2015-08-01
proxyVersion=1.0
proxyReleased=2008-02-28
rdfVersion=0.5.0
@@ -79,12 +79,12 @@ rngReleased=2019-11-11
scxmlVersion=0.9
scxmlReleased=2008-12-01
statisticsVersion=0.1
-statisticsReleased=????-??-??
-textVersion=1.9
-textReleased=2019-07-25
+statisticsReleased=2018-01-03
+textVersion=1.6
+textReleased=2018-10-16
validatorVersion=1.7
validatorReleased=2020-08-07
-vfsVersion=2.8.0
-vfsReleased=2021-03-10
+vfsVersion=2.2
+vfsReleased=2017-10-06
weaverVersion=2.0
weaverReleased=2018-09-07
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=1888987&r1=1888986&r2=1888987&view=diff
==============================================================================
--- commons/cms-site/trunk/conf/parse-latest-release.py (original)
+++ commons/cms-site/trunk/conf/parse-latest-release.py Tue Apr 20 00:33:31 2021
@@ -5,8 +5,7 @@ import os.path
import re
from inspect import getsourcefile
-# TODO rewrite to use standard Python XML(minidom or xml.etree) instead of requiring extra package
-from lxml import etree
+from xml.dom import minidom
from distutils.version import StrictVersion
@@ -24,50 +23,42 @@ def CommonsVersion(v):
# This compares numbers correctly and treats [ab]\d+ suffix as earlier than ones without
return(StrictVersion(v1))
-def findLatestVersion(element, version_tag, date_tag):
+def getText(parent):
+ rc = []
+ for node in parent.childNodes:
+ if node.nodeType == node.TEXT_NODE:
+ rc.append(node.data)
+ return ''.join(rc)
+
+def getReleaseInfo(path):
+ rels = minidom.parse(path).getElementsByTagName('release')
+
latest_version = None
latest_date = None
- for version_element in element:
- version_number = version_element.xpath("./*[local-name() = '" + version_tag + "']/text()")[0]
- date = version_element.xpath("./*[local-name() = '" + date_tag + "']/text()")[0]
- if latest_version == None:
- latest_version = version_number
- latest_date = date
- elif CommonsVersion(version_number) > CommonsVersion(latest_version):
- latest_version = version_number
- latest_date = date
+ for rel in rels:
+ revision = None
+ created = None
+ for ver in rel.childNodes: # these must be Version elements
+ if isinstance(ver, minidom.Element):
+ for child in ver.childNodes:
+ if isinstance(child, minidom.Element):
+ tag = child.tagName.lower()
+ if tag in ['version', 'revision']:
+ revision = getText(child)
+ if tag == 'created':
+ created = getText(child)
+ if latest_version == None or CommonsVersion(revision) > CommonsVersion(latest_version):
+ latest_version = revision
+ latest_date = created
return latest_version, latest_date
-def getReleaseInfo(file):
- with open(file) as f:
- tree = etree.parse(f).getroot()
-
- version = None
- date = None
-
- latest_release = tree.xpath("//*[local-name() = 'release']/*[local-name() = 'Version']")
- if len(latest_release) > 0:
- version, date = findLatestVersion(latest_release, 'revision', 'created')
-
- if version == None:
- latest_release = tree.xpath("//*[local-name() = 'release']/*[local-name() = 'revision']")
- if len(latest_release) > 0:
- version, date = findLatestVersion(latest_release, 'version', 'created')
-
- if version == None:
- latest_release = tree.xpath("//*[local-name() = 'release']/*[local-name() = 'version']")
- if len(latest_release) > 0:
- version, date = findLatestVersion(latest_release, 'revision', 'created')
-
- return version, date
-
f = open(os.path.join(MYPATH, 'component_releases.properties'), 'w+')
-for file in sorted(os.listdir(DOAPS)):
- comp_name = file[5:-4] # drop doap_ prefix and .rdf suffix
- version, date = getReleaseInfo(os.path.join(DOAPS, file))
+for name in sorted(os.listdir(DOAPS)):
+ comp_name = name[5:-4] # drop doap_ prefix and .rdf suffix
+ version, date = getReleaseInfo(os.path.join(DOAPS, name))
print(comp_name, version, date)
if version != None:
f.write(comp_name + 'Version=' + version + '\n')