aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/bugzilla-submit/bugzilla-submit2
-rw-r--r--contrib/convert-workflow.pl111
-rwxr-xr-xcontrib/jb2bz.py8
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