~sbeattie/conflictchecker/conflictchecker-fixups

2 by Robert Collins
Create MissingConflictFinder class and tests for getting possible
1
* consult launchpad publishing records to decide what missing conflicts
2
are still relevant. A missing conflict rule in a non published package
3
is not relevant; a missing conflict in a published package with a non
4
published package is relevant.
5
this can be inferred reasonably reliable by using the all_packages members
6
as the 'published' versions : any conflict that does not involve one
7
member of the current all packages dictionary is not interesting. 
8
* Make this code able to be run quickly, incrementally, as a check during
9
publishing. An upload that introduces a new conflict bug can be rejected.
10
11
order of processing:
12
 1) get all active packages
13
 2) pull said package files and insert into database
14
 3) TODO if the list of files [which intersect other packages] and the 
15
    conflicts/replaces/provides entries are unchanged, just adjust the version
16
    it is replacing's entries.
17
 3) for each conflicting file (can optimise later, to gather a group of
18
    identical conflicts on a set of files):
19
 3a) generate a list of all pairs involving any published package on the
20
    left and any package, published or not, on the right.
21
 3b) for each of these pairs check whether the conflicts relation is satisified
22
    (stop here), or the replaces relation is satisfied (stop here, it was an
23
    upgrade).
24
    if neither of these are satisfied, then a bug is present. 
12 by Robert Collins
Notes on persistence
25
26
conflicts <= always wrong (, conflicts > always wrong (not supported)