Author: lucas Date: 2010-05-17 14:05:25 +0000 (Mon, 17 May 2010) New Revision: 1742
Modified: ddpo-by-mail/Makefile ddpo-by-mail/ddpo-config.rb ddpo-by-mail/reminder-mail.rb ddpo-by-mail/udddata.rb Log: various improvements Modified: ddpo-by-mail/Makefile =================================================================== --- ddpo-by-mail/Makefile 2010-05-07 15:24:31 UTC (rev 1741) +++ ddpo-by-mail/Makefile 2010-05-17 14:05:25 UTC (rev 1742) @@ -1,6 +1,6 @@ #!/usr/bin/make -f -UPDATE_TARGETS:=dehs.txt wnpp_rm bugs_stable.txt bugs_unstable.txt security-packages.txt +UPDATE_TARGETS:=dehs.txt wnpp_rm security-packages.txt ARCHITECTURES:=alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc #ARCHITECTURES:=$(shell dpkg-architecture -L | tr "\n" ",") LOCAL_MIRROR:=/org/ftp.debian.org/ftp Modified: ddpo-by-mail/ddpo-config.rb =================================================================== --- ddpo-by-mail/ddpo-config.rb 2010-05-07 15:24:31 UTC (rev 1741) +++ ddpo-by-mail/ddpo-config.rb 2010-05-17 14:05:25 UTC (rev 1742) @@ -2,16 +2,10 @@ if ENV['DEBFULLNAME'] OWNER = ENV['DEBFULLNAME'] else - OWNER = `getent passwd $(id -un) | cut -d: -f5` + OWNER = 'Lucas Nussbaum' end -if ENV['DEBEMAIL'] - OWNER_EMAIL = ENV['DEBEMAIL'] -else - require 'etc' - require 'socket' - OWNER_EMAIL = Etc.getlogin+'@'+Socket.gethostname -end +OWNER_EMAIL = '[email protected]' # Globally excluded packages EXC_PKGS = [ @@ -60,6 +54,7 @@ '[email protected]', '[email protected]', '[email protected]', + '[email protected]', '[email protected]', '[email protected]', '[email protected]', @@ -99,11 +94,12 @@ EXC_EMAILS_PKGS['[email protected]'] = ['ekiga'] EXC_EMAILS_PKGS['[email protected]'] = ['kfreebsd-7', 'kfreebsd-8'] EXC_EMAILS_PKGS['[email protected]'] = ['icedove'] +EXC_EMAILS_PKGS['[email protected]'] = ['apt-proxy'] -BUG_AGE = 2 +BUG_AGE = 1 AGE_IN_DEBIAN = 20 -LAST_IN_SYNC = 20 -LAST_IN_SYNC_SERIOUS = 30 +LAST_IN_SYNC = 14 +LAST_IN_SYNC_SERIOUS = 24 # etch released on 2007-04-08. So # (Date::today - Date::parse('2007-04-08')).to_i @@ -115,8 +111,16 @@ d = Date::today MAIL_DIR = "archives/" + d.year.to_s + d.month.to_s + d.day.to_s +RGEMAILS = [ + '[email protected]', + '[email protected]', + '[email protected]', + '[email protected]', + '[email protected]', + '[email protected]', +] + # Release Goals -# FIXME missing tags: goal-enriched-chroot RGTAGS = { 'goal-dash' => 'switch /bin/sh to dash', 'qa-doublebuild' => 'double compilation support', @@ -143,33 +147,3 @@ 'ftbfs-gcc-4.4' => 'support gcc 4.4 as the default compiler', 'kfreebsd' => 'kfreebsd-* as release architectures' } - -=begin -RGTAGS = { - 'goal-dash' => 'switch /bin/sh to dash', - 'qa-doublebuild' => 'double compilation support', - 'goal-recommends' => 'no unmet recommends', - 'debmake' => 'drop debmake from Debian', - 'utf8-control' => 'UTF-8 changelog and control', - 'piuparts-stable-upgrade' => 'piuparts-clean archive', - 'goal-python2.5' => 'python2.5 support', - 'gfortran' => 'g77 -> gfortran transition', - 'lfs' => 'Remove arbitrary file size limits', - 'ipv6' => 'IPv6 support', - 'nfs-v4' => 'Support version 4 of the NFS protocol', - 'ddtp' => 'I18n support for package descriptions', - 'not-using-po-debconf' => 'I18n support in all debconf-using packages', - 'goal-ddtp' => 'I18n support for package descriptions', - 'boot-dependencies' => 'dependency-based init system', - 'missing-dependency' => 'dependency-based init system', - 'obsolete-initscript' => 'dependency-based init system', - 'runtime-problem' => 'dependency-based init system', - 'incorrect-provides' => 'dependency-based init system', - 'incorrect-dependency' => 'dependency-based init system', - 'incorrect-boot-order' => 'dependency-based init system', - 'incorrect-updatercd-order' => 'dependency-based init system', - 'ftbfs-gcc-4.4' => 'support gcc 4.4 as the default compiler', - 'ftbfs-gcc-4.5' => 'support gcc 4.5 as the default compiler', - 'kfreebsd' => 'kfreebsd-* as release architectures' -} -=end Modified: ddpo-by-mail/reminder-mail.rb =================================================================== --- ddpo-by-mail/reminder-mail.rb 2010-05-07 15:24:31 UTC (rev 1741) +++ ddpo-by-mail/reminder-mail.rb 2010-05-17 14:05:25 UTC (rev 1742) @@ -3,7 +3,6 @@ puts "#{Time::now} Starting and reading the data we need" require 'ddpo-config' -require 'bugs' require 'udddata' udd = UDDData::new @@ -47,6 +46,8 @@ builds = udd.missing_builds lintian = udd.lintian dehs = udd.dehs +rcbugs = udd.rcbugs +rgbugs = udd.rgbugs # get removals rms = [] @@ -67,8 +68,6 @@ end =end -bugs = parse_bugs - # compute testing issues testingissues = {} udd.testing_status.each_pair do |pkg, v| @@ -95,7 +94,7 @@ serious = {} issues = {} -(bugs.keys + testingissues.keys + dehs.keys + security.keys).sort.uniq.each do |pkg| +(rcbugs.keys + rgbugs.keys + testingissues.keys + dehs.keys + security.keys).sort.uniq.each do |pkg| next if $pkg_maintainer[pkg].nil? # means the package wasn't in unstable Sources! if EXC_PKGS.include?(pkg) @@ -108,10 +107,14 @@ end pissues = [] pserious = false - if bugs[pkg] != nil - pissues << [ :bugs, bugs[pkg] ] - pserious = bugs[pkg].inject(pserious) { |a, b| a or b[1] } # update pserious + if rcbugs[pkg] != [] + pissues << [ :rcbugs, rcbugs[pkg] ] + pserious = true end + if rgbugs[pkg] != [] + pissues << [ :rgbugs, rgbugs[pkg] ] + pserious = true + end if builds[pkg] pissues << [ :builds, builds[pkg] ] pserious = true @@ -143,7 +146,8 @@ # prevent typos by using constants, so that it breaks :) T_INCLUDE = "include" T_HEADER = "header" -T_BUGS = "bugs" +T_RCBUGS = "rcbugs" +T_RGBUGS = "rgbugs" T_BUILDS = "builds" T_TESTING = "testing" T_LINTIAN = "lintian" @@ -209,6 +213,7 @@ text = {} text[T_DEHS] = "" + text[T_LINTIAN] = "" # iterate on all packages (maintained.keys + mpkgs.keys).sort.uniq.each do |pkg| @@ -231,25 +236,25 @@ text[pkg][T_HEADER] = "=== #{pkg}:#{comaint}\n" text[pkg][T_INCLUDE] = false issues[pkg].each do |iss| - if iss[0] == :bugs + if iss[0] == :rcbugs bugs = iss[1].reject { |b| EXC_EMAILS_BUGS[email].include?(b[0]) } next if bugs.length == 0 text[pkg][T_INCLUDE] = true - text[pkg][T_BUGS] = "= #{bugs.length} Release Critical or Release Goal bug(s):\n" + text[pkg][T_RCBUGS] = "= #{bugs.length} Release Critical bug(s):\n" bugs.each do |b| - text[pkg][T_BUGS] += "- ##{b[0]} <http://bugs.debian.org/#{b[0]}>\n" - text[pkg][T_BUGS] += " #{b[3]}\n" - if b[2] == "RC" - if b[4] - text[pkg][T_BUGS] += " Appears to affect stable, you should fix it for the next point release\n" - end - # add nothing - elsif b[2] == "PROP" - # add nothing - else - text[pkg][T_BUGS] += " Part of release goal: #{b[2]}\n" - end + text[pkg][T_RCBUGS] += "- ##{b[0]} <http://bugs.debian.org/#{b[0]}>\n" + text[pkg][T_RCBUGS] += " #{b[1]}\n" end + elsif iss[0] == :rgbugs + bugs = iss[1].reject { |b| EXC_EMAILS_BUGS[email].include?(b[0]) } + next if bugs.length == 0 + text[pkg][T_INCLUDE] = true + text[pkg][T_RGBUGS] = "= #{bugs.length} Release Goals bug(s):\n" + bugs.each do |b| + text[pkg][T_RGBUGS] += "- ##{b[0]} <http://bugs.debian.org/#{b[0]}>\n" + text[pkg][T_RGBUGS] += " #{b[1]}\n" + text[pkg][T_RGBUGS] += " Part of release goal: #{RGTAGS[b[2]]}\n" + end elsif iss[0] == :builds text[pkg][T_INCLUDE] = true text[pkg][T_BUILDS] = "= Missing build(s) on #{iss[1].join(' ')}\n" @@ -276,22 +281,15 @@ end text[T_DEHS] += " #{pkg} #{iss[2]} (Debian: #{iss[1]})\n" elsif iss[0] == :lintian - next if iss[1] < 1 + if text[T_LINTIAN] == '' + text[T_LINTIAN] = "=== Packages with lintian errors and warnings:\n" + end if $pkg_maintainer[pkg].nil? puts "Ugh, pkg vs maintainer relationship missing for #{pkg}!" exit end - text[pkg][T_INCLUDE] = true if iss[1] > 0 - text[pkg][T_LINTIAN] = "= Lintian:" - if iss[1] > 0 - text[pkg][T_LINTIAN] += " #{iss[1]} error(s)" - end - if iss[2] and iss[2].to_i > 0 - text[pkg][T_LINTIAN] += " and" if iss[1] > 0 - text[pkg][T_LINTIAN] += " #{iss[2]} warning(s)" - end - text[pkg][T_LINTIAN] += "\n" - text[pkg][T_LINTIAN] += " See http://lintian.debian.org/maintainer/#{$pkg_maintainer[pkg]}.html##{pkg}\n" + text[T_LINTIAN] += "- #{pkg} (#{iss[1]} errors, #{iss[2]} warnings)\n" + text[T_LINTIAN] += " <http://lintian.debian.org/maintainer/#{$pkg_maintainer[pkg]}.html##{pkg}>\n" elsif iss[0] == :security text[pkg][T_INCLUDE] = true text[pkg][T_SECURITY] = "= There " @@ -312,10 +310,10 @@ if text[pkg][T_INCLUDE] gtext += text[pkg][T_HEADER] gtext += text[pkg][T_SECURITY] if text[pkg][T_SECURITY] - gtext += text[pkg][T_BUGS] if text[pkg][T_BUGS] + gtext += text[pkg][T_RCBUGS] if text[pkg][T_RCBUGS] + gtext += text[pkg][T_RGBUGS] if text[pkg][T_RGBUGS] gtext += text[pkg][T_BUILDS] if text[pkg][T_BUILDS] gtext += text[pkg][T_TESTING] if text[pkg][T_TESTING] - gtext += text[pkg][T_LINTIAN] if text[pkg][T_LINTIAN] gtext += "\n" end end @@ -328,9 +326,8 @@ next end # add dehs text - if text[T_DEHS] != '' - gtext += text[T_DEHS] + "\n" - end + gtext += text[T_DEHS] + "\n" if text[T_DEHS] != '' + gtext += text[T_LINTIAN] + "\n" if text[T_LINTIAN] != '' gtext += <<-EOF ------------ interesting stuff probably ends here ------------ We are sorry if this mail was useless for you. If you think it was Modified: ddpo-by-mail/udddata.rb =================================================================== --- ddpo-by-mail/udddata.rb 2010-05-07 15:24:31 UTC (rev 1741) +++ ddpo-by-mail/udddata.rb 2010-05-17 14:05:25 UTC (rev 1742) @@ -1,9 +1,10 @@ #!/usr/bin/ruby require 'dbi' +require 'ddpo-config' require 'pp' class UDDData - attr_reader :maintainers, :uploaders, :names, :testing_status, :missing_builds, :lintian, :debian_installer_sources, :pts, :dehs + attr_reader :maintainers, :uploaders, :names, :testing_status, :missing_builds, :lintian, :debian_installer_sources, :pts, :dehs, :rcbugs, :rgbugs def initialize @dbh = DBI::connect('DBI:Pg:dbname=udd;port=5441;host=localhost', 'guestdd', ENV['dbpw']) @@ -16,6 +17,8 @@ @debian_installer_sources = [] @pts = Hash::new { [] } @dehs = {} + @rcbugs = Hash::new { [] } + @rgbugs = Hash::new { [] } end def fetch @@ -67,6 +70,17 @@ @dbh.select_all("select source, unstable_version, unstable_upstream from dehs where unstable_status = 'outdated'") do |r| @dehs[r['source']] = [ r['unstable_version'], r['unstable_upstream']] end + # bugs + @dbh.select_all("select bugs.id, bugs_packages.source, bugs.title from bugs, bugs_packages where bugs.id = bugs_packages.id and severity >= 'serious' and bugs.id in (select id from bugs_rt_affects_unstable)") do |r| + @rcbugs[r['source']] = [] if @rcbugs[r['source']].empty? + @rcbugs[r['source']] << [r['id'], r['title']] + end + emails = RGEMAILS.join("','") + tags = RGTAGS.keys.join("','") + @dbh.select_all("select bugs.id, bugs_packages.source, bugs.title, bugs_usertags.tag from bugs, bugs_packages, bugs_usertags where bugs.id = bugs_packages.id and bugs.id = bugs_usertags.id and bugs.id in (select id from bugs_rt_affects_unstable) and tag in ('#{tags}') and email in ('#{emails}')") do |r| + @rgbugs[r['source']] = [] if @rgbugs[r['source']].empty? + @rgbugs[r['source']] << [r['id'], r['title'], r['tag']] + end end end @@ -75,6 +89,7 @@ t = Time::now udd.fetch te = Time::now - pp udd.dehs + pp udd.rcbugs + pp udd.rgbugs puts te - t end _______________________________________________ Collab-qa-commits mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/collab-qa-commits
