summaryrefslogtreecommitdiffstats
path: root/template/en/default/pages/release-notes.html.tmpl
blob: 186e56085b7ff80d2f1d78cba5d196e9ad1c7d39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
[%# 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.
  # Portions created by Everything Solved are Copyright (C) 2006
  # Everything Solved. All Rights Reserved.
  #
  # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
  #%]

[% PROCESS global/variables.none.tmpl %]
[% INCLUDE global/header.html.tmpl 
  title = "$terms.Bugzilla 3.2.1 Release Notes" 
  style_urls = ['skins/standard/release-notes.css'] 
%]

<h2>Table of Contents</h2>

<ul class="bz_toc">
  <li><a href="#v32_introduction">Introduction</a></li>
  <li><a href="#v32_point">Updates In This 3.2.x Release</a></li>
  <li><a href="#v32_security">Security Fixes In This 3.2.x Release</a></li>
  <li><a href="#v32_req">Minimum Requirements</a></li>
  <li><a href="#v32_feat">New Features and Improvements</a></li>
  <li><a href="#v32_issues">Outstanding Issues</a></li>
  <li><a href="#v32_upgrading">How to Upgrade From An Older Version</a></li>
  <li><a href="#v32_code_changes">Code Changes Which May Affect 
    Customizations</a></li>
  <li><a href="#v32_previous">Release Notes for Previous Versions</a></li>
</ul>

<h2><a name="v32_introduction"></a>Introduction</h2>

<p>Welcome to [% terms.Bugzilla %] 3.2! This is our first major feature
  release since [% terms.Bugzilla %] 3.0, and it brings a lot of great
  improvements and polish to the [% terms.Bugzilla %] experience.</p>

<p>If you're upgrading, make sure to read <a href="#v32_upgrading">How to
  Upgrade From An Older Version</a>. If you are upgrading from a release
  before 3.0, make sure to read the release notes for all the 
  <a href="#v32_previous">previous versions</a> in between your version
  and this one, <strong>particularly the "Notes For Upgraders" section of each
  version's release notes</strong>.</p>

<h2><a name="v32_point">Updates in this 3.2.x Release</a></h2>

<p>This section describes what's changed in the most recent b<!-- -->ug-fix
  releases of [% terms.Bugzilla %] after 3.2. We only list the
  most important fixes in each release. If you want a detailed list of
  <em>everything</em> that's changed in each version, you should use our
  <a href="http://www.bugzilla.org/status/changes.html">Change Log 
  Page</a>.</p>

<h3>3.2.2</h3>

<p>This release fixes one security issue that is critical for installations
  running 3.2.1 under mod_perl. See the 
  <a href="http://www.bugzilla.org/security/3.0.7/">Security Advisory</a>
  for details.</p>

<h3>3.2.1</h3>

<ul>
  <li>Attachments, charts, and graphs would sometimes be garbled on Windows.
  (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=464992">[% terms.Bug %] 464992</a>)</li>

  <li>Saving changes to parameters would sometimes fail silently (particularly
    on Windows when the web server didn't have the right permissions to
    update the <code>params</code> file). [% terms.Bugzilla %] will now
    throw an error in this case, telling you what is wrong.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=347707">[% terms.Bug %] 347707</a>)</li>

  <li>If you were using the <code>usemenuforusers</code> parameter,
    and [% terms.abug %] was assigned to (or had a QA Contact of) a disabled
    user, that field would be reset to the first user in the list when
    updating [% terms.abug %].
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=465589">[% terms.Bug %] 465589</a>)</li>

  <li>If you were using the <code>PROJECT</code> environment variable
    to have multiple [% terms.Bugzilla %] installations using one codebase,
    project-specific templates were being ignored. 
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=467324">[% terms.Bug %] 467324</a>)</li>

  <li>Some versions of the SOAP::Lite Perl module had a b[% %]ug that caused
    [%+ terms.Bugzilla %]'s XML-RPC service to break. 
    <code>checksetup.pl</code> now checks for these bad versions and 
    will reject them.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468009">[% terms.Bug %] 468009</a>)</li>

  <li>The font sizes in various places were too small, when using the
    Classic skin.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=469136">[% terms.Bug %] 469136</a>)</li>
</ul>

<h2><a name="v32_security">Security Fixes In This 3.2.x Release</a></h2>

<h3>3.2.2</h3>

<p>This release fixes one security issue that is critical for installations
  running 3.2.1 under mod_perl. See the 
  <a href="http://www.bugzilla.org/security/3.0.7/">Security Advisory</a> 
  for details.</p>

<h3>3.2.1</h3>

<p>This release contains several security fixes. One fix may break any
  automated scripts you have that are loading <kbd>process_bug.cgi</kbd>
  directly. We recommend that you read the entire 
  <a href="http://www.bugzilla.org/security/2.22.6/">Security Advisory</a>
  for this release.</p>

<h2><a name="v32_req"></a>Minimum Requirements</h2>

<p>Any requirements that are new since 3.0.5 will look like
  <span class="req_new">this</span>.</p>

<ul>
  <li><a href="#v32_req_perl">Perl</a></li>
  <li><a href="#v32_req_mysql">For MySQL Users</a></li>
  <li><a href="#v32_req_pg">For PostgreSQL Users</a></li>
  <li><a href="#v32_req_oracle">For Oracle Users</a></li>
  <li><a href="#v32_req_modules">Required Perl Modules</a></li>
  <li><a href="#v32_req_optional_mod">Optional Perl
    Modules</a></li>
</ul>

<h3><a name="v32_req_perl"></a>Perl</h3>

<p>Perl <span class="req_new">v<strong>5.8.1</strong></span></p>

[% INCLUDE db_req db='mysql' dbd_new = 1 %]

[% INCLUDE db_req db='pg' %]

[% INCLUDE db_req db='oracle' %]

<h3><a name="v32_req_modules"></a>Required Perl Modules</h3>

[% INCLUDE req_table reqs = REQUIRED_MODULES 
                     new = []
                     updated = ['Template-Toolkit', 'Email-MIME',
                                'Email-MIME-Modifier', 'CGI.pm'] %]

<h3><a name="v32_req_optional_mod"></a>Optional Perl Modules</h3>

<p>The following perl modules, if installed, enable various
  features of [% terms.Bugzilla %]:</p>

[% INCLUDE req_table reqs = OPTIONAL_MODULES
                     new  = ['Authen-SASL', 'RadiusPerl']
                     updated = []
                     include_feature = 1 %]

<h2><a name="v32_feat"></a>New Features and Improvements</h2>

<ul>
  <li><a href="#v32_feat_ui">Major UI Improvements</a></li>
  <li><a href="#v32_feat_skin">New Default Skin: Dusk</a></li>
  <li><a href="#v32_feat_status">Custom Status Workflow</a></li>
  <li><a href="#v32_feat_fields">New Custom Field Types</a></li>
  <li><a href="#v32_feat_install">Easier Installation</a></li>
  <li><a href="#v32_feat_oracle">Experimental Oracle Support</a></li>
  <li><a href="#v32_feat_utf8">Improved UTF-8 Support</a></li>
  <li><a href="#v32_feat_grcons">Group Icons</a></li>
  <li><a href="#v32_feat_other">Other Enhancements and Changes</a></li>
</ul>

<h3><a name="v32_feat_ui"></a>Major UI Improvements</h3>

<p>[% terms.Bugzilla %] 3.2 has had some UI assistance from the NASA
  Human-Computer Interaction department and the new 
  <a href="http://wiki.mozilla.org/Bugzilla:UE">[% terms.Bugzilla %]
  User Interface Team</a>.</p>

<p>In particular, you will notice a massively redesigned [% terms.bug %]
  editing form, in addition to our <a href="#v32_feat_skin">new skin</a>.</p>

<h3><a name="v32_feat_skin"></a>New Default Skin: Dusk</h3>

<p>[% terms.Bugzilla %] 3.2 now ships with a skin called "Dusk" that is
  a bit more colorful than old default "Classic" skin.</p>

<p>Upgrading installations will still default to the "Classic" 
  skin--administrators can change the default in the Default Preferences
  control panel. Users can also choose to use the old skin in their
  Preferences (or using the View :: Page Style menu in Firefox).</p>

<p>The changes that [% terms.Bugzilla %] required for Dusk made
  [%+ terms.Bugzilla %] much easier to skin. See the
  <a href="http://wiki.mozilla.org/Bugzilla:Addons#Skins">Addons page</a>
  for additional skins, or try making your own!</p>

<h3><a name="v32_feat_status"></a>Custom Status Workflow</h3>

<p>You can now customize the list of statuses in [% terms.Bugzilla %],
  and transitions between them.</p>

<p>You can also specify that a comment must be made on certain transitions.</p>

<h3><a name="v32_feat_fields"></a>New Custom Field Types</h3>

<p>[% terms.Bugzilla %] 3.2 has support for three new types of
  custom fields:</p>

<ul>
  <li>Large Text: Adds a multi-line textbox to your [% terms.bugs %].</li>
  <li>Multiple Selection Box: Adds a box that allows you to choose
    multiple items from a list.</li>
  <li>Date/Time: Displays a date and time, along with a JavaScript
    calendar popup to make picking a date easier.</li>
</ul>

<h3><a name="v32_feat_install"></a>Easier Installation</h3>

<p>[% terms.Bugzilla %] now comes with a script called 
  <kbd>install-module.pl</kbd> that can automatically download
  and install all of the required Perl modules for [% terms.Bugzilla %].
  It stores them in a directory inside your [% terms.Bugzilla %]
  installation, so you can use it even if you don't have administrator-level
  access to your machine, and without modifying your main Perl install.</p>

<p><kbd>checksetup.pl</kbd> will print out instructions for using
  <kbd>install-module.pl</kbd>, or you can read its
  <a href="[% docs_urlbase FILTER html %]api/install-module.html">documentation</a>.</p>

<h3><a name="v32_feat_oracle"></a>Experimental Oracle Support</h3>

<p>[% terms.Bugzilla %] 3.2 contains experimental support for using 
  Oracle as its database. Some features of [% terms.Bugzilla %] are known 
  to be broken on Oracle, but hopefully will be working by our next major
  release.</p>

<p>The [% terms.Bugzilla %] Project, as an open-source project, of course
  does not recommend the use of proprietary database solutions. However,
  if your organization requires that you use Oracle, this will allow
  you to use [% terms.Bugzilla %]!</p>

<p>The [% terms.Bugzilla %] Project thanks Oracle Corp. for their extensive
  development contributions to [% terms.Bugzilla %] which allowed this to 
  happen!</p>

<h3><a name="v32_feat_utf8"></a>Improved UTF-8 Support</h3>

<p>[% terms.Bugzilla %] 3.2 now has advanced UTF-8 support in its code,
  including correct handling for truncating and wrapping multi-byte
  languages. Major issues with multi-byte or unusual languages
  are now resolved, and [% terms.Bugzilla %] should now be usable
  by users in every country with little (or at least much less)
  customization.</p>

<h3><a name="v32_feat_grcons"></a>Group Icons</a></h3>

<p>Administrators can now specify that users who are in certain groups
  should have an icon appear next to their name whenever they comment.
  This is particularly useful for distinguishing developers from 
  [%+ terms.bug %] reporters.</p>

<h3><a name="v32_feat_other"></a>Other Enhancements and Changes</h3>

<p>These are either minor enhancements, or enhancements that have
  very short descriptions. Some of these are very useful, though!</p>

<h4>Enhancements For Users</h4>

<ul>
  <li><strong>[% terms.Bugs %]</strong>: You can now reassign
    [%+ terms.abug %] at the same time as you are changing its status.</li>
  <li><strong>[% terms.Bugs %]</strong>: When entering [% terms.abug %], 
    you will now see the description of a component when you select it.</li>
  <li><strong>[% terms.Bugs %]</strong>: The [% terms.bug %] view now 
    contains some <a href="http://microformats.org/about/">Microformats</a>,
    most notably for users' names and email addresses.</li>
  <li><strong>[% terms.Bugs %]</strong>: You can now remove a QA Contact
    from [% terms.abug %] simply by clearing the QA Contact field.</li>
  <li><strong>[% terms.Bugs %]</strong>: There is now a user preference 
    that will allow you to exclude the quoted text when replying 
    to comments.</li>
  <li><strong>[% terms.Bugs %]</strong>: You can now expand or collapse
    individual comments in the [% terms.bug %] view.</li>

  <li><strong>Attachments</strong>: There is now "mid-air collision" 
      protection when editing attachments.</li>
  <li><strong>Attachments</strong>: Patches in the Diff Viewer now show 
    line numbers (<a href="https://bugzilla.mozilla.org/attachment.cgi?id=327546">Example</a>).</li>
  <li><strong>Attachments</strong>: After creating or updating an attachment,
    you will be immediately shown the [% terms.bug %] that the attachment
    is on.</li>

  <li><strong>Search</strong>: You can now reverse the sort of 
    [%+ terms.abug %] list by clicking on a column header again.</li>
  <li><strong>Search</strong>: Atom feeds of [% terms.bug %] lists now
    contain more fields.</li>
  <li><strong>Search</strong>: QuickSearch now supports searching flags
    and groups. It also now includes the OS field in the list of fields
    it searches by default.</li>
  <li><strong>Search</strong>: "Help" text can now appear on query.cgi 
    for Internet Explorer and other non-Firefox browsers. (It always
    could appear for Firefox.)</li>

  <li>[% terms.Bugzilla %] now ships with an icon that will show
    up next to the URL in most browsers. If you want to replace it,
    it's in <kbd>images/favicon.ico</kbd>.</li>

  <li>You can now set the Deadline when using "Change Several 
    [%+ terms.Bugs %] At Once"</li>
  <li><strong>Saved Searches</strong> now save their column list, so if 
    you customize the list of columns and save your search, it will 
    always contain those columns.</li>
  <li><strong>Saved Searches</strong>: When you share a search, you can
    now see how many users have subscribed to it, on 
    <kbd>userprefs.cgi</kbd>.</li>
  <li><strong>Saved Searches</strong>: You can now see what group a 
    shared search was shared to, on the list of available shared searches
    in <kbd>userprefs.cgi</kbd>.</li>
  <li><strong>Flags</strong>: If your installation uses drop-down user 
    lists, the flag requestee box will now contain only users who are 
    actually allowed to take requests.</li>
  <li><strong>Flags</strong>: If somebody makes a request to you, and you
    change the requestee to somebody else, the requester is no longer set
    to you. In other words, you can "redirect" requests and maintain the
    original requester.</li>
  <li><strong>Flags</strong>: Emails about flags now will thread properly
    in email clients to be a part of [% terms.abug %]'s thread.</li>
  <li>When using <kbd>email_in.pl</kbd>, you can now add users to the CC
    list by just using <kbd>@cc</kbd> as the field name.</li>
  <li>Many pages (particularly administrative pages) now contain links to
    the relevant section of the [% terms.Bugzilla %] Guide, so you can read 
    the documentation for that page.</li>
  <li>Dependency Graphs should render more quickly, as they now (by default)
    only include the same [% terms.bugs %] that you'd see in the dependency
    tree.</li>
</ul>

<h4>Enhancements For Administrators</h4>

<ul>
  <li><strong>Admin UI</strong>: Instead of having the Administration 
    Control Panel links in the footer, there is now just one link called 
   "Administration" that takes you to a page that links to all the
    administrative controls for [% terms.Bugzilla %].</li>
  <li><strong>Admin UI</strong>: Administrative pages no longer display
    confirmation pages, instead they redirect you to some useful page 
    and display a message about what changed.</li>
  <li><strong>Admin UI</strong>: The interface for editing group 
     inheritance in <kbd>editgroups.cgi</kbd> is much clearer now.</li>
  <li><strong>Admin UI</strong>: When editing a user, you can now see 
    all the components where that user is the Default Assignee or Default
    QA Contact.</li>

  <li><strong>Email</strong>: For installations that use SMTP to send 
    mail (as opposed to Sendmail), [%+ terms.Bugzilla %] now supports
    SMTP Authentication, so that it can log in to your mail server 
    before sending messages.</li>
  <li><strong>Email</strong>: Using the "Test" mail delivery method now
     creates a valid mbox file to make testing easier.</li>

  <li><strong>Authentication</strong>: [% terms.Bugzilla %] now correctly 
    handles LDAP records which contain multiple email addresses. (The first
    email address in the list that is a valid [% terms.Bugzilla %] account 
    will be used, or if this is a new user, the first email address in 
    the list will be used.)</li>
  <li><strong>Authentication</strong>: [% terms.Bugzilla %] can now take 
    a list of LDAP servers to try in order until it gets a successful
    connection.</li>
  <li><strong>Authentication</strong>: [% terms.Bugzilla %] now supports 
    RADIUS authentication.</li>

  <li><strong>Security</strong>: The login cookie is now created as 
    "HTTPOnly" so that it can't be read by possibly malicious scripts. 
    Also, if SSL is enabled on your installation, the login cookie is
    now only sent over SSL connections.</li>
  <li><strong>Security</strong>: The <code>ssl</code> parameter now protects
    every page a logged-in user accesses, when set to "authenticated sessions."
    Also, SSL is now enforced appropriately in the WebServices interface when
    the parameter is set.</li>

  <li><strong>Database</strong>: [% terms.Bugzilla %] now uses transactions in 
    the database instead of table locks. This should generally improve
    performance with many concurrent users. It also means if there is
    an unexpected error in the middle of a page, all database changes made
    during that page will be rolled back.</li>
  <li><strong>Database</strong>: You no longer have to set 
    <code>max_packet_size</code> in MySQL to add large attachments. However,
    you may need to set it manually if you restore a mysqldump into your
    database.</li>

  <li>New WebService functions:
    <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html">B<!-- -->ug.add_comment</a>
    and <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bugzilla.html">Bugzilla.extensions</a>.</li>

  <li>You can now delete custom fields, but only if they have never been
    set on any [% terms.bug %].</li>
  <li>There is now a <kbd>--reset-password</kbd> argument to 
    <kbd>checksetup.pl</kbd> that allows you to reset a user's password
    from the command line.</li>
  <li>There is now a script called <kbd>sanitycheck.pl</kbd> that you can
    run from the command line. It works just like <kbd>sanitycheck.cgi</kbd>.
    By default, it only outputs anything if there's an error, so it's
    ideal for administrators who want to run it nightly in a cron job.</li>
  <li>The <kbd>strict_isolation</kbd> parameter now prevents you from setting
    users who cannot see [% terms.abug %] as a CC, Assignee, or QA
    Contact. Previously it only prevented you from adding users who
    could not <em>edit</em> the [% terms.bug %].</li>
  <li>Extensions can now add their own headers to the HTML &lt;head&gt;
    for things like custom CSS and so on.</li>
  <li><kbd>sanitycheck.cgi</kbd> has been templatized, meaning that the
    entire [% terms.Bugzilla %] UI is now contained in templates.</li>
  <li>When setting the <kbd>sslbase</kbd> parameter, you can now specify
    a port number in the URL.</li>
  <li>When importing [% terms.bugs %] using <kbd>importxml.pl</kbd>,
    attachments will have their actual creator set as their creator,
    instead of the person who exported the [% terms.bug %] from the other
    system.</li>
  <li>The voting system is off by default in new installs. This is to
    prepare for the fact that it will be moved into an extension at
    some point in the future.</li>
  <li>The <code>shutdownhtml</code> parameter now works even when 
    [% terms.Bugzilla %]'s database server is down.</li>
</ul>

<h3>Enhancements for Localizers (or Localized Installations)</h3>

<ul>
  <li>The documentation can now be localized--in other words, you can have
    documentation installed for multiple languages at once and
    [%+ terms.Bugzilla %] will link to the correct language in its internal
    documentation links.</li>
  <li>[% terms.Bugzilla %] no longer uses the <kbd>languages</kbd> parameter.
    Instead it reads the <kbd>template/</kbd> directory to see which
    languages are available.</li>
  <li>Some of the messages printed by <kbd>checksetup.pl</kbd> can now
    be localized. See <kbd>template/en/default/setup/strings.txt.pl</kbd>.
</ul>

<h2><a name="v32_issues"></a>Outstanding Issues</h2>

<ul>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=423439">
    [%- terms.Bug %] 423439</a>: Tabs in comments will be converted
    to four spaces, due to a b<!-- -->ug in Perl as of Perl 5.8.8.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
    [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
    in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing 
    the option to rebuild the cache when it asks. Otherwise keywords may 
    not show up properly in search results.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
    [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at 
    the same time, there is no "mid-air collision" protection.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230">
    [%- terms.Bug %] 276230</a>: The support for restricting access to 
    particular Categories of New Charts is not complete. You should treat 
    the 'chartgroup' Param as the only access mechanism available.<br>
    However, charts migrated from Old Charts will be restricted to 
    the groups that are marked MANDATORY for the corresponding Product.
    There is currently no way to change this restriction, and the 
    groupings will not be updated if the group configuration
    for the Product changes.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370370">
    [%- terms.Bug %] 370370</a>: mod_perl support is currently not
    working on Windows machines.</li>
</ul>

<h2><a name="v32_upgrading"></a>How to Upgrade From An Older Version</h2>

<h3><a name="v32_upgrading_notes"></a>Notes For Upgraders</h3>

<ul>
  <li>If you upgrade by CVS, the <kbd>extensions</kbd> and 
    <kbd>skins/contrib</kbd> directories are now in CVS instead of
    being created by <kbd>checksetup.pl</kbd> If you do a <kbd>cvs update</kbd>
    from 3.0, you will be told that your directories are "in the way" and
    you should delete (or move) them and then do <kbd>cvs update</kbd>
    again. Also, the <kbd>docs</kbd> directory has been restructured
    and after you <kbd>cvs update</kbd> you can delete the <kbd>docs/html</kbd>,
    <kbd>docs/pdf</kbd>, <kbd>docs/txt</kbd>, and <kbd>docs/xml</kbd>
    directories.</li>
  <li>If you are using MySQL, you should know that [% terms.Bugzilla %]
    now uses InnoDB for all tables. <kbd>checksetup.pl</kbd> will convert
    your tables automatically, but if you have InnoDB disabled,
    the upgrade will not be able to complete (and <kbd>checksetup.pl</kbd>
    will tell you so).</li>

  <li><strong>You should also read the 
    <a href="#v30_upgrading_notes">[% terms.Bugzilla %] 3.0 Notes For Upgraders
    section</a> of the 
    <a href="#v32_previous">previous release notes</a> if you are upgrading
    from a version before 3.0.</strong></li>
</ul>

<h3>Steps For Upgrading</h3>

<p>Once you have read the notes above, see the
  <a href="[% docs_urlbase FILTER html %]upgrade.html">Upgrading 
  documentation</a> for instructions on how to upgrade.</p>

<h2><a name="v32_code_changes"></a>Code Changes Which May Affect 
  Customizations</h2>

<ul>
  <li><a href="#v32_code_hooks">More Hooks!</a></li>
  <li><a href="#v32_code_search">Search.pm Rearchitecture</a></li>
  <li><a href="#v32_code_lib">lib Directory</a></li>
  <li><a href="#v32_code_other">Other Changes</a></li>
</ul>

<h3><a name="v32_code_hooks"></a>More Hooks!</h3>

<p>There are more code hooks in 3.2 than there were in 3.0. See the
  documentation of <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>
  for more details.</p>

<h3><a name="v32_code_search"></a>Search.pm Rearchitecture</h3>

<p><kbd>Bugzilla/Search.pm</kbd> has been heavily modified, to be much
  easier to read and use. It contains mostly the same code as it did in
  3.0, but it has been moved around and reorganized significantly.</p>

<h3><a name="v32_code_lib"></a>lib Directory</h3>

<p>As part of implementing <a href="#v32_feat_install">install-module.pl</a>,
  [%+ terms.Bugzilla %] was given a local <kbd>lib</kbd> directory which
  it searches for modules, in addition to the standard system path.</p>

<p>This means that all [% terms.Bugzilla %] scripts now start with
  <code>use lib qw(. lib);</code> as one of the first lines.</p>

<h3><a name="v32_code_other"></a>Other Changes</h3>

<ul>
  <li>You should now be using <code>get_status('NEW')</code> instead of
    <code>status_descs.NEW</code> in templates.</li>
  <li>The <code>[&#37;# version = 1.0 &#37;]</code> comment at the top of every
    template file has been removed.</li>
</ul>

<h2><a name="v32_previous"></a>Release Notes For Previous Versions</h2>

<h1>[% terms.Bugzilla %] 3.0.x Release Notes</h1>

<h2>Table of Contents</h2>

<ul class="bz_toc">
  <li><a href="#v30_introduction">Introduction</a></li>
  <li><a href="#v30_point">Updates In This 3.0.x Release</a></li>
  <li><a href="#v30_req">Minimum Requirements</a></li>
  <li><a href="#v30_feat">New Features and Improvements</a></li>
  <li><a href="#v30_issues">Outstanding Issues</a></li>
  <li><a href="#v30_security">Security Fixes In This Release</a></li>
  <li><a href="#v30_upgrading">How to Upgrade From An Older Version</a></li>
  <li><a href="#v30_code_changes">Code Changes Which May Affect 
    Customizations</a></li>
  <li><a href="#v30_previous">Release Notes for Previous Versions</a></li>
</ul>

<h2><a name="v30_introduction"></a>Introduction</h2>

<p>Welcome to [% terms.Bugzilla %] 3.0! It's been over eight years since
  we released [% terms.Bugzilla %] 2.0, and everything has changed since
  then. Even just since our previous release, [% terms.Bugzilla %] 2.22,
  we've added a <em>lot</em> of new features. So enjoy the release, we're
  happy to bring it to you.</p>

<p>If you're upgrading, make sure to read <a href="#v30_upgrading">How to
  Upgrade From An Older Version</a>. If you are upgrading from a release
  before 2.22, make sure to read the release notes for all the 
  <a href="#v30_previous">previous versions</a> in between your version 
  and this one.</p>

<h2><a name="v30_point">Updates in this 3.0.x Release</a></h2>

<p>This section describes what's changed in the most recent b<!-- -->ug-fix
  releases of [% terms.Bugzilla %] after 3.0. We only list the
  most important fixes in each release. If you want a detailed list of
  <em>everything</em> that's changed in each version, you should use our
  <a href="http://www.bugzilla.org/status/changes.html">Change Log Page</a>.</p>

<h3>3.0.6</h3>

<ul>
  <li>Before 3.0.6, unexpected fatal WebService errors would result in
    a <code>faultCode</code> that was a string instead of a number.
   (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=446327">[% terms.Bug %] 446327</a>)</li>
  <li>If you created a product or component with the same name as one you
    previously deleted, it would fail with an error about the series table.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=247936">[% terms.Bug %] 247936</a>)</li>
</ul>

<p>See also the <a href="#v30_security">Security Advisory</a> section for
  information about a security issue fixed in this release.</p>

<h3>3.0.5</h3>

<ul>
  <li>If you don't have permission to set a flag, it will now appear
    unchangeable in the UI.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=433851">[% terms.Bug %] 433851</a>)</li>
  <li>If you were running mod_perl, [% terms.Bugzilla %] was not correctly
    closing its connections to the database since 3.0.3, and so sometimes
    the DB would run out of connections.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=441592">[% terms.Bug %] 441592</a>)</li>
  <li>The installation script is now clear about exactly which 
    <code>Email::</code> modules are required in Perl, thus avoiding the
    problem where emails show up with a body like 
    <samp>SCALAR(0xBF126795)</samp>.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=441541">[% terms.Bug %] 441541</a>)</li>
  <li><a href="[% docs_urlbase FILTER html %]api/email_in.html">email_in.pl</a>
    is no longer case-sensitive for values of <kbd>@product</kbd>.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=365697">[% terms.Bug %] 365697</a>)</li>
</ul>

<p>See also the <a href="#v30_security">Security Advisory</a> section for
  information about security issues fixed in this release.</p>

<h3>3.0.4</h3>

<ul>
  <li>[% terms.Bugzilla %] administrators were not being correctly notified
    about new releases.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=414726">[% terms.Bug %] 414726</a>)</li>

  <li>There could be extra whitespace in email subject lines.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=411544">[% terms.Bug %] 411544</a>)</li>

  <li>The priority, severity, OS, and platform fields were always required by
    the <kbd>B<!-- -->ug.create</kbd> WebService function, even if they had
    defaults specified.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=384009">[% terms.Bug %] 384009</a>)</li>

  <li>Better threading of [% terms.bug %]mail in some email clients.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=376453">[% terms.Bug %] 376453</a>)</li>

  <li>There were many fixes to the Inbound Email Interface 
    (<kbd>email_in.pl</kbd>).
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=92274">[% terms.Bug %] 92274</a>,
     <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=377025">[% terms.Bug %] 377025</a>,
     <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=412943">[% terms.Bug %] 412943</a>,
     <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=413672">[% terms.Bug %] 413672</a>, and
     <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=431721">[% terms.Bug %] 431721</a>)</li>

  <li>checksetup.pl now handles UTF-8 conversion more reliably during upgrades.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374951">[% terms.Bug %] 374951</a>)</li>

  <li>Comments written in CJK languages are now correctly word-wrapped.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=388723">[% terms.Bug %] 388723</a>)</li>

  <li>All emails will now be sent in the correct language, when the user
    has chosen a language for emails.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=405946">[% terms.Bug %] 405946</a>)

  <li>On Windows, temporary files created when uploading attachments are now
    correctly deleted when the upload is complete.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=414002">[% terms.Bug %] 414002</a>)</li>

  <li><kbd>checksetup.pl</kbd> now prints correct installation instructions
    for Windows users using Perl 5.10.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=414430">[% terms.Bug %] 414430</a>)
</ul>

<p>See also the <a href="#v30_security">Security Advisory</a> section for
  information about security issues fixed in this release.</p>

<h3>3.0.3</h3>

<ul>
  <li>mod_perl no longer compiles [% terms.Bugzilla %]'s code for each Apache
    process individually. It now compiles code only once and shares it among
    each Apache process. This greatly improves performance and highly 
    decreases the memory footprint.
   (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=398241">[% terms.Bug %] 398241</a>)</li>

  <li>You can now search for '---' (without quotes) in versions and milestones.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=362436">[% terms.Bug %] 362436</a>)</li>

  <li>[% terms.Bugzilla %] should no longer break lines unnecessarily in 
    email subjects. This was causing trouble with some email clients.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374424">[% terms.Bug %] 374424</a>)</li>

  <li>If you had selected "I'm added to or removed from this capacity" option
    for the "CC" role in your email preferences, you wouldn't get mail when
    more than one person was added to the CC list at once.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=394796">[% terms.Bug %] 394796</a>)</li>

  <li>Deleting a user account no longer deletes whines from another user who
    has the deleted account as addressee. The schedule is simply removed, 
    but the whine itself is left intact.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=395924">[% terms.Bug %] 395924</a>)</li>

  <li><kbd>contrib/merge-users.pl</kbd> now correctly merges all required
    fields when merging two user accounts.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=400160">[% terms.Bug %] 400160</a>)</li>

  <li>[% terms.Bugzilla %] no longer requires Apache::DBI to run under 
    mod_perl. It caused troubles such as lost connections with the DB and
    didn't give any important performance gain.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=408766">[% terms.Bug %] 408766</a>)</li>
</ul>

<h3>3.0.2</h3>

<ul>
  <li>[% terms.Bugzilla %] should now work on Perl 5.9.5 (and thus the
    upcoming Perl 5.10.0).
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=390442">[% terms.Bug %] 390442</a>)</li>
</ul>

<p>See also the <a href="#v30_security">Security Advisory</a> section for
  information about an important security issue fixed in this release.</p>

<h3>3.0.1</h3>

<ul>
  <li>For users of Firefox 2, the <code>show_bug.cgi</code> user interface
    should no longer "collapse" after you modify a [% terms.bug %].
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370739">[% terms.Bug %] 370739</a>)</li>
  <li>If you can bless a group, and you share a saved search with that
    group, it will no longer automatically appear in all of that group's
    footers unless you specifically request that it automatically appear
    in their footers.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=365890">[% terms.Bug %] 365890</a>)</li>
  <li>There is now a parameter to allow users to perform searches without
    any search terms. (In other words, to search for just a Product
    and Status on the Simple Search page.) The parameter is called
    <code>specific_search_allow_empty_words</code>.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=385910">[% terms.Bug %] 385910</a>)</li>
  <li>If you attach a file that has a MIME-type of <code>text/x-patch</code>
    or <code>text/x-diff</code>, it will automatically be treated as a 
    patch by [% terms.Bugzilla %].
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=365756">[% terms.Bug %] 365756</a>)</li>
  <li>Dependency Graphs now work correctly on all mod_perl installations.
    There should now be no remaining signficant problems with running
    [%+ terms.Bugzilla %] under mod_perl.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370398">[% terms.Bug %] 370398</a>)</li>
  <li>If moving a [% terms.bug %] between products would remove groups
    from the [% terms.bug %], you are now warned.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=303183">[% terms.Bug %] 303183</a>)</li>
  <li>On IIS, whenever [% terms.Bugzilla %] threw a warning, it would
    actually appear on the web page. Now warnings are suppressed,
    unless you have a file in the <code>data</code> directory called
    <code>errorlog</code>, in which case warnings will be printed there.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=390148">[% terms.Bug %] 390148</a>)</li>
  <li>If you used <kbd>email_in.pl</kbd> to edit [% terms.abug %] that was
    protected by groups, all of the groups would be cleared.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=385453">[% terms.Bug %] 385453</a>)</li>
  <li>PostgreSQL users: New Charts were failing to collect data over time.
    They will now start collecting data correctly.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=257351">[% terms.Bug %] 257351</a>)</li>
  <li>Some flag mails didn't specify who the requestee was. 
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=379787">[% terms.Bug %] 379787</a>)</li>
  <li>Instead of throwing real errors, <kbd>collectstats.pl</kbd> would
    just say that it couldn't find <code>ThrowUserError</code>.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=380709">[% terms.Bug %] 380709</a>)</li>
  <li>Logging into [% terms.Bugzilla %] from the home page works again
    with IIS5. 
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=364008">[% terms.Bug %] 364008</a>)</li>
  <li>If you were using SMTP for sending email, sometimes emails would
    be missing the <code>Date</code> header.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=304999">[% terms.Bug %] 304999</a>).</li>
  <li>In the XML-RPC WebService, <code>B<!-- -->ug.legal_values</code> now
    correctly returns values for custom fields if you request values 
    for custom fields.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=381737">[% terms.Bug %] 381737</a>)</li>
  <li>The "[% terms.Bug %]-Writing Guidelines" page has been shortened
    and re-written.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=378590">[% terms.Bug %] 378590</a>)</li>
  <li>If your <code>urlbase</code> parameter included a port number,
    like <code>www.domain.com:8080</code>, SMTP might have failed.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=384501">[% terms.Bug %] 384501</a>)</li>
  <li>For SMTP users, there is a new parameter, <code>smtp_debug</code>.
    Turning on this parameter will log the full information about
    every SMTP session to your web server's error log, to help with
    debugging issues with SMTP.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=384497">[% terms.Bug %] 384497</a>)</li>
  <li>If you are a "global watcher" (you get all mails from every 
    [% terms.bug %]), you can now see that in your Email Preferences.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=365302">[% terms.Bug %] 365302</a>)</li>
  <li>The Status and Resolution of [% terms.bugs %] are now correctly
    localized in CSV search results.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=389517">[% terms.Bug %] 389517</a>)</li>
  <li>The "Subject" line of an email was being mangled if it contained
    non-Latin characters.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=387860">[% terms.Bug %] 387860</a>)</li>
  <li>Editing the "languages" parameter using <kbd>editparams.cgi</kbd> would
    sometimes fail, causing [% terms.Bugzilla %] to throw an error.
    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=335354">[% terms.Bug %] 335354</a>)</li>
</ul>

<h2><a name="v30_req"></a>Minimum Requirements</h2>

<p>Any requirements that are new since 2.22 will look like
  <span class="req_new">this</span>.</p>

<ul>
  <li><a href="#v30_req_perl">Perl</a></li>
  <li><a href="#v30_req_mysql">For MySQL Users</a></li>
  <li><a href="#v30_req_pg">For PostgreSQL Users</a></li>
  <li><a href="#v30_req_modules">Required Perl Modules</a></li>
  <li><a href="#v30_req_optional_mod">Optional Perl
    Modules</a></li>
</ul>


<h3><a name="v30_req_perl"></a>Perl</h3>

<ul>
  <li>Perl <span class="req_new">v<strong>5.8.0</strong></span> (non-Windows 
    platforms)</li>
  <li>Perl v<strong>5.8.1</strong> (Windows platforms)</li>
</ul>

<h3><a name="v30_req_mysql"></a>For MySQL Users</h3>

<ul>
  <li>MySQL v4.1.2</li>
  <li><strong>perl module:</strong> DBD::mysql v2.9003</li>
</ul>

<h3><a name="v30_req_pg"></a>For PostgreSQL Users</h3>

<ul>
  <li>PostgreSQL v8.00.0000</li>
  <li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>

<h3><a name="v30_req_modules"></a>Required Perl Modules</h3>

<table class="req_table" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th>Module</th> <th>Version</th>
  </tr>
    <tr><td>CGI</td> <td>2.93</td>
  </tr>
  <tr>
    <td>Date::Format</td> <td>2.21</td>
  </tr>
  <tr>
    <td>DBI</td> 
    <td class="req_new">1.41</td>
  </tr>
  <tr>
    <td>File::Spec</td> <td>0.84</td>
  </tr>
  <tr>
    <td>Template</td> <td>2.12</td>
  </tr>
  <tr>
    <td class="req_new">Email::Send</td> 
    <td class="req_new">2.00</td>
  </tr>
  <tr>
    <td>Email::MIME</td> 
    <td>1.861</td>
  </tr>
  <tr>
    <td class="req_new">Email::MIME::Modifier</td> 
    <td class="req_new">1.442</td>
  </tr>
</table>

<h3><a name="v30_req_optional_mod"></a>Optional Perl Modules</h3>

<p>The following perl modules, if installed, enable various
  features of [% terms.Bugzilla %]:</p>

<table class="req_table" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th>Module</th> <th>Version</th>
    <th>Enables Feature</th>
  </tr>
   <tr>
     <td class="req_new">LWP::UserAgent</td> 
     <td class="req_new">(Any)</td> 
     <td>Automatic Update Notifications</td>
  </tr>
  <tr>
    <td>Template::Plugin::GD::Image</td> 
    <td>(Any)</td> 
    <td>Graphical Reports</td>
  </tr>
  <tr>
    <td>GD::Graph</td> 
    <td>(Any)</td> 
    <td>Graphical Reports</td>
  </tr>
  <tr>
    <td>GD::Text</td> 
    <td>(Any)</td> 
    <td>Graphical Reports</td>
  </tr>
  <tr>
    <td>GD</td> 
    <td>1.20</td> 
    <td>Graphical Reports, New Charts, Old Charts</td>
  </tr>
  <tr>
    <td class="req_new">Email::MIME::Attachment::Stripper</td> 
    <td class="req_new">(Any)</td> 
    <td>Inbound Email</td>
  </tr>
  <tr>
    <td class="req_new">Email::Reply</td> 
    <td class="req_new">(Any)</td> 
    <td>Inbound Email</td>
  </tr>
  <tr>
    <td>Net::LDAP</td> 
    <td>(Any)</td> 
    <td>LDAP Authentication</td>
  </tr>
  <tr>
    <td>HTML::Parser</td> 
    <td>3.40</td> 
    <td>More HTML in Product/Group Descriptions</td>
  </tr>
  <tr>
    <td>HTML::Scrubber</td> 
    <td>(Any)</td> 
    <td>More HTML in Product/Group Descriptions</td>
  </tr>
  <tr>
    <td>XML::Twig</td> 
    <td>(Any)</td> 
    <td>Move [% terms.Bugs %] Between Installations</td>
  </tr>
  <tr>
    <td>MIME::Parser</td> 
    <td>5.406</td> 
    <td>Move [% terms.Bugs %] Between Installations</td>
  </tr>
  <tr>
    <td>Chart::Base</td> 
    <td>1.0</td> 
    <td>New Charts, Old Charts</td>
  </tr>
  <tr>
    <td>Image::Magick</td> 
    <td>(Any)</td> 
    <td>Optionally Convert BMP Attachments to PNGs</td>
  </tr>
  <tr>
    <td>PatchReader</td> 
    <td>0.9.4</td> 
    <td>Patch Viewer</td>
  </tr>
  <tr>
    <td class="req_new">SOAP::Lite</td> 
    <td class="req_new">(Any)</td> 
    <td>XML-RPC Interface</td>
  </tr>
  <tr>
    <td class="req_new">mod_perl2</td> 
    <td class="req_new">1.999022</td> 
    <td>mod_perl</td>
  </tr>
  <tr>
    <td> CGI</td> 
    <td>3.11</td> 
    <td>mod_perl</td>
  </tr>
</table>

<h2><a name="v30_feat"></a>New Features and Improvements</h2>

<ul>
  <li><a href="#v30_feat_cf">Custom Fields</a></li>
  <li><a href="#v30_feat_mp">mod_perl Support</a></li>
  <li><a href="#v30_feat_sq">Shared Saved Searches</a></li>
  <li>
    <a href="#v30_feat_afn">Attachments and Flags on New [% terms.Bugs %]</a>
  </li>
  <li><a href="#v30_feat_cr">Custom Resolutions</a></li>
  <li><a href="#v30_feat_ppp">Per-Product Permissions</a></li>
  <li><a href="#v30_feat_ui">User Interface Improvements</a></li>
  <li><a href="#v30_feat_xml">XML-RPC Interface</a></li>
  <li><a href="#v30_feat_skin">Skins</a></li>
  <li><a href="#v30_feat_sbu">Unchangeable Fields Appear 
    Unchangeable</a></li>
  <li><a href="#v30_feat_et">All Emails in Templates</a></li>
  <li><a href="#v30_feat_df">No More Double-Filed [% terms.Bugs %]</a></li>
  <li><a href="#v30_feat_cc">Default CC List for Components</a></li>
  <li><a href="#v30_feat_emi">File/Modify [% terms.Bugs %] By Email</a></li>
  <li><a href="#v30_feat_gw">Users Who Get All [% terms.Bug %] 
    Notifications</a></li>
  <li><a href="#v30_feat_utf8">Improved UTF-8 Support</a></li>
  <li><a href="#v30_feat_upda">Automatic Update Notification</a></li>
  <li><a href="#v30_feat_welc">Welcome Page for New Installs</a></li>
  <li><a href="#v30_feat_other">Other Enhancements and Changes</a></li>
</ul>

<h3><a name="v30_feat_cf"></a>Custom Fields</h3>

<p>[% terms.Bugzilla %] now includes very basic support for custom fields.</p>

<p>Users in the <kbd>admin</kbd> group can add plain-text or drop-down
  custom fields. You can edit the values available for drop-down fields
  using the &quot;Field Values&quot; control panel.</p>

<p>Don't add too many custom fields! It can make [% terms.Bugzilla %]
  very difficult to use. Try your best to get along with the default
  fields, and then if you find that you can't live without custom fields
  after a few weeks of using [% terms.Bugzilla %], only then should you
  start your custom fields.</p>

<h3><a name="v30_feat_mp"></a>mod_perl Support</h3>

<p>[% terms.Bugzilla %] 3.0 supports mod_perl, which allows for extremely
  enhanced page-load performance. mod_perl trades memory usage for performance,
  allowing near-instantaneous page loads, but using much more memory.</p>

<p>If you want to enable mod_perl for your [% terms.Bugzilla %], we recommend
  a minimum of 1.5GB of RAM, and for a site with heavy traffic, 4GB to 8GB.</p>

<p>If performance isn't that critical on your installation, you don't
  have the memory, or you are running some other web server than
  Apache, [% terms.Bugzilla %] still runs perfectly as a normal CGI
  application, as well.</p>

<h3><a name="v30_feat_sq"></a>Shared Saved Searches</h3>

<p>Users can now choose to &quot;share&quot; their saved searches
  with a certain group. That group will then be able to 
  &quot;subscribe&quot; to those searches, and have them appear
  in their footer.</p>

<p>If the sharer can &quot;bless&quot; the group he's sharing to,
  (that is, if he can add users to that group), it's considered
  that he's a manager of that group, and his queries show up
  automatically in that group's footer (although they can
  unsubscribe from any particular search, if they want.)</p>

<p>In order to allow a user to share their queries, they also
  have to be a member of the group specified in the 
  <code>querysharegroup</code> parameter.</p>

<p>Users can control their shared and subscribed queries from
  the &quot;Preferences&quot; screen.</p>

<h3><a name="v30_feat_afn"></a>Attachments and Flags on New 
  [% terms.Bugs %]</h3>

<p>You can now add an attachment while you are filing a new 
  [% terms.bug %].</p>

<p>You can also set flags on the [% terms.bug %] and on attachments, while
  filing a new [% terms.bug %].</p>

<h3><a name="v30_feat_cr"></a>Custom Resolutions</h3>

<p>You can now customize the list of resolutions available
  in [% terms.Bugzilla %], including renaming the default resolutions.</p>

<p>The resolutions <code>FIXED</code>, <code>DUPLICATE</code>
  and <code>MOVED</code> have a special meaning to [% terms.Bugzilla %],
  though, and cannot be renamed or deleted.</p>

<h3><a name="v30_feat_ppp"></a>Per-Product Permissions</h3>

<p>You can now grant users <kbd>editbugs</kbd> and <kbd>canconfirm</kbd>
  for only certain products. You can also grant users <kbd>editcomponents</kbd>
  on a product, which means they will be able to edit that product
  including adding/removing components and other product-specific
  controls.</p>

<h3><a name="v30_feat_ui"></a>User Interface Improvements</h3>

<p>There has been some work on the user interface for [% terms.Bugzilla %] 3.0,
  including:</p>

<ul>
  <li>There is now navigation and a search box a the <em>top</em> of
    each page, in addition to the bar at the bottom of the page.</li>
  <li>A re-designed &quot;Format for Printing&quot; page for 
    [% terms.bugs %].</li>
  <li>The layout of <kbd>show_bug.cgi</kbd> (the [% terms.bug %] editing 
    page) has been changed, and the attachment table has been redesigned.</li>
</ul>

<h3><a name="v30_feat_xml"></a>XML-RPC Interface</h3>

<p>[% terms.Bugzilla %] now has a Web Services interface using the XML-RPC
  protocol. It can be accessed by external applications by going
  to the <kbd>xmlrpc.cgi</kbd> on your installation.</p>

<p>Documentation can be found in the 
  <a href="[% docs_urlbase FILTER html %]api/">[% terms.Bugzilla %] 
  API Docs</a>, in the various <kbd>Bugzilla::WebService</kbd> modules.</p>

<h3><a name="v30_feat_skin"></a>Skins</h3>

<p>[% terms.Bugzilla %] can have multiple &quot;skins&quot; installed,
  and users can pick between them. To write a skin, you just have to
  write several CSS files. See the <a href="[% docs_urlbase FILTER html %]cust-skins.html">Custom
  Skins Documentation</a> for more details.</p>

<p>We currently don't have any alternate skins shipping with
  [% terms.Bugzilla %]. If you write an alternate skin, please
  let us know!</p>

<h3><a name="v30_feat_sbu"></a>Unchangeable Fields Appear
  Unchangeable</h3>

<p>As long as you are logged in, when viewing [% terms.abug %], if you 
  cannot change a field, it will not look like you can change it. That 
  is, the value will just appear as plain text.</p>

<h3><a name="v30_feat_et"></a>All Emails in Templates</h3>

<p>All outbound emails are now controlled by the templating system.
  What used to be the <code>passwordmail</code>, <code>whinemail</code>,
  <code>newchangedmail</code> and <code>voteremovedmail</code>
  parameters are now all templates in the <kbd>template/</kbd> directory.</p>

<p>This means that it's now much easier to customize your outbound
  emails, and it's also possible for localizers to have more
  localized emails as part of their language packs, if they want.</p>

<p>We also added a <code>mailfrom</code> parameter to let you set
  who shows up in the <code>From</code> field on all emails that
  [%+ terms.Bugzilla %] sends.</p>

<h3><a name="v30_feat_df"></a>No More Double-Filed [% terms.Bugs %]</h3>

<p>Users of [% terms.Bugzilla %] will sometimes accidentally submit 
  [% terms.abug %] twice, either by going back in their web browser, 
  or just by refreshing a page. In the past, this could file the same 
  [% terms.bug %] twice (or even three times) in a row, irritating 
  developers and confusing users.</p>

<p>Now, if you try to submit [% terms.abug %] twice from the same screen 
  (by going back or by refreshing the page), [% terms.Bugzilla %] will warn 
  you about what you're doing, before it actually submits the duplicate
  [%+ terms.bug %].</p>

<h3><a name="v30_feat_cc"></a>Default CC List for Components</h3>

<p>You can specify a list of users who will <em>always</em> be added to
  the CC list of new [% terms.bugs %] in a component.</p>

<h3><a name="v30_feat_emi"></a>File/Modify [% terms.Bugs %] By Email</h3>

<p>You can now file or modify [% terms.bugs %] via email. Previous versions
  of [% terms.Bugzilla %] included this feature only as an
  unsupported add-on, but it is now an official interface to
  [%+ terms.Bugzilla %].</p>

<p>For more details see the <a href="[% docs_urlbase FILTER html %]api/email_in.html">documentation
  for email_in.pl</a>.</p>

<h3><a name="v30_feat_gw"></a>Users Who Get All [% terms.Bug %] 
  Notifications</h3>

<p>There is now a parameter called <kbd>globalwatchers</kbd>. This
  is a comma-separated list of [% terms.Bugzilla %] users who will
  get all [% terms.bug %] notifications generated by [% terms.Bugzilla %].</p>

<p>Group controls still apply, though, so users who can't see a [% terms.bug %]
  still won't get notifications about that [% terms.bug %].</p>

<h3><a name="v30_feat_utf8"></a>Improved UTF-8 Support</h3>

<p>[% terms.Bugzilla %] users running MySQL should now have excellent
  UTF-8 support if they turn on the <kbd>utf8</kbd> parameter. (New
  installs have this parameter on by default.) [% terms.Bugzilla %]
  now correctly supports searching and sorting in non-English languages,
  including multi-bytes languages such as Chinese.</p>

<h3><a name="v30_feat_upda"></a>Automatic Update Notification</h3>

<p>If you belong to the <kbd>admin</kbd> group, you will be notified
  when you log in if there is a new release of [% terms.Bugzilla %]
  available to download.</p>

<p>You can control these notifications by changing the 
  <kbd>upgrade_notification</kbd> parameter.</p>

<p>If your [% terms.Bugzilla %] installation is on a machine that needs to go
  through a proxy to access the web, you may also have to set the
  <kbd>proxy_url</kbd> parameter.</p>

<h3><a name="v30_feat_welc"></a>Welcome Page for New Installs</h3>

<p>When you log in for the first time on a brand-new [% terms.Bugzilla %]
  installation, you will be presented with a page that describes
  where you should go from here, and what parameters you should set.</p>

<h3><a name="v30_feat_qs"></a>QuickSearch Plugin for IE7 and Firefox 2</h3>

<p>Firefox 2 users and Internet Explorer 7 users will be presented
  with the option to add [% terms.Bugzilla %] to their search bar.
  This uses the 
  <a href="page.cgi?id=quicksearch.html">QuickSearch syntax</a>.</p>

<h3><a name="v30_feat_other"></a>Other Enhancements and Changes</h3>

<p>These are either minor enhancements, or enhancements that have
  very short descriptions. Some of these are very useful, though!</p>

<h4>Enhancements That Affect [% terms.Bugzilla %] Users</h4>

<ul>
  <li>In comments, quoted text (lines that start with <kbd>&gt;</kbd>)
    will be a different color from normal text.</li>
  <li>There is now a user preference that will add you to the CC list
    of any [% terms.bug %] you modify. Note that it's <strong>on</strong> 
    by default.</li>
  <li>[% terms.Bugs %] can now be filed with an initial state of 
    <kbd>ASSIGNED</kbd>, if you are in the <kbd>editbugs</kbd> group.</li>
  <li>By default, comment fields will zoom large when you are typing in them,
    and become small when you move out of them. You can disable this
    in your user preferences.</li>
  <li>You can hide obsolete attachments on [% terms.abug %] by clicking
    &quot;Hide Obsolete&quot; at the bottom of the attachment table.</li>
  <li>If a [% terms.bug %] has flags set, and you move it to a different 
    product that has flags with the same name, the flags will be 
    preserved.</li>
  <li>You now can't request a flag to be set by somebody who can't set it
    ([% terms.Bugzilla %] will throw an error if you try).</li>
  <li>Many new headers have been added to outbound [% terms.Bugzilla %]
    [%+ terms.bug %] emails: <code>X-Bugzilla-Status</code>,
    <code>X-Bugzilla-Priority</code>, <code>X-Bugzilla-Assigned-To</code>,
    <code>X-Bugzilla-Target-Milestone</code>, and 
    <code>X-Bugzilla-Changed-Fields</code>, <code>X-Bugzilla-Who</code>.
    You can look at an email to get an idea of what they contain.</li>
  <li>In addition to the old <code>X-Bugzilla-Reason</code> email header
    which tells you why you got an email, if you got an email because
    you were watching somebody, there is now an 
    <code>X-Bugzilla-Watch-Reason</code> header that tells you who you
    were watching and what role they had.</li>
  <li>If you hover your mouse over a full URL (like 
    <code>http://bugs.mycompany.com/show_bug.cgi?id=1212</code>) that 
    links to [% terms.abug %], you will see the title of the 
    [%+ terms.bug %]. Of course, this only works for [% terms.bugs %] in your
    [%+ terms.Bugzilla %] installation.</li>
  <li>If your installation has user watching enabled, you will now see
    the users that you can remove from your watch-list as a multi-select
    box, much like the current CC list. (Previously it was just a text
    box.)</li>
  <li>When a user creates their own account in [% terms.Bugzilla %], the 
    account is now not actually created until they verify their email
    address by clicking on a link that is emailed to them.</li>
  <li>You can change [% terms.abug %]'s resolution without reopening it.</li>
  <li>When you view the dependency tree on [% terms.abug %], resolved 
    [%+ terms.bugs %] will be hidden by default. (In previous versions,
    resolved [% terms.bugs %] were shown by default.)</li>
  <li>When viewing [% terms.bug %] activity, fields that hold [% terms.bug %] 
    numbers (such as &quot;Blocks&quot;) will have the [% terms.bug %] numbers
    displayed as links to those [% terms.bugs %].</li>
  <li>When viewing the &quot;Keywords&quot; field in a [% terms.bug %] list,
    it will be sorted alphabetically, so you can sanely sort a list on
    that field.</li>
  <li>In most places, the Version field is now sorted using a version-sort
    (so 1.10 is greater than 1.2) instead of an alphabetical sort.</li>
  <li>Options for flags will only appear if you can set them. So, for
    example, if you can't grant <kbd>+</kbd> on a flag, that option
    won't appear for you.</li>
  <li>You can limit the product-related output of <kbd>config.cgi</kbd>
    by specifying a <kbd>product=</kbd> URL argument, containing the name
    of a product. You can specify the argument more than once for multiple
    products.</li>
  <li>You can now search the boolean charts on whether or not a comment
    is private.</li>
</ul>

<h4>Enhancements For Administrators</h4>

<ul>
  <li>Administrators can now delete attachments, making them disappear
    entirely from [% terms.Bugzilla %].</li>
  <li><kbd>sanitycheck.cgi</kbd> can now only be accessed by users
    in the <kbd>editcomponents</kbd> group.</li>
  <li>The &quot;Field Values&quot; control panel can now only be accessed
    by users in the <kbd>admin</kbd> group. (Previously it was accessible
    to anybody in the <kbd>editcomponents</kbd> group.)</li>
  <li>There is a new parameter <kbd>announcehtml</kbd>, that will allow
    you to enter some HTML that will be displayed at the top of every
    page, as an announcement.</li>
  <li>The <kbd>loginnetmask</kbd> parameter now defaults to 0 for new
    installations, meaning that as long as somebody has the right
    login cookie, they can log in from any IP address. This makes
    life a lot easier for dial-up users or other users whose IP
    changes a lot. This could be done because the login cookie is now
    very random, and thus secure.</li>
  <li>Classifications now have sortkeys, so they can be sorted in an
    order that isn't alphabetical.</li>
  <li>Authentication now supports LDAP over SSL (LDAPS) or TLS (using
    the STARTLS command) in addition to plain LDAP.</li>
  <li>LDAP users can have their LDAP username be their email address,
    instead of having the LDAP <kbd>mail</kbd> attribute be their
    email address. You may wish to set the <kbd>emailsuffix</kbd>
    parameter if you do this.</li>
  <li>Administrators can now see what has changed in a user account,
    when using the &quot;Users&quot; control panel.</li>
  <li><code>REMIND</code> and <code>LATER</code> are no longer part
    of the default list of resolutions. Upgrading installations will
    not be affected--they will still have these resolutions.</li>
  <li><kbd>editbugs</kbd> is now the default for the <kbd>timetrackinggroup</kbd>
    parameter, meaning that time-tracking will be on by default in a new
    installation.</li>
</ul>

<h2><a name="v30_issues"></a>Outstanding Issues</h2>

<ul>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
    [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
    in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing 
    the option to rebuild the cache when it asks. Otherwise keywords may 
    not show up properly in search results.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=99215">
    [%- terms.Bug %] 99215</a>: Flags are not protected by "mid-air 
    collision" detection. Nor are any attachment changes.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
    [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at 
    the same time, there is no "mid-air collision" protection.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230">
    [%- terms.Bug %] 276230</a>: The support for restricting access to 
    particular Categories of New Charts is not complete. You should treat 
    the 'chartgroup' Param as the only access mechanism available.<br>
    However, charts migrated from Old Charts will be restricted to 
    the groups that are marked MANDATORY for the corresponding Product.
    There is currently no way to change this restriction, and the 
    groupings will not be updated if the group configuration
    for the Product changes.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370370">
    [%- terms.Bug %] 370370</a>: mod_perl support is currently not
    working on Windows machines.</li>
  <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=361149">
    [%- terms.Bug %] 361149</a>: If you are using Perl 5.8.0, you may
    get a lot of warnings in your Apache error_log about "deprecated
    pseudo-hashes." These are harmless--they are a b[%# fool test %]ug in 
    Perl 5.8.0. Perl 5.8.1 and later do not have this problem.</li>
  <li>[% terms.Bugzilla %] 3.0rc1 allowed custom field column names in 
    the database to be mixed-case. [% terms.Bugzilla %] 3.0 only allows
    lowercase column names. It will fix any column names that you have
    made mixed-case, but if you have custom fields that previously were
    mixed-case in any Saved Search, you will have to re-create that Saved
    Search yourself.</li>
</ul>

<h2><a name="v30_security"></a>Security Updates in This Release</h2>

<h3>3.0.6</h3>

<p>[% terms.Bugzilla %] contains a minor security fix. For details, see the
  <a href="http://www.bugzilla.org/security/2.20.6/">Security Advisory</a>.</p>

<h3>3.0.5</h3>

<p>[% terms.Bugzilla %] contains one security fix for 
  <a href="[% docs_urlbase FILTER html %]api/importxml.html">importxml.pl</a>.
  For details, see the 
  <a href="http://www.bugzilla.org/security/2.22.4/">Security Advisory</a>.</p>

<h3>3.0.4</h3>

<p>[% terms.Bugzilla %] 3.0.4 contains three security fixes.
  For details, see the
  <a href="http://www.bugzilla.org/security/2.20.5/">Security Advisory</a>.</p>
</p>

<h3>3.0.3</h3>

<p>No security fixes in this release.</p>

<h3>3.0.2</h3>

<p>[% terms.Bugzilla %] 3.0.1 had an important security fix that is
  critical for public installations with "requirelogin" turned on.
  For details, see the
  <a href="http://www.bugzilla.org/security/3.0.1/">Security Advisory</a></p>

<h3>3.0.1</h3>

<p>[% terms.Bugzilla %] 3.0 had three security issues that have been
  fixed in this release: one minor information leak, one hole only
  exploitable by an admin or using <code>email_in.pl</code>, and one in an
  uncommonly-used template. For details, see the 
  <a href="http://www.bugzilla.org/security/2.20.4/">Security Advisory</a>.</p>

<h2><a name="v30_upgrading"></a>How to Upgrade From An Older Version</h2>

<h3><a name="v30_upgrading_notes"></a>Notes For Upgraders</h3>

<ul>
  <li>If you upgrade by CVS, there are several .cvsignore files
    that are now in CVS instead of being locally created by 
    <kbd>checksetup.pl</kbd>. This means that you will have to
    delete those files when CVS tells you there's a conflict, and
    then run <kbd>cvs update</kbd> again.</li>
  <li>In this version of [% terms.Bugzilla %], the Summary field
    is now limited to 255 characters. When you upgrade, any Summary
    longer than that will be truncated, and the old summary will be
    preserved in a comment.</li>
  <li>If you have the <kbd>utf8</kbd> parameter turned on, at some
    point you will have to convert your database. <kbd>checksetup.pl</kbd>
    will tell you when this is, and it will give you certain instructions
    at that time, that you have to follow before you can complete
    the upgrade. Don't do the conversion yourself manually--follow
    the instructions of checksetup.pl.</li>
  <li>If you ever ran 2.23.3, 2.23.4, or 3.0rc1, you will have to run
    <kbd>./collectstats.pl --regenerate</kbd> at the command line, because
    the data for your Old Charts is corrupted. This can take several days,
    so you may only want to run it if you use Old Charts.</li>
  <li>You should also read the Outstanding Issues sections of
    <a href="#v30_previous">older release notes</a> if you are upgrading
    from a version lower than 2.22.</li>
</ul>

<h3>Steps For Upgrading</h3>

<p>Once you have read the notes above, see the 
  <a href="[% docs_urlbase FILTER html %]upgrade.html">Upgrading 
  documentation</a> for instructions on how to upgrade.</p>

<h2><a name="v30_code_changes"></a>Code Changes Which May Affect 
  Customizations</h2>

<ul>
  <li><a href="#v30_code_loc"><strong>Packagers:</strong> Location
    Variables Have Moved</a></li>
  <li><a href="#v30_code_hooks">Hooks!</a></li>
  <li><a href="#v30_code_api">API Documentation</a></li>
  <li><a href="#v30_code_globals">Elimination of globals.pl</a></li>
  <li><a href="#v30_code_scope">Cleaned Up Variable Scoping Issues</a></li>
  <li><a href="#v30_code_sql">No More SendSQL</a></li>
  <li><a href="#v30_code_auth">Auth Re-write</a></li>
  <li><a href="#v30_code_obj">Bugzilla::Object</a></li>
  <li><a href="#v30_code_req">Bugzilla-&gt;request_cache</a></li>
  <li><a href="#v30_code_other">Other Changes</a></li>
</ul>

<h3><a name="v30_code_loc"></a><strong>Packagers:</strong> Location
    Variables Have Moved</h3>

<p>In previous versions of [% terms.Bugzilla %], <kbd>Bugzilla::Config</kbd>
  held all the paths for different things, such as the path to localconfig
  and the path to the <kbd>data/</kbd> directory.</p>

<p>Now, all of this data is stored in a subroutine,
  <kbd>Bugzilla::Constants::bz_locations</kbd>.</p>

<p>Also, note that for mod_perl, <kbd>bz_locations</kbd> must return
  <em>absolute</em> (not relative) paths. There is already code in that
  subroutine to help you with this.</p>

<h3><a name="v30_code_hooks"></a>Hooks!</h3>

<p>[% terms.Bugzilla %] now supports a code hook mechanism. See the 
  documentation for 
  <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>
  for more details.</p>

<p>This gives [% terms.Bugzilla %] very advanced plugin support. You can
  hook templates, hook code, add new parameters, and use the XML-RPC
  interface. So we'd like to see some [% terms.Bugzilla %] plugins
  written! Let us know on the <a href="http://bugzilla.org/cgi-bin/mj_wwwusr?func=lists-long-full&amp;extra=developers">developers&#64;bugzilla.org</a>
  mailing list if you write a plugin.</p>

<p>If you need more hooks, please 
  <a href="http://www.bugzilla.org/developers/reporting_bugs.html">File a
  bug</a>!</p>

<h3><a name="v30_code_api"></a>API Documentation</h3>

<p>[% terms.Bugzilla %] now ships with all of its perldoc built
  as HTML. Go ahead and read the
  <a href="[% docs_urlbase FILTER html %]api/">API Documentation</a>
  for all of the [% terms.Bugzilla %] modules now! Even scripts like
  <kbd>checksetup.pl</kbd> have HTML documentation.</p>

<h3><a name="v30_code_globals"></a>Elimination of globals.pl</h3>

<p>The old file <kbd>globals.pl</kbd> has been eliminated.
  Its code is now in various modules. Each function went to the module
  that was appropriate for it.</p>

<p>Usually we filed [% terms.abug %] in 
  <a href="https://bugzilla.mozilla.org">bugzilla.mozilla.org</a> for
  each function we moved. You can search there for the old name of
  the function, and that should get you the information about what
  it's called now and where it lives.</p>

<h3><a name="v30_code_scope"></a>Cleaned Up Variable Scoping Issues</h3>

<p>In normal perl, you can have code like this:</p>
<pre>my $var = 0;
sub y { $var++ }</pre>

<p>However, under mod_perl that doesn't work. So variables are no
  longer &quot;shared&quot; with subroutines--instead all variables
  that a subroutine needs must be declared inside the subroutine itself.</p>

<h3><a name="v30_code_sql"></a>No More SendSQL</h3>

<p>The old <kbd>SendSQL</kbd> function and all of its companions are
  <strong>gone</strong>. Instead, we now use DBI for all database
  interaction.</p>

<p>For more information about how to use 
  <a href="http://search.cpan.org/perldoc?DBI">DBI</a> with 
  [% terms.Bugzilla %], see the 
  <a href="http://www.bugzilla.org/docs/developer.html#sql-sendreceive">Developer's
  Guide Section About DBI</a></p>

<h3><a name="v30_code_auth"></a>Auth Re-write</h3>

<p>The <kbd>Bugzilla::Auth</kbd> family of modules have been completely
  re-written. For details on how the new structure of authentication,
  read the 
  <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Auth.html">Bugzilla::Auth
  API docs</a>.</p>

<p>It should be very easy to write new authentication plugins, now.</p>

<h3><a name="v30_code_obj"></a>Bugzilla::Object</h3>

<p>There is a new base class for most of our objects, 
  <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html">Bugzilla::Object</a>.
  It makes it really easy to create new objects based on things that are 
  in the database.</p>

<h3><a name="v30_code_req"></a>Bugzilla-&gt;request-cache</h3>

<p><kbd>Bugzilla.pm</kbd> used to cache things like the database
  connection in package-global variables (like <kbd>$_dbh</kbd>).
  That doesn't work in mod_perl, so instead now there's a hash
  that can be accessed through <code>Bugzilla-&gt;request_cache</code>
  to store things for the rest of the current page request.</p>

<p>You shouldn't access <code>Bugzilla-&gt;request_cache</code> directly,
  but you should use it inside of <kbd>Bugzilla.pm</kbd> if you modify
  that. The only time you should be accessing it directly is if you need
  to reset one of the caches. Hash keys are always named after the function
  that they cache, so to reset the template object, you'd do:
  <code>delete Bugzilla-&gt;request_cache-&gt;{template};</code>.</p>

<h3><a name="v30_code_other"></a>Other Changes</h3>

<ul>
  <li><code>checksetup.pl</code> has been completely re-written, and most
    of its code moved into modules in the <kbd>Bugzilla::Install</kbd>
    namespace. See the
    <a href="[% docs_urlbase FILTER html %]api/checksetup.html">checksetup
    documentation</a> and <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=277502&amp;hide_resolved=0">[% terms.Bugzilla %]
   [%+ terms.bug %] 277502</a> for details.</li>
  <li>Instead of <kbd>UserInGroup()</kbd>, all of [% terms.Bugzilla %] now 
    uses <kbd>Bugzilla-&gt;user-&gt;in_group</kbd></li>
  <li>mod_perl doesn't like dependency loops in modules, so we now have
    a test for that detects dependency loops in modules when you run
   <kbd>runtests.pl</kbd>.</li>
  <li><kbd>globals.pl</kbd> used to modify the environment variables,
    like <kbd>PATH</kbd>. That now happens in <kbd>Bugzilla.pm</kbd>.</li>
  <li>Templates can now link to the documentation more easily.
    See the <kbd>global/code-error.html.tmpl</kbd> and
    <kbd>global/user-error.html.tmpl</kbd> templates for examples.
    (Search for &quot;docslinks.&quot;)</li>
  <li>Parameters are accessed through <kbd>Bugzilla-&gt;params</kbd>
    instead of using the <kbd>Param()</kbd> function, now.</li>
  <li>The variables from the <kbd>localconfig</kbd> file are accessed
    through the <code>Bugzilla-&gt;localconfig</code> hash instead of through
    <kbd>Bugzilla::Config</kbd>.</li>
  <li><kbd>Bugzilla::BugMail::MessageToMTA()</kbd> has moved into its
    own module, along with other mail-handling code, called
    <kbd>Bugzilla::Mailer</kbd></li>
  <li>The <kbd>CheckCanChangeField()</kbd> subroutine in 
    <kbd>process_bug.cgi</kbd> has been moved to <kbd>Bugzilla::Bug</kbd>,
    and is now a method of a [% terms.bug %] object.</li>
  <li>The code that used to be in the <kbd>global/banner.html.tmpl</kbd>
    template is now in <kbd>global/header.html.tmpl</kbd>. The banner
    still exists, but the file is empty.</li>
</ul>

<h2><a name="v30_previous"></a>Release Notes For Previous Versions</h2>

<p>Release notes for versions of [% terms.Bugzilla %] for versions
  prior to 3.0 are only available in text format: 
  <a href="[% docs_urlbase FILTER remove('html/$') FILTER html %]rel_notes.txt">Release Notes for [% terms.Bugzilla %] 2.22
  and Earlier</a>.</p>

[% INCLUDE global/footer.html.tmpl %]

[% BLOCK db_req %]
  [% SET m = DB_MODULE.$db %]
  <h3><a name="v32_req_[% db FILTER html %]"></a>For [% m.name FILTER html %] 
    Users</h3>

  <ul>
    <li>[% m.name FILTER html %]
       [%+ '<span class="req_new">' IF db_new %]v[% m.db_version FILTER html %]
       [% '</span>' IF db_new %]
       </li>
    <li><strong>perl module:</strong>
      [%+ m.dbd.module FILTER html %] 
      [% '<span class="req_new">' IF dbd_new %]v[% m.dbd.version FILTER html %]
      [% '</span>' IF dbd_new %]</li>
  </ul>
[% END %]


[% BLOCK req_table %]
  <table class="req_table" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <th>Module</th> <th>Version</th>
      [% IF include_feature %]
        <th>Enables Feature</th>
      [% END %]
    </tr>
    [% FOREACH req = reqs %]
      <tr>
        <td [% 'class="req_new"' IF new.contains(req.package) %]>
          [%- req.module FILTER html %]</td> 
        <td [% 'class="req_new"' IF updated.contains(req.package) 
                                    OR new.contains(req.package) %]>
          [%- IF req.version == 0 %]
            (Any)
          [% ELSE %]
            [%- req.version FILTER html %]
          [% END %]
        </td>
        [% IF include_feature %] 
          <td>[% req.feature FILTER html %]</td>
        [% END %]
      </tr>
    [% END %]
</table>
[% END %]