diff options
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/bugzilla-submit/bugzilla-submit | 2 | ||||
-rw-r--r-- | contrib/convert-workflow.pl | 111 | ||||
-rwxr-xr-x | contrib/jb2bz.py | 8 |
3 files changed, 116 insertions, 5 deletions
diff --git a/contrib/bugzilla-submit/bugzilla-submit b/contrib/bugzilla-submit/bugzilla-submit index e1e9b64d8..d98e7de8d 100755 --- a/contrib/bugzilla-submit/bugzilla-submit +++ b/contrib/bugzilla-submit/bugzilla-submit @@ -152,7 +152,7 @@ def ensure_defaults(data): if 'rep_platform' not in data: data['rep_platform'] = 'PC' if 'bug_status' not in data: - data['bug_status'] = 'NEW' + data['bug_status'] = 'CONFIRMED' if 'bug_severity' not in data: data['bug_severity'] = 'normal' if 'bug_file_loc' not in data: diff --git a/contrib/convert-workflow.pl b/contrib/convert-workflow.pl new file mode 100644 index 000000000..c01b751c0 --- /dev/null +++ b/contrib/convert-workflow.pl @@ -0,0 +1,111 @@ +#!/usr/bin/perl -w +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Everything Solved, Inc. +# Portions created by the Initial Developer are Copyright (C) 2009 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use warnings; +use lib qw(. lib); + +use Bugzilla; +use Bugzilla::Config qw(:admin); +use Bugzilla::Status; + +my $confirmed = new Bugzilla::Status({ name => 'CONFIRMED' }); +my $in_progress = new Bugzilla::Status({ name => 'IN_PROGRESS' }); + +if ($confirmed and $in_progress) { + print "You are already using the new workflow.\n"; + exit 1; +} + +print <<END; +WARNING: This will convert the status of all bugs using the following +system: + + "NEW" will become "CONFIRMED" + "ASSIGNED" will become "IN_PROGRESS" + "REOPENED" will become "CONFIRMED" (and the "REOPENED" status will be removed) + "CLOSED" will become "VERIFIED" (and the "CLOSED" status will be removed) + +This change will be immediate. The history of each bug will also be changed +so that it appears that these statuses were always in existence. + +Emails will not be sent for the change. + +To continue, press any key, or press Ctrl-C to stop this program... +END +getc; + +my $dbh = Bugzilla->dbh; +my %translation = ( + NEW => 'CONFIRMED', + ASSIGNED => 'IN_PROGRESS', + REOPENED => 'CONFIRMED', + CLOSED => 'VERIFIED', +); + +my $status_field = Bugzilla::Field->check('bug_status'); +$dbh->bz_start_transaction(); +while (my ($from, $to) = each %translation) { + print "Converting $from to $to...\n"; + $dbh->do('UPDATE bugs SET bug_status = ? WHERE bug_status = ?', + undef, $to, $from); + + if (Bugzilla->params->{'duplicate_or_move_bug_status'} eq $from) { + SetParam('duplicate_or_move_bug_status', $to); + write_params(); + } + + foreach my $what (qw(added removed)) { + $dbh->do("UPDATE bugs_activity SET $what = ? + WHERE fieldid = ? AND $what = ?", + undef, $to, $status_field->id, $from); + } + + # Delete any transitions where it now appears that + # a bug moved from a status to itself. + $dbh->do('DELETE FROM bugs_activity WHERE fieldid = ? AND added = removed', + undef, $status_field->id); + + # If the new status already exists, just delete the old one, but retain + # the workflow items from it. + if (my $existing = new Bugzilla::Status({ name => $to })) { + $dbh->do('DELETE FROM bug_status WHERE value = ?', undef, $from); + } + # Otherwise, rename the old status to the new one. + else { + $dbh->do('UPDATE bug_status SET value = ? WHERE value = ?', + undef, $to, $from); + } +} + +$dbh->bz_commit_transaction(); + +print <<END; +Done. There are some things you may want to fix, now: + + * You may want to run ./collectstats.pl --regenerate to regenerate + data for the Old Charts system. + * You may have to fix the Status Workflow using the Status Workflow + panel in "Administration". + * You will probably want to update the "mybugstemplate" and "defaultquery" + parameters using the Parameters panel in "Administration". (Just + resetting them to the default will work.) +END diff --git a/contrib/jb2bz.py b/contrib/jb2bz.py index e2f502927..55cb056b5 100755 --- a/contrib/jb2bz.py +++ b/contrib/jb2bz.py @@ -28,7 +28,7 @@ if not mimetypes.types_map.has_key('.doc'): if not mimetypes.encodings_map.has_key('.bz2'): mimetypes.encodings_map['.bz2'] = "bzip2" -bug_status='NEW' +bug_status='CONFIRMED' component="default" version="" product="" # this is required, the rest of these are defaulted as above @@ -265,8 +265,8 @@ def usage(): Where OPTIONS are one or more of the following: -h This help information. - -s STATUS One of UNCONFIRMED, NEW, ASSIGNED, REOPENED, RESOLVED, VERIFIED, CLOSED - (default is NEW) + -s STATUS One of UNCONFIRMED, CONFIRMED, IN_PROGRESS, RESOLVED, VERIFIED + (default is CONFIRMED) -c COMPONENT The component to attach to each bug as it is important. This should be valid component for the Product. -v VERSION Version to assign to these defects. @@ -285,7 +285,7 @@ def main(): for o,a in opts: if o == "-s": - if a in ('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED'): + if a in ('UNCONFIRMED','CONFIRMED','IN_PROGRESS','RESOLVED','VERIFIED'): bug_status = a elif o == '-c': component = a |