From 96229281914b6c90ad60c34e02809fc4cd4b5e73 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Fri, 13 Jul 2007 19:52:08 -0700 Subject: [PATCH] * Add a distribution alias -> distribution configuration map * Add a separate set of default distribution tags for strong severities * If any distribution tags are set, do not apply the default distribution set * Use the strong severity default distribution set in archival of strong severity bugs. --- Debbugs/Config.pm | 55 +++++++++++++++++++++++++++++++++++++++++++++-- Debbugs/Status.pm | 21 ++++++++++++++---- 2 files changed, 70 insertions(+), 6 deletions(-) diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index 7b2fc579..fe07b640 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -61,7 +61,9 @@ BEGIN { qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl), qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities), qw(%gSearchEstraier), + qw(%gDistributionAliases), qw(@gPostProcessall @gRemovalDefaultDistributionTags @gRemovalDistributionTags @gRemovalArchitectures), + qw(@gRemovalStrongSeverityDefaultDistributionTags), ], text => [qw($gBadEmailPrefix $gHTMLTail $gHTMLExpireNote), ], @@ -335,15 +337,50 @@ Default: 1 set_default(\%config,'save_old_bugs',1); +=item distribution_aliases + +Map of distribution aliases to the distribution name + +Default: + {experimental => 'experimental', + unstable => 'unstable', + testing => 'testing', + stable => 'stable', + oldstable => 'oldstable', + sid => 'unstable', + lenny => 'testing', + etch => 'stable', + sarge => 'oldstable', + } + +=cut + +set_default(\%config,'distribution_aliases', + {experimental => 'experimental', + unstable => 'unstable', + testing => 'testing', + stable => 'stable', + oldstable => 'oldstable', + sid => 'unstable', + lenny => 'testing', + etch => 'stable', + sarge => 'oldstable', + }, + ); + + + =item distributions List of valid distributions -Default: qw(experimental unstable testing stable oldstable); +Default: The values of the distribution aliases map. =cut -set_default(\%config,'distributions',[qw(experimental unstable testing stable oldstable)]); +my %_distributions_default; +@_distributions_default{values %{$config{distribution_aliases}}} = values %{$config{distribution_aliases}}; +set_default(\%config,'distributions',[keys %_distributions_default]); =item removal_distribution_tags @@ -369,6 +406,20 @@ set_default(\%config,'removal_default_distribution_tags', [qw(unstable testing)] ); +=item removal_strong_severity_default_distribution_tags + +For removal/archival purposes, all bugs with strong severity are +assumed to have these tags set. + +Default: qw(unstable testing stable); + +=cut + +set_default(\%config,'removal_strong_severity_default_distribution_tags', + [qw(unstable testing stable)] + ); + + =item removal_architectures For removal/archival purposes, these architectures are consulted if diff --git a/Debbugs/Status.pm b/Debbugs/Status.pm index 8349036e..b6f1375f 100644 --- a/Debbugs/Status.pm +++ b/Debbugs/Status.pm @@ -649,6 +649,10 @@ sub bug_archiveable{ # tags set, we assume a default set, otherwise we use the tags the bug # has set. + # In cases where we are assuming a default set, if the severity + # is strong, we use the strong severity default; otherwise, we + # use the normal default. + # There must be fixed_versions for us to look at the versioning # information my $min_fixed_time = time; @@ -658,11 +662,20 @@ sub bug_archiveable{ @dist_tags{@{$config{removal_distribution_tags}}} = (1) x @{$config{removal_distribution_tags}}; my %dists; - @dists{@{$config{removal_default_distribution_tags}}} = - (1) x @{$config{removal_default_distribution_tags}}; for my $tag (split ' ', ($status->{tags}||'')) { - next unless $dist_tags{$tag}; - $dists{$tag} = 1; + next unless exists $config{distribution_aliases}{$tag}; + next unless $dist_tags{$config{distribution_aliases}{$tag}}; + $dists{$config{distribution_aliases}{$tag}} = 1; + } + if (not keys %dists) { + if (isstrongseverity($status->{severity})) { + @dists{@{$config{removal_strong_severity_default_distribution_tags}}} = + (1) x @{$config{removal_strong_severity_default_distribution_tags}}; + } + else { + @dists{@{$config{removal_default_distribution_tags}}} = + (1) x @{$config{removal_default_distribution_tags}}; + } } my %source_versions; my @sourceversions = get_versions(package => $status->{package}, -- 2.39.5