From: Joerg Jaspert Date: Sun, 2 Mar 2008 15:39:41 +0000 (+0100) Subject: Move database query in own function in database.py, use it from check-transition X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68be5a147bb14adf6625b8bbf6436a0831deeb32;p=dak Move database query in own function in database.py, use it from check-transition --- diff --git a/ChangeLog b/ChangeLog index 4831564f..66f68142 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-03-02 Joerg Jaspert + * daklib/database.py (get_testing_version): Added. Returns the + version for the source in testing, if any + * dak/process_unchecked.py (check_transition): Added. Checks if a release team member defined a transition, and rejects based on that data. @@ -9,6 +12,7 @@ (check_transition): Moved out of here, into daklib/queue (process_it): Call check_transitions only if changes[architecture] has source included. + (check_transition): Now call the database.get_testing_version 2008-02-06 Joerg Jaspert diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 73cff83b..d0fc9c02 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -1005,7 +1005,6 @@ def check_timestamps(): # We reject packages if the release team defined a transition for them def check_transition(sourcepkg): - to_dump = 0 # Only check if there is a file defined (and existant) with checks. It's a little bit # specific to Debian, not much use for others, so return early there. @@ -1018,26 +1017,21 @@ def check_transition(sourcepkg): try: transitions = load(sourcefile) except error, msg: + # This shouldn't happen, the release team has a wrapper to check the file, but better + # safe then sorry utils.warn("Not checking transitions, the transitions file is broken: %s." % (msg)) return # Now look through all defined transitions for trans in transition: t = transition[trans] - # We check if the transition is still valid - # If not we remove the whole setting from the dictionary and later dump it, - # so we don't process it again. source = t["source"] new_vers = t["new"] - q = Upload.projectB.query(""" - SELECT s.version FROM source s, suite su, src_associations sa - WHERE sa.source=s.id - AND sa.suite=su.id - AND su.suite_name='testing' - AND s.source='%s'""" - % (source)) - ql = q.getresult() - if ql and apt_pkg.VersionCompare(new_vers, ql[0][0]) == 1: + + # Will be None if nothing is in testing. + curvers = daklib.database.get_testing_version(source) + + if curvers and apt_pkg.VersionCompare(new_vers, curvers) == 1: # This is still valid, the current version in database is older than # the new version we wait for @@ -1050,23 +1044,15 @@ def check_transition(sourcepkg): Transition description: %s - This transition will finish when %s, version %s, reaches testing. + This transition will finish when %s, version %s, reaches testing (it currently + has version %s). This transition is managed by the Release Team and %s is the Release-Team member responsible for it. Please contact them or debian-release@lists.debian.org if you need further assistance. """ - % (sourcepkg, trans, source, t["reason"], source, new_vers, t["rm"])) + % (sourcepkg, trans, source, t["reason"], source, new_vers, curvers, t["rm"])) return 0 - else: - # We either have the wanted or a newer version in testing, or the package got - # removed completly. In that case we don't need to keep the transition blocker - del transition[trans] - to_dump = 1 - - if cleanup and to_dump: - destfile = file(Cnf["Dinstall::Reject::ReleaseTransitions"], 'w') - dump(transition, destfile) ################################################################################