This file contains only important changes made to Bugzilla before release
2.8. If you are upgrading from version older than 2.8, please read this
file. If you are upgrading from 2.8 or newer, please read the Installation
and Upgrade instructions in The Bugzilla Guide, found with this
distribution in docs/html, docs/txt, and docs/sgml.
For a complete list of what changes, use Bonsai (http://cvs-
mirror.mozilla.org/webtools/bonsai/cvsqueryform.cgi) to query the CVS tree.
For example,
http://cvs-
mirror.mozilla.org/webtools/bonsai/cvsquery.cgi?module=all&branch=HEAD&branchtype=match&dir=mozilla%2Fwebtools%2Fbugzilla&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=week&mindate=&maxdate=&cvsroot=%2Fcvsroot
will tell you what has been changed in the last week.
10/12/99 The CHANGES file is now obsolete! There is a new file called
checksetup.pl. You should get in the habit of running that file every time
you update your installation of Bugzilla. That file will be constantly
updated to automatically update your installation to match any code
changes. If you're curious as to what is going on, changes are commented
in that file, at the end.
Many thanks to Holger Schurig <holgerschurig@nikocity.de> for writing this
script!
10/11/99 Restructured voting database to add a cached value in each bug
recording how many total votes that bug has. While I'm at it, I removed
the unused "area" field from the bugs database. It is distressing to
realize that the bugs table has reached the maximum number of indices
allowed by MySQL (16), which may make future enhancements awkward.
You must feed the following to MySQL:
alter table bugs drop column area; alter table bugs add
column votes mediumint not null, add index (votes);
You then *must* delete the data/versioncache file when you make this
change, as it contains references to the "area" field. Deleting it is
safe, bugzilla will correctly regenerate it.
If you have been using the voting feature at all, then you will then need
to update the voting cache. You can do this by visiting the
sanitycheck.cgi page, and taking it up on its offer to rebuild the votes
stuff.
10/7/99 Added voting ability. You must run the new script
"makevotestable.sh". You must also feed the following to mysql:
alter table products add column votesperuser smallint not null;
9/15/99 Apparently, newer alphas of MySQL won't allow you to have "when" as
a column name. So, I have had to rename a column in the bugs_activity
table. You must feed the below to mysql or you won't work at all.
alter table bugs_activity change column when bug_when datetime not
null;
8/16/99 Added "OpenVMS" to the list of OS's. Feed this to mysql:
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.6.1", "Mac System 8.0", "Mac System 8.5", "Mac System
8.6", "AIX", "BSDI", "HP-UX", "IRIX", "Linux", "FreeBSD", "OSF/1",
"Solaris", "SunOS", "Neutrino", "OS/2", "BeOS", "OpenVMS", "other") not
null;
6/22/99 Added an entry to the attachments table to record who the submitter
was. Nothing uses this yet, but it still should be recorded.
alter table attachments add column submitter_id mediumint not null;
You should also run this script to populate the new field:
#!/usr/bonsaitools/bin/perl -w use diagnostics; use strict; require
"globals.pl"; $|=1; ConnectToDatabase(); SendSQL("select bug_id, attach_id
from attachments order by bug_id"); my @list; while (MoreSQLData()) {
my @row = FetchSQLData();
push(@list, @row); } foreach my $ref (@list) {
my ($bug, $attach) = (@$ref);
SendSQL("select long_desc from bugs where bug_id = $bug");
my $comment = FetchOneColumn() . "Created an attachment (id=$attach)";
if ($comment =~ m@-* Additional Comments From ([^ ]*)[- 0-9/:]*0reated
an attachment =$attach)@) { print "Found $10;
SendSQL("select userid from profiles where login_name=" .
SqlQuote($1)); my $userid = FetchOneColumn();
if (defined $userid && $userid > 0) { SendSQL("update
attachments set submitter_id=$userid where attach_id = $attach"); }
} else { print "Bug $bug can't find comment for attachment
$attach0;
} }
6/14/99 Added "BeOS" to the list of OS's. Feed this to mysql:
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.6.1", "Mac System 8.0", "Mac System 8.5", "Mac System
8.6", "AIX", "BSDI", "HP-UX", "IRIX", "Linux", "FreeBSD", "OSF/1",
"Solaris", "SunOS", "Neutrino", "OS/2", "BeOS", "other") not null;
5/27/99 Added support for dependency information. You must run the new
"makedependenciestable.sh" script. You can turn off dependencies with the
new "usedependencies" param, but it defaults to being on. Also, read very
carefully the description for the new "webdotbase" param; you will almost
certainly need to tweak it.
5/24/99 Added "Mac System 8.6" and "Neutrino" to the list of OS's. Feed
this to mysql:
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.6.1", "Mac System 8.0", "Mac System 8.5", "Mac System
8.6", "AIX", "BSDI", "HP-UX", "IRIX", "Linux", "FreeBSD", "OSF/1",
"Solaris", "SunOS", "Neutrino", "OS/2", "other") not null;
5/12/99 Added a pref to control how much email you get. This needs a new
column in the profiles table, so feed the following to mysql:
alter table profiles add column emailnotification
enum("ExcludeSelfChanges", "CConly", "All") not null default
"ExcludeSelfChanges";
5/5/99 Added the ability to search by creation date. To make this perform
well, you ought to do the following:
alter table bugs change column creation_ts creation_ts datetime not
null, add index (creation_ts);
4/30/99 Added a new severity, "blocker". To get this into your running
Bugzilla, do the following:
alter table bugs change column bug_severity bug_severity
enum("blocker", "critical", "major", "normal", "minor", "trivial",
"enhancement") not null;
4/22/99 There was a bug where the long descriptions of bugs had a variety
of newline characters at the end, depending on the operating system of the
browser that submitted the text. This bug has been fixed, so that no
further changes like that will happen. But to fix problems that have
already crept into your database, you can run the following perl script
(which is slow and ugly, but does work:) #!/usr/bonsaitools/bin/perl -w use
diagnostics; use strict; require "globals.pl"; $|=1; ConnectToDatabase();
SendSQL("select bug_id from bugs order by bug_id"); my @list; while
(MoreSQLData()) {
push(@list, FetchOneColumn()); } foreach my $id (@list) {
if ($id % 50 == 0) { print "0id ";
}
SendSQL("select long_desc from bugs where bug_id = $id");
my $comment = FetchOneColumn();
my $orig = $co/0g;t; # #eGetiridfofimac-stylellinenendings.s.
ifo($commentsne $orig) { SendSQL("update bugs set long_desc = "
. SqlQuote($comment) . " where bug_id = $id");
print ".";
} else { print "-";
} }
4/8/99 Added ability to store patches with bugs. This requires a new table
to store the data, so you will need to run the "makeattachmenttable.sh"
script.
3/25/99 Unfortunately, the HTML::FromText CPAN module had too many bugs,
and so I had to roll my own. We no longer use the HTML::FromText CPAN
module.
3/24/99 (This entry has been removed. It used to say that we required the
HTML::FromText CPAN module, but that's no longer true.)
3/22/99 Added the ability to query by fields which have changed within a
date range. To make this perform a bit better, we need a new index:
alter table bugs_activity add index (field);
3/10/99 Added 'groups' stuff, where we have different group bits that we
can put on a person or on a bug. Some of the group bits control access to
bugzilla features. And a person can't access a bug unless he has every
group bit set that is also set on the bug. See the comments in
makegroupstable.sh for a bit more info.
The 'maintainer' param is now used only as an email address for people to
send complaints to. The groups table is what is now used to determine
permissions.
You will need to run the new script "makegroupstable.sh". And then you
need to feed the following lines to MySQL (replace XXX with the login name
of the maintainer, the person you wish to be all-powerful).
alter table bugs add column groupset bigint not null; alter
table profiles add column groupset bigint not null; update profiles
set groupset=0x7fffffffffffffff where login_name = XXX;
3/8/99 Added params to control how priorities are set in a new bug. You
can now choose whether to let submitters of new bugs choose a priority, or
whether they should just accept the default priority (which is now no
longer hardcoded to "P2", but is instead a param.) The default value of
the params will cause the same behavior as before.
3/3/99 Added a "disallownew" field to the products table. If non-zero,
then don't let people file new bugs against this product. (This is for
when a product is retired, but you want to keep the bug reports around for
posterity.) Feed this to MySQL:
alter table products add column disallownew tinyint not null;
2/8/99 Added FreeBSD to the list of OS's. Feed this to MySQL:
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.6.1", "Mac System 8.0", "Mac System 8.5", "AIX",
"BSDI", "HP-UX", "IRIX", "Linux", "FreeBSD", "OSF/1", "Solaris", "SunOS",
"OS/2", "other") not null;
2/4/99 Added a new column "description" to the components table, and added
links to a new page which will use this to describe the components of a
given product. Feed this to MySQL:
alter table components add column description mediumtext not null;
2/3/99 Added a new column "initialqacontact" to the components table that
gives an initial QA contact field. It may be empty if you wish the initial
qa contact to be empty. If you're not using the QA contact field, you
don't need to add this column, but you might as well be safe and add it
anyway:
alter table components add column initialqacontact tinytext not
null;
2/2/99 Added a new column "milestoneurl" to the products table that gives a
URL which is to describe the currently defined milestones for a product.
If you don't use target milestone, you might be able to get away without
adding this column, but you might as well be safe and add it anyway:
alter table products add column milestoneurl tinytext not null;
1/29/99 Whoops; had a mispelled op_sys. It was "Mac System 7.1.6"; it
should be "Mac System 7.6.1". It turns out I had no bugs with this value
set, so I could just do the below simple command. If you have bugs with
this value, you may need to do something more complicated.
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.6.1", "Mac System 8.0", "Mac System 8.5", "AIX",
"BSDI", "HP-UX", "IRIX", "Linux", "OSF/1", "Solaris", "SunOS", "OS/2",
"other") not null;
1/20/99 Added new fields: Target Milestone, QA Contact, and Status
Whiteboard. These fields are all optional in the UI; there are parameters
to turn them on. However, whether or not you use them, the fields need to
be in the DB. There is some code that needs them, even if you don't.
To update your DB to have these fields, send the following to MySQL:
alter table bugs add column target_milestone varchar(20) not null,
add column qa_contact mediumint not null,
add column status_whiteboard mediumtext not null,
add index (target_milestone), add index (qa_contact);
1/18/99 You can now query by CC. To make this perform reasonably, the CC
table needs some indices. The following MySQL does the necessary stuff:
alter table cc add index (bug_id), add index (who);
1/15/99 The op_sys field can now be queried by (and more easily tweaked).
To make this perform reasonably, it needs an index. The following MySQL
command will create the necessary index:
alter table bugs add index (op_sys);
12/2/98 The op_sys and rep_platform fields have been tweaked. op_sys is
now an enum, rather than having the legal values all hard-coded in perl.
rep_platform now no longer allows a value of "X-Windows".
Here's how I ported to the new world. This ought to work for you too.
Actually, it's probably overkill. I had a lot of illegal values for op_sys
in my tables, from importing bugs from strange places. If you haven't done
anything funky, then much of the below will be a no-op.
First, send the following commands to MySQL to make sure all your values
for rep_platform and op_sys are legal in the new world..
update bugs set rep_platform="Sun" where rep_platform="X-Windows"
and op_sys like "Solaris%"; update bugs set rep_platform="SGI"
where rep_platform="X-Windows" and op_sys = "IRIX"; update bugs set
rep_platform="SGI" where rep_platform="X-Windows" and op_sys = "HP-UX";
update bugs set rep_platform="DEC" where rep_platform="X-Windows"
and op_sys = "OSF/1"; update bugs set rep_platform="PC" where
rep_platform="X-Windows" and op_sys = "Linux"; update bugs set
rep_platform="other" where rep_platform="X-Windows"; update bugs
set rep_platform="other" where rep_platform=""; update bugs set
op_sys="Mac System 7" where op_sys="System 7"; update bugs set
op_sys="Mac System 7.5" where op_sys="System 7.5"; update bugs set
op_sys="Mac System 8.0" where op_sys="8.0"; update bugs set
op_sys="OSF/1" where op_sys="Digital Unix 4.0"; update bugs set
op_sys="IRIX" where op_sys like "IRIX %"; update bugs set
op_sys="HP-UX" where op_sys like "HP-UX %"; update bugs set
op_sys="Windows NT" where op_sys like "NT %"; update bugs set
op_sys="OSF/1" where op_sys like "OSF/1 %"; update bugs set
op_sys="Solaris" where op_sys like "Solaris %"; update bugs set
op_sys="SunOS" where op_sys like "SunOS%"; update bugs set
op_sys="other" where op_sys = "Motif"; update bugs set
op_sys="other" where op_sys = "Other";
Next, send the following commands to make sure you now have only legal
entries in your table. If either of the queries do not come up empty, then
you have to do more stuff like the above.
select bug_id,op_sys,rep_platform from bugs where rep_platform not
regexp "^(All|DEC|HP|Macintosh|PC|SGI|Sun|X-Windows|Other)$";
select bug_id,op_sys,rep_platform from bugs where op_sys not regexp
"^(All|Windows 3.1|Windows 95|Windows 98|Windows NT|Mac System 7|Mac System
7.5|Mac System 7.1.6|Mac System 8.0|AIX|BSDI|HP-
UX|IRIX|Linux|OSF/1|Solaris|SunOS|other)$";
Finally, once that's all clear, alter the table to make enforce the new
legal entries:
alter table bugs change column op_sys op_sys enum("All", "Windows
3.1", "Windows 95", "Windows 98", "Windows NT", "Mac System 7", "Mac System
7.5", "Mac System 7.1.6", "Mac System 8.0", "AIX", "BSDI", "HP-UX", "IRIX",
"Linux", "OSF/1", "Solaris", "SunOS", "other") not null, change column
rep_platform rep_platform enum("All", "DEC", "HP", "Macintosh", "PC",
"SGI", "Sun", "Other");
11/20/98 Added searching of CC field. To better support this, added some
indexes to the CC table. You probably want to execute the following mysql
commands:
alter table cc add index (bug_id); alter table cc add index
(who);
10/27/98 security check for legal products in place. bug charts are not
available as an option if collectstats.pl has never been run. all products
get daily stats collected now. README updated: Chart::Base is listed as a
requirement, instructions for using collectstats.pl included as an optional
step. also got silly and added optional quips to bug reports.
10/17/98 modified README installation instructions slightly.
10/7/98 Added a new table called "products". Right now, this is used only
to have a description for each product, and that description is only used
when initially adding a new bug. Anyway, you *must* create the new table
(which you can do by running the new makeproducttable.sh script). If you
just leave it empty, things will work much as they did before, or you can
add descriptions for some or all of your products.
9/15/98 Everything has been ported to Perl. NO MORE TCL. This transition
should be relatively painless, except for the "params" file. This is the
file that contains parameters you've set up on the editparams.cgi page.
Before changing to Perl, this was a tcl-syntax file, stored in the same
directory as the code; after the change to Perl, it becomes a perl-syntax
file, stored in a subdirectory named "data". See the README file for more
details on what version of Perl you need.
So, if updating from an older version of Bugzilla, you will need to edit
data/param, change the email address listed for $::param{'maintainer'}, and
then go revisit the editparams.cgi page and reset all the parameters to
your taste. Fortunately, your old params file will still be around, and so
you ought to be able to cut&paste important bits from there.
Also, note that the "whineatnews" script has changed name (it now has an
extension of .pl instead of .tcl), so you'll need to change your cron job.
And the "comments" file has been moved to the data directory. Just do "cat
comments >> data/comments" to restore any old comments that may have been
lost.
9/2/98 Changed the way password validation works. We now keep a crypt'd
version of the password in the database, and check against that. (This is
silly, because we're also keeping the plaintext version there, but I have
plans...) Stop passing the plaintext password around as a cookie; instead,
we have a cookie that references a record in a new database table,
logincookies.
IMPORTANT: if updating from an older version of Bugzilla, you must run the
following commands to keep things working:
./makelogincookiestable.sh
echo "alter table profiles add column cryptpassword varchar(64);" | mysql
bugs
echo "update profiles set cryptpassword =
encrypt(password,substring(rand(),3, 4));" | mysql bugs
|