Index: Ft/Lib/DistExt/Version.py =================================================================== RCS file: /var/local/cvsroot/4Suite/Ft/Lib/DistExt/Version.py,v retrieving revision 1.1 retrieving revision 1.1.2.2 diff -u -r1.1 -r1.1.2.2 --- Ft/Lib/DistExt/Version.py 12 Aug 2006 15:56:24 -0000 1.1 +++ Ft/Lib/DistExt/Version.py 19 Nov 2008 10:05:21 -0000 1.1.2.2 @@ -27,7 +27,7 @@ """ version_re = re.compile(r'\d+(\.\d+)*') - tag_re = re.compile(r'[.-]?([a-zA-Z]+)(\d+(?:\.\d)*)?') + tag_re = re.compile(r'[_.-]?([a-zA-Z]+)?(\d+(?:\.\d)*)?') # 'tag_aliases' maps release tags to the tag that should be used for # comparison purposes. @@ -66,15 +66,23 @@ if not match: raise ValueError("invalid release tag: %r" % vstring[start:]) tag, version = match.groups() - tag = tag.lower() - if tag in self.tag_aliases: - tag = self.tag_aliases[tag] + if tag: + tag = tag.lower() + if tag in self.tag_aliases: + tag = self.tag_aliases[tag] + else: + tag = None if version: version = versiontuple(version) else: version = None + if not (tag or version): + # Nothing matched, use the remainder as the tag + tag = vstring[start:] + start = end + else: + start = match.end() tags.append((tag, version)) - start = match.end() self.tags = tuple(tags) return