Don't wait until packaging for borking about invalid version strings

- Current pisi borks about invalid version string just before creating .pisi file.
Move that check to __init__ in Builder to fail as early as possible.

- Also handle unknown keywords in version strings to not fail with unhandled
exceptions.
This commit is contained in:
Ozan Çağlayan
2010-01-19 13:14:11 +00:00
parent 186bfada9f
commit 8f5aa7e6ab
3 changed files with 19 additions and 8 deletions
+5
View File
@@ -3,6 +3,11 @@
translations.xml reading. translations.xml reading.
* pisi/specfile.py (read_translations): Ignore source package * pisi/specfile.py (read_translations): Ignore source package
translations if <Name> is empty in translations.xml. translations if <Name> is empty in translations.xml.
* pisi/version.py (VersionItem): Handle unknown keywords in version
strings,
* pisi/operations/build.py (Builder.__init__): Don't wait until
creating .pisi file for borking about invalid version strings e.g.
something like "0.5.6.1_x1219" in <Update> element.
2010-01-12 Ozan Çağlayan <ozan@pardus.org.tr> 2010-01-12 Ozan Çağlayan <ozan@pardus.org.tr>
* pisi/actionsapi/get.py: Add ARCH() for getting host architecture. * pisi/actionsapi/get.py: Add ARCH() for getting host architecture.
+3 -2
View File
@@ -184,6 +184,9 @@ class Builder:
else: else:
self.specdir = os.path.dirname(self.specuri.get_uri()) self.specdir = os.path.dirname(self.specuri.get_uri())
# Don't wait until creating .pisi file for complaining about versioning scheme errors
self.check_versioning("%s-%s" % (self.spec.getSourceVersion(), self.spec.getSourceRelease()))
self.read_translations(self.specdir) self.read_translations(self.specdir)
self.sourceArchive = pisi.sourcearchive.SourceArchive(self.spec, self.pkg_work_dir()) self.sourceArchive = pisi.sourcearchive.SourceArchive(self.spec, self.pkg_work_dir())
@@ -957,8 +960,6 @@ class Builder:
self.metadata.package.build = build_no self.metadata.package.build = build_no
self.metadata.write(pisi.util.join_path(self.pkg_dir(), ctx.const.metadata_xml)) self.metadata.write(pisi.util.join_path(self.pkg_dir(), ctx.const.metadata_xml))
self.check_versioning("%s-%s" % (self.spec.getSourceVersion(), self.spec.getSourceRelease()))
# Calculate new and oldpackage names for buildfarm # Calculate new and oldpackage names for buildfarm
name = pisi.util.package_name(package.name, name = pisi.util.package_name(package.name,
self.spec.getSourceVersion(), self.spec.getSourceVersion(),
+11 -6
View File
@@ -25,13 +25,15 @@ maxdashes = 2
# p > (no suffix) > m > rc > pre > beta > alpha # p > (no suffix) > m > rc > pre > beta > alpha
# m: milestone. this was added for OO.o # m: milestone. this was added for OO.o
# p: patch-level # p: patch-level
keywords = {"alpha": 0, keywords = {
"beta" : 1, "alpha" : 0,
"pre" : 2, "beta" : 1,
"rc" : 3, "pre" : 2,
"m" : 4, "rc" : 3,
"m" : 4,
"NOKEY" : 5, "NOKEY" : 5,
"p" : 6} "p" : 6,
}
# helper functions # helper functions
def has_keyword(versionitem): def has_keyword(versionitem):
@@ -71,6 +73,9 @@ class VersionItem:
if len(itemstring) == 1 and itemstring in string.ascii_letters: if len(itemstring) == 1 and itemstring in string.ascii_letters:
# single letter version item ('a' to 'Z') # single letter version item ('a' to 'Z')
self._value = itemstring self._value = itemstring
elif len(itemstring) > 1 and itemstring[0] in string.ascii_letters:
# Unknown keyword
raise VersionException("")
else: else:
self._value = int(itemstring) self._value = int(itemstring)
else: else: