/[collab-qa]/udd/web/cgi-bin/merges.cgi
ViewVC logotype

Contents of /udd/web/cgi-bin/merges.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1764 - (hide annotations) (download)
Mon Aug 2 18:15:59 2010 UTC (2 years, 10 months ago) by lucas
File size: 3110 byte(s)
various udd changes
1 lucas 1649 #!/usr/bin/ruby -w
2    
3     require 'dbi'
4     require 'pp'
5     require 'uri'
6     require 'net/http'
7    
8 lucas 1739 URELEASE='maverick'
9 lucas 1649
10     puts "Content-type: text/html\n\n"
11    
12     puts <<-EOF
13     <html>
14     <head>
15     <style type="text/css">
16     td, th {
17     border: 1px solid gray;
18     padding-left: 3px;
19     padding-right: 3px;
20     }
21     tr:hover {
22     background-color: #ccc;
23     }
24     table {
25     border-collapse: collapse;
26     }
27     </style>
28     <title>Ubuntu: outstanding merges</title>
29     </head>
30     <body>
31     <h1>Outstanding merges</h1>
32     EOF
33    
34 lucas 1764 DREL='sid'
35 lucas 1739 UREL='maverick'
36 lucas 1649 puts "Debian release: #{DREL}<br>"
37     puts "Ubuntu release: #{UREL}<br>"
38 lucas 1693 puts "Bugs data refreshed once a day. Packages data refreshed twice a day.<br>"
39     puts "<a href=\"http://svn.debian.org/wsvn/collab-qa/udd/web/cgi-bin/merges.cgi\">Source code</a>"
40 lucas 1649
41     dbh = DBI::connect('DBI:Pg:dbname=udd;port=5441;host=localhost', 'guest')
42    
43     # Fetching blacklist
44     blacklist = Net::HTTP.get(URI::parse('http://people.canonical.com/~ubuntu-archive/sync-blacklist.txt')).split(/\n/)
45     bpkgs = []
46     blacklist.each do |l|
47     l.gsub!(/#.*/, '')
48     l.strip!
49     next if l == ''
50     bpkgs << l
51     end
52     sbpkgs = "'" + bpkgs.uniq.join("','") + "'"
53    
54     sth = dbh.prepare("select ubu.component, deb.source, deb.version as dversion, ubu.version as uversion
55     from sources_uniq deb, ubuntu_sources ubu
56     where deb.distribution='debian' and deb.release='#{DREL}'
57     and ubu.distribution='ubuntu' and ubu.release='#{UREL}'
58     and deb.source = ubu.source and deb.version > ubu.version
59     and deb.source not in (#{sbpkgs})
60     and ubu.version !~ '[0-9]build[0-9]'
61     order by component, source")
62     sth.execute ; rows = sth.fetch_all
63    
64     sth2 = dbh.prepare("select distinct package, b.bug, title, status
65     from ubuntu_bugs b, ubuntu_bugs_tasks bt
66     where b.bug = bt.bug
67     and title ~ '^((P|p)lease )?((M|m)erge|(S|s)ync) .* from Debian'
68 lucas 1764 and status not in ('Invalid', 'Fix Released', 'Won''t Fix', 'Opinion')
69 lucas 1649 and distro != 'Debian'")
70     sth2.execute ; rowsb = sth2.fetch_all
71    
72     bugs = {}
73     rowsb.each do |r|
74     src = r['package']
75     bugs[src] = [] if bugs[src].nil?
76     bugs[src] << [r['bug'], r['status']]
77     end
78    
79     puts "<table>"
80     puts "<tr><th>Component</th><th>Source</th><th>Debian</th><th>Ubuntu</th><th>Bugs</th></tr>"
81     rows.each do |r|
82     puts "<tr>"
83     puts "<td>#{r['component']}</td>"
84     puts "<td>#{r['source']} "
85     puts "<a href=\"https://launchpad.net/ubuntu/+source/#{r['source']}\">LP</a> "
86     puts "<a href=\"http://packages.qa.debian.org/#{r['source']}\">PTS</a> "
87     puts "<a href=\"http://bugs.debian.org/src:#{r['source']}\">BTS</a> "
88     puts "</td>"
89     puts "<td>#{r['dversion']}</td>"
90     puts "<td>#{r['uversion']}</td>"
91     puts "<td>"
92     if bugs[r['source']] != nil
93     puts bugs[r['source']].map { |b| "<a href=\"https://launchpad.net/bugs/#{b[0]}\">#{b[0]}</a> (#{b[1]})" }.join('<br>')
94     end
95     puts "</tr>"
96     end
97     puts "</table>"
98     puts "#{rows.length} packages listed<br>"
99     ['main', 'restricted', 'universe', 'multiverse'].each do |comp|
100     n = rows.select { |r| r['component'] == comp }.length
101     puts "#{comp}: #{n}<br>"
102     end
103     puts "#{bpkgs.length} packages in the <a href=\"http://people.canonical.com/~ubuntu-archive/sync-blacklist.txt\">blacklist</a>"
104     sth.finish
105     puts "</body></html>"

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5