mirror of
				https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
				synced 2025-11-04 10:34:05 +00:00 
			
		
		
		
	keep track of verdict when invalidating deps
This commit is contained in:
		
							parent
							
								
									abaa4c7205
								
							
						
					
					
						commit
						b70d1d09d7
					
				@ -75,7 +75,7 @@ class Excuse(object):
 | 
			
		||||
        self.forced = False
 | 
			
		||||
        self._policy_verdict = PolicyVerdict.REJECTED_PERMANENTLY
 | 
			
		||||
 | 
			
		||||
        self.all_invalid_deps = set()
 | 
			
		||||
        self.all_invalid_deps = {}
 | 
			
		||||
        self.all_deps = {}
 | 
			
		||||
        self.sane_deps = []
 | 
			
		||||
        self.break_deps = []
 | 
			
		||||
@ -171,9 +171,9 @@ class Excuse(object):
 | 
			
		||||
        """Add an unsatisfiable dependency"""
 | 
			
		||||
        self.unsat_deps[arch].add(signature)
 | 
			
		||||
 | 
			
		||||
    def invalidate_dependency(self, name):
 | 
			
		||||
    def invalidate_dependency(self, name, verdict):
 | 
			
		||||
        """Invalidate dependency"""
 | 
			
		||||
        self.all_invalid_deps.add(name)
 | 
			
		||||
        self.all_invalid_deps[name] = verdict
 | 
			
		||||
 | 
			
		||||
    def setdaysold(self, daysold, mindays):
 | 
			
		||||
        """Set the number of days from the upload and the minimum number of days for the update"""
 | 
			
		||||
@ -239,11 +239,11 @@ class Excuse(object):
 | 
			
		||||
                    continue
 | 
			
		||||
                seen[deptype] = True
 | 
			
		||||
                if x in invalid_deps:
 | 
			
		||||
                    res.append("<li>%s: %s <a href=\"#%s\">%s</a> (not considered)\n" % (field, self.name, dep, dep))
 | 
			
		||||
                    res.append("%s: %s <a href=\"#%s\">%s</a> (not considered)" % (field, self.name, dep, dep))
 | 
			
		||||
                else:
 | 
			
		||||
                    res.append("<li>%s: %s <a href=\"#%s\">%s</a>\n" % (field, self.name, dep, dep))
 | 
			
		||||
                    res.append("%s: %s <a href=\"#%s\">%s</a>" % (field, self.name, dep, dep))
 | 
			
		||||
 | 
			
		||||
        return "".join(res)
 | 
			
		||||
        return res
 | 
			
		||||
 | 
			
		||||
    def html(self):
 | 
			
		||||
        """Render the excuse in HTML"""
 | 
			
		||||
@ -274,6 +274,10 @@ class Excuse(object):
 | 
			
		||||
        for v in sorted(self.verdict_info.keys(), reverse=True):
 | 
			
		||||
            for x in self.verdict_info[v]:
 | 
			
		||||
                res.append("" + x + "")
 | 
			
		||||
            di = [x for x in self.all_invalid_deps.keys() if self.all_invalid_deps[x] == v]
 | 
			
		||||
            ad = {x: self.all_deps[x] for x in di}
 | 
			
		||||
            for x in self._render_dep_issues(ad, di):
 | 
			
		||||
                res.append("" + x + "")
 | 
			
		||||
        if self.infoline:
 | 
			
		||||
            res.append("Additional info:")
 | 
			
		||||
            for x in self.infoline:
 | 
			
		||||
@ -313,14 +317,14 @@ class Excuse(object):
 | 
			
		||||
            }
 | 
			
		||||
        if self.all_invalid_deps:
 | 
			
		||||
            excusedata['invalidated-by-other-package'] = True
 | 
			
		||||
        if self.all_deps or self.all_invalid_deps \
 | 
			
		||||
        if self.all_deps or self.all_invalid_deps.keys() \
 | 
			
		||||
                or self.break_deps or self.unsat_deps:
 | 
			
		||||
            excusedata['dependencies'] = dep_data = {}
 | 
			
		||||
            migrate_after = sorted(self.all_deps.keys() - self.all_invalid_deps)
 | 
			
		||||
            migrate_after = sorted(self.all_deps.keys() - self.all_invalid_deps.keys())
 | 
			
		||||
            break_deps = [x for x, _ in self.break_deps if x not in self.all_deps]
 | 
			
		||||
 | 
			
		||||
            if self.all_invalid_deps:
 | 
			
		||||
                dep_data['blocked-by'] = sorted(self.all_invalid_deps)
 | 
			
		||||
            if self.all_invalid_deps.keys():
 | 
			
		||||
                dep_data['blocked-by'] = sorted(self.all_invalid_deps.keys())
 | 
			
		||||
            if migrate_after:
 | 
			
		||||
                dep_data['migrate-after'] = migrate_after
 | 
			
		||||
            if break_deps:
 | 
			
		||||
 | 
			
		||||
@ -700,16 +700,16 @@ def invalidate_excuses(excuses, valid, invalid):
 | 
			
		||||
                # if the item is valid and it is not marked as `forced', then we invalidate it
 | 
			
		||||
                if x in valid and not excuses[x].forced:
 | 
			
		||||
 | 
			
		||||
                    if excuses[x].policy_verdict < rdep_verdict:
 | 
			
		||||
                        excuses[x].policy_verdict = rdep_verdict
 | 
			
		||||
                    # otherwise, invalidate the dependency and mark as invalidated and
 | 
			
		||||
                    # remove the depending excuses
 | 
			
		||||
                    excuses[x].invalidate_dependency(ename)
 | 
			
		||||
                    excuses[x].invalidate_dependency(ename, rdep_verdict)
 | 
			
		||||
                    valid.discard(x)
 | 
			
		||||
                    invalid.add(x)
 | 
			
		||||
                    for deptype in allrevdeps[ename][x]:
 | 
			
		||||
                        excuses[x].addhtml("Invalidated by %s" % deptype.get_description())
 | 
			
		||||
                        excuses[x].addreason(deptype.get_reason())
 | 
			
		||||
                    if excuses[x].policy_verdict < rdep_verdict:
 | 
			
		||||
                        excuses[x].policy_verdict = rdep_verdict
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def compile_nuninst(target_suite, architectures, nobreakall_arches):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user