Author: joeyh Date: 2005-06-20 03:46:47 +0000 (Mon, 20 Jun 2005) New Revision: 1242 Modified: data/README data/checklist Log: add support for including urgencies in notes, and support for including notes for already fixed packages needs someone to add in html to colorise the can numbers according to their urgency Modified: data/README ==================================================================--- data/README 2005-06-20 03:12:50 UTC (rev 1241) +++ data/README 2005-06-20 03:46:47 UTC (rev 1242) @@ -8,8 +8,8 @@ [date] id description {id id id} - UPCASE: test - - package version + UPCASE: text + - package [version] (note; note; note) end claimed by foo @@ -32,10 +32,15 @@ UPCASE Any word in upper case, typically NOTE, HELP, TODO. May be repeated for each entry. -- package version +- package [version] (note; notes; note) Indicates that the problem is fixed in the given version of the - package. May repeat for other packages. + package. May repeat for other packages. If the problem is unfixed, + omit the version. + The notes can be freeform, but some are understood by the tools, + including "unfixed", "bug #nnnnn", and "high", "medium", or "low" + urgencies. + begin claimed by foo end claimed by foo Marks a set of items that are being checked by someone. Modified: data/checklist ==================================================================--- data/checklist 2005-06-20 03:12:50 UTC (rev 1241) +++ data/checklist 2005-06-20 03:46:47 UTC (rev 1242) @@ -19,6 +19,7 @@ my %data; +my @urgencies=("high", "medium", "low", "unknown"); my %needkernel=qw/2.4.27 0 2.6.11 0/; my $list_unknown=1; #set to 1 to display kernel images with unknown source version my $sources=$ENV{SOURCES_FILE}; @@ -27,7 +28,7 @@ my $unprop = my $unprop_all = my $unfixed = my $todos = 0; sub record { - my ($package, $condition, $item)=@_; + my ($package, $condition, $item, $urgency)=@_; if ($html) { $condition=~s{bug #(\d+)}{<a href="http://bugs.debian.org/$1">bug #$1</a>}g; @@ -35,7 +36,7 @@ $item=~s#((?:CAN|CVE)-\d+-\d+)#<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=$1">$1</a>#g; } - push @{$data{$package}{$condition}}, $item; + push @{$data{$package}{$condition}}, {item => $item, urgency => $urgency}; } foreach my $list (@ARGV) { @@ -54,12 +55,35 @@ } elsif (/^\s+[!-]\s+(\S+)\s+(.*?)\s*$/) { my $package=$1; - my $version=$2; + my $rest=$2; + my $version; + my $notes; + if ($rest=~/([^\(\s]+)\s+\((.*)\)/) { + $version=$1; + $notes=$2; + } + elsif ($rest=~/\((.*)\)/) { + $version=""; + $notes=$1; + } + else { + $version=$rest; + $notes=""; + } + my @notes=split(/\s*;\s+/, $notes); + + my $urgency="unknown"; + foreach my $u (@urgencies) { + if (grep { $_ eq $u } @notes) { + $urgency=$u; + @notes = grep { $_ ne $u } @notes; + last; + } + } if ($package=~/kernel-source-([0-9.]+)/) { my $kernversion=$1; - if (exists $needkernel{$kernversion} && - $version!~/\(/ ) { + if (exists $needkernel{$kernversion}) { $needkernel{$kernversion}=$version if !system("dpkg --compare-versions $needkernel{$kernversion} lt $version"); } } @@ -84,8 +108,8 @@ next; } - if ($version=~/unfixed/ || $version=~/pending/) { - record($package, $version, $id); + if (grep { $_ eq ''unfixed'' || $_ eq ''pending'' } @notes) { + record($package, join("; ", @notes), $id, $urgency); $unfixed++; } else { @@ -100,7 +124,7 @@ if ($html) { $havver=''<a href="http://bjorn.haxx.se/debian/testing.pl?package=''.uri_escape($package).''">''.$havver.''</a>''; } - record($package, "$version needed, have $havver".(@maddy > 1 ? " [$arches]" : ""), $id); + record($package, "$version needed, have $havver".(@maddy > 1 ? " [$arches]" : ""), $id, $urgency); $unprop++; $unprop_all++ unless @maddy > 1; } @@ -124,9 +148,20 @@ print "<li>" if $html; print "$package $condition for "; my $items=0; - foreach my $item (sort @{$data{$package}{$condition}}) { + foreach my $i (sort @{$data{$package}{$condition}}) { print ", " if $items > 0; - print $item; + + if ($html) { + # TODO: replace with html for shades of red. + if ($i->{urgency} eq ''high'') { + print "!!!"; + } + elsif ($i->{urgency} eq ''medium'') { + print "!"; + } + } + print $i->{item}; + $items++; } print "\n";