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
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
|
[%# 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 %]
[% SET title = "$terms.Bugzilla 4.0 Release Notes" %]
[% INCLUDE global/header.html.tmpl
title = title
style_urls = ['skins/standard/page.css']
%]
<h1>[% title FILTER html %]</h1>
<ul class="bz_toc">
<li><a href="#v40_introduction">Introduction</a></li>
<li><a href="#v40_req">Minimum Requirements</a></li>
<li><a href="#v40_feat">New Features and Improvements</a></li>
<li><a href="#v40_issues">Outstanding Issues</a></li>
<li><a href="#v40_upgrading">Notes On Upgrading From a Previous Version</a></li>
<li><a href="#v40_code_changes">Code Changes Which May Affect
Customizations and Extensions</a></li>
<li><a href="#v40_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v40_introduction">Introduction</h2>
<p>This is [% terms.Bugzilla %] 4.0! Since 3.6 (our previous major
release) we've come a long way, and we've come even further compared to
3.0 in 2007! Since [% terms.Bugzilla %] 3.0, almost every major user
interface in [% terms.Bugzilla %] has been redesigned, the WebServices have
evolved enormously, there's a great new Extensions system, and there
are hundreds of other new features. With the major redesigns that come
particularly in this release compared to 3.6, we felt that it was time to
call this release 4.0.</p>
<p>It's not just major WebService and UI enhancements that are new in
[%+ terms.Bugzilla %] 4.0—there are many other exciting new features,
including automatic duplicate detection, enhanced custom field
functionality, autocomplete for users, search improvements, and much
more. Overall, 4.0 is far and away the best version of [% terms.Bugzilla %]
we've ever released.</p>
<p>If you're upgrading, make sure to read <a href="#v40_upgrading">Notes
On Upgrading From a Previous Version</a>. If you are upgrading from a release
before 3.6, make sure to read the release notes for all the
<a href="#v40_previous">previous versions</a> in between your version
and this one, <strong>particularly the Upgrading section of each
version's release notes</strong>.</p>
<p>We would like to thank
<a href="http://www.itasoftware.com/">ITA Software</a>,
the <a href="http://www.ibm.com/linux/ltc/">IBM Linux Technology Center</a>,
and <a href="http://www.redhat.com/">Red Hat</a> for funding the development
of certain features and improvements in this release of
[%+ terms.Bugzilla %].</p>
<h2 id="v40_req">Minimum Requirements</h2>
<p>Any requirements that are new since 3.6.3 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v40_req_perl">Perl</a></li>
<li><a href="#v40_req_mysql">For MySQL Users</a></li>
<li><a href="#v40_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v40_req_oracle">For Oracle Users</a></li>
<li><a href="#v40_req_modules">Required Perl Modules</a></li>
<li><a href="#v40_req_optional_mod">Optional Perl Modules</a></li>
<li><a href="#v40_req_apache">Optional Apache Modules</a></li>
</ul>
<h3 id="v40_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
[% INCLUDE db_req db='mysql' %]
[% INCLUDE db_req db='pg' %]
[% INCLUDE db_req db='oracle' %]
<h3 id="v40_req_modules">Required Perl Modules</h3>
[% INCLUDE req_table reqs = REQUIRED_MODULES
new = ['List-MoreUtils']
updated = ['Email-MIME', 'CGI.pm', 'Apache-SizeLimit'] %]
<h3 id="v40_req_optional_mod">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 = ['JSON-XS', 'Win32-API', 'Math-Random-Secure']
updated = ['Apache-SizeLimit', 'SOAP-Lite']
include_feature = 1 %]
<h3 id="v40_req_apache">Optional Apache Modules</h3>
<p>If you are using Apache as your webserver, [% terms.Bugzilla %] can
now take advantage of some Apache features if you have the below Apache
modules installed and enabled. Currently,
<a href="#v40_feat_js_css_update">certain [% terms.Bugzilla %] features</a>
are enabled only if you have all of the following modules installed
and enabled:</p>
<ul>
<li>mod_headers</li>
<li>mod_expires</li>
<li>mod_env</li>
</ul>
<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to
tell whether or not you have these modules installed, and it will tell
you.</p>
<h2 id="v40_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v40_feat_dup">Automatic Duplicate Detection When Filing
[%+ terms.Bugs %]</a></li>
<li><a href="#v40_feat_search_ui">New Advanced Search UI</a></li>
<li><a href="#v40_feat_attach_ui">New Attachment Details UI</a></li>
<li><a href="#v40_feat_autocomplete">Autocomplete for Users and
Keywords</a></li>
<li><a href="#v40_feat_ui">General Usability Improvements</a></li>
<li><a href="#v40_feat_workflow">New Default Status Workflow</a></li>
<li><a href="#v40_feat_lists">"Last Search" Now Remembers Multiple
Searches</a></li>
<li><a href="#v40_feat_jsonp">Cross-Domain WebServices with JSONP</a></li>
<li><a href="#v40_feat_ws">Major WebService Enhancements</a></li>
<li><a href="#v40_feat_mandatory">Mandatory Custom Fields</a></li>
<li><a href="#v40_feat_vot_ext">Voting Is Now An Extension</a></li>
<li><a href="#v40_feat_js_css_update">Users Get New CSS and Javascript
Automatically</a></li>
<li><a href="#v40_feat_hooks">Many New Hooks</a></li>
<li><a href="#v40_feat_apache_config">New Apache Configuration</a></li>
<li><a href="#v40_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v40_feat_dup">Automatic Duplicate Detection When Filing
[%+ terms.Bugs %]</h3>
<p>When filing [% terms.abug %], as soon as you start typing in the summary
field, [% terms.Bugzilla %] will suggest possible duplicates of the
[%+ terms.bug %] you are filing.</p>
<p>In order for this feature to work, all pre-requisites for JSON-RPC
support must be installed on your [% terms.Bugzilla %]. It will be
much faster on installations that run under mod_perl than it will
be on other installations.</p>
<h3 id="v40_feat_search_ui">New Advanced Search UI</h3>
<p>Thanks to the UI work of <a href="http://guy-pyrzak.blogspot.com/">Guy
Pyrzak</a>, the Advanced Search UI has been completely redesigned.
It is now much simpler, and far more approachable for new users, while
still retaining all of the features that power users are used to.</p>
<h3 id="v40_feat_attach_ui">New Attachment Details UI</h3>
<p>The UI used for editing attachment details has been completely
redesigned, allowing for a normally-size comment box to be used
when commenting on attachments, and allowing nearly the entire screen
width to be used when doing code reviews or editing an attachment as
a comment.</p>
<p>Thanks to <a href="http://guy-pyrzak.blogspot.com/">Guy Pyrzak</a> for
his excellent work on this UI redesign.</p>
<h3 id="v40_feat_autocomplete">Autocomplete for Users and Keywords</h3>
<p>Once you type at least three characters in any field that can contain a user
(including the [% field_descs.cc FILTER html %],
[%+ field_descs.qa_contact FILTER html %], or
[%+ field_descs.assigned_to FILTER html %] fields), a list will appear
containing all of the users whose real names or usernames match what you are
typing. Your [% terms.Bugzilla %] must have all of the optional Perl
modules required for JSON-RPC support installed, though, in order for
this feature to work. Also, this feature will be <strong>much</strong>
faster on installations that run under mod_perl than it will be on
other installations.</p>
<p>There is also a similar autocomplete for the Keywords field. The
Keywords autocomplete does not require JSON-RPC.</p>
<h3 id="v40_feat_ui">General Usability Improvements</h3>
<p>In addition to the enhancements listed above, there have been
<strong>many</strong> improvements made across the [% terms.Bugzilla %]
user interface. For a list of specific enhancements that were significant,
see the <a href="#v40_feat_other">Other Enhancements and Changes</a>
section.</p>
<h3 id="v40_feat_workflow">New Default Status Workflow</h3>
<p>For new installations of [% terms.Bugzilla %], the default set of
statuses will now be:</p>
<ul>
<li>UNCONFIRMED</li>
<li>CONFIRMED</li>
<li>IN_PROGRESS</li>
<li>RESOLVED</li>
<li>VERIFIED</li>
</ul>
<p>And the UNCONFIRMED status will be enabled by default in all products.</p>
<p>On upgrade, existing installations will not be affected--you will retain
your existing status workflow. However, we strongly recommend that you
update your existing workflow to the new one, using a special tool
we've included, <kbd>contrib/convert-workflow.pl</kbd>, which you
can run after you use <kbd>checksetup.pl</kbd> to upgrade. The
<kbd>whineatnews.pl</kbd> and <kbd>bugzilla-submit</kbd> scripts
will probably not work properly if you continue to use the old workflow
(though most other parts of [% terms.Bugzilla %] will still function
normally).</p>
<p>For more information about the workflow and our rationale for changing
it, see the
<a href="http://bugzillaupdate.wordpress.com/2010/07/06/bugzilla-4-0-has-a-new-default-status-workflow/">blog
post about it</a> and the
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=486292">[% terms.bug %]
where the change was made</a>.</p>
<h3 id="v40_feat_lists">"Last Search" Now Remembers Multiple Searches</h3>
<p>At the top of every [% terms.bug %] in [% terms.Bugzilla %], there are
links that look like: "First", "Last", "Prev", "Next", and
"Show last search results". In earlier versions of [% terms.Bugzilla %],
if you did two separate searches in separate windows, these links would
only work for the <em>last</em> search you did. Now, [% terms.Bugzilla %]
will "remember" which search result you came from and give you the right
"last search results" or "next [% terms.bug %]" from <em>that</em> list,
instead of always using your most recent search.</p>
<p>There are still some situations where [% terms.Bugzilla %] will have to
"guess" which search you are trying to navigate through, but it does its
best to get it right.</p>
<h3 id="v40_feat_jsonp">Cross-Domain WebServices with JSONP</h3>
<p>[% terms.Bugzilla %] now supports making WebService calls from
another domain, inside of a web browser, thanks to support for
<a href="http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/">JSONP</a>.
This will allow for web "mash-ups" to use [% terms.Bugzilla %] data.
When using JSONP, you may only call functions that <em>get</em> data,
you may not call functions that <em>change</em> data.</p>
<p>For more details, see the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#JSONP">JSONP
section</a> of the JSON-RPC WebService documentation.</p>
<h3 id="v40_feat_ws">Major WebService Enhancements</h3>
<p>The WebService has been expanded considerably. The WebService should now be
able to do everything with [% terms.bugs %] that you can do via the
web interface, including updating [% terms.bugs %], adding attachments,
and getting attachment data. For specifics, see the
<a href="#v40_feat_ws_changes">WebService Changes</a> section of these
release notes.</p>
<h3 id="v40_feat_mandatory">Mandatory Custom Fields</h3>
<p>You can now specify that certain custom fields are "mandatory",
meaning that they must have a value when [% terms.abug %] is filed,
and they can never be empty after that.</p>
<h3 id="v40_feat_vot_ext">Voting Is Now An Extension</h3>
<p>All of the code for voting in [% terms.Bugzilla %] has been moved
into an extension, called "Voting", in the <kbd>extensions/Voting/</kbd>
directory. To enable it, you must remove the <kbd>disabled</kbd> file
from that directory, and run <kbd>checksetup.pl</kbd>.</p>
<p>In a future version of [% terms.Bugzilla %], the Voting extension will
be moved outside of the [% terms.Bugzilla %] core code, so we are looking
for somebody who has an interest in the Voting system and would like to
maintain it as a separate extension. There are many enhancement requests
that have been made against the Voting system, and the best way for those
to get addressed is for somebody to step up and offer to maintain the
system outside of [% terms.Bugzilla %]'s core code.</p>
<h3 id="v40_feat_js_css_update">Users Get New CSS and Javascript
Automatically</h3>
<p>In past versions of [% terms.Bugzilla %], if you changed
[%+ terms.Bugzilla %]'s CSS or Javascript files, then every user of
[%+ terms.Bugzilla %] would have to clear their cache in order to get
the updated files. Now, if you are using Apache as your webserver and
you have the <a href="#v40_req_apache">optional Apache modules</a>
installed and enabled, users will automatically get every new version of
[%+ terms.Bugzilla %]'s Javascript and CSS without having to clear
their caches.</p>
<p>This feature also gives a slight performance speedup to
[%+ terms.Bugzilla %] in some cases, and so we recommend that all
administrators install and enable the optional Apache modules if possible.</p>
<h3 id="v40_feat_hooks">Many New Hooks</h3>
<p>Many new code hooks have been added for use by Extensions,
in [% terms.Bugzilla %] 4.0. Now Extensions can access and modify
nearly every part of [% terms.Bugzilla %].</p>
<h3 id="v40_feat_apache_config">New Apache Configuration</h3>
<p>If you run [% terms.Bugzilla %] under Apache (as most people do),
you most likely require a <strong>new Apache configuration</strong>
for this version of [% terms.Bugzilla %]. See the
<a href="#v40_upgrading">Notes On Upgrading From a Previous Version</a>
section for details.</p>
<h3 id="v40_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li>Now, everywhere in [% terms.Bugzilla %] where you can enter a date,
there is a Calendar widget where you can select the date on a
calendar.</li>
<li>The big icons on the front page have been replaced with much nicer
icons, thanks to Jon Pink of <a href="http://www.jpink.co.uk/">J. Pink Design</a>!</li>
<li><strong>[% terms.Bugs %]:</strong> When filing [% terms.bugs %],
you will now be warned if you forgot to fill in any mandatory fields,
<em>before</em> the page is submitted.</li>
<li><strong>[% terms.Bugs %]:</strong> When filing [% terms.abug %],
you can hover your mouse over any of the field labels on the page
to get a brief description of what that field is and what its purpose
is.</li>
<li><strong>[% terms.Bugs %]:</strong> When adding Hours Worked to [% terms.abug %],
you are no longer required to comment.</li>
<li><strong>[% terms.Bugs %]:</strong> There is now a user preference
for whether the comment box appears above or below the existing
comments.</li>
<li><strong>[% terms.Bugs %]:</strong> [% terms.Bugzilla %] will now
send an email for every comment that you mark or un-mark as being
private. (Previous versions of [% terms.Bugzilla %] did not send emails
to users about this change.) The state of comments being made private
is also now stored in [% terms.abug %]'s history.</li>
<li><strong>[% terms.Bugs %]:</strong> The box to "Add [% terms.Bug %] URLs"
in the See Also field is now hidden behind an "(add)" link that you
have to click to see the box.</li>
<li><strong>Searches:</strong> You can now properly search for field values
that have commas in their name, when using the Advanced Search form.</li>
<li><strong>Searches:</strong> The "URL" field can now be shown as a column
in search results.</li>
<li><strong>Searches:</strong> When viewing a search result, you can now
click on the Summary of the [% terms.bug %] in order to go to the
[%+ terms.bug %]-view page, in addition to being able to click on the
[%+ terms.bug %] ID.</li>
<li><strong>Searches:</strong> When doing a search using the "quicksearch"
box in the header or footer, the box will still contain what you searched
for when viewing the search results page.</li>
<li><strong>Searches:</strong> Multi-select custom fields can now be
shown as columns in the search results.</li>
<li><strong>Searches:</strong> When using the Boolean Charts (now called
"Custom Search"), if you specify both a criterion for an attachment
and a criteron for a flag, then only [% terms.bugs %] that have
attachments with that flag will be found.</li>
<li><strong>Searches:</strong> If you hover your mouse over the field labels
on the Advanced Search page, you will get a description of what that
field is.</li>
<li><strong>Searches:</strong> When searching via a saved search, if you
accidentally click on "Forget Search", there is a link to undo it.</li>
<li><strong>Searches:</strong> When using the Boolean Charts (now called
"Custom Search"), you can search for values "greater than or equal to"
or "less than or equal to" some value.</li>
<li><strong>Flags:</strong> If you hover your mouse over the name of
a flag setter when viewing [% terms.abug %], you can see that
flag setter's full name and complete username.</li>
<li><strong>Flags:</strong> When setting a flag on [% terms.abug %],
the box for entering a requestee does not appear until you set the flag
to "?", now.</li>
<li><strong>Flags:</strong> On the "My Requests" page, [% terms.bugs %]
that are restricted to certain groups now properly have the "padlock"
icon shown next to them to indicate that they may contain confidential
information.</li>
<li>When using the Reports interface, you can now choose many more fields
as the X, Y, or Z axis of a report, including custom fields.</li>
<li>[% terms.Bugzilla %] now prevents
Internet Explorer 8 and later from attempting to render
<kbd>text/plain</kbd> attachments as HTML.</li>
<li>If you receive a Whine mail that is empty, there will now be a brief
message explaining that your search found no results.</li>
<li>The <a href="page.cgi?id=fields.html">Field Help Page</a> now
contains a description of every single field that can be on
[%+ terms.abug %] in [% terms.Bugzilla %].</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li>The system for moving [% terms.bugs %] between installations has been
moved into an extension called <kbd>OldBugMove</kbd>. This system was used
by very few [% terms.Bugzilla %] installations--if you aren't certain
whether or not you are using it, you're not using it. To enable the system,
you have to remove the file <kbd>extensions/OldBugMove/disabled</kbd>
and then run <kbd>checksetup.pl</kbd>. In a future version of [% terms.Bugzilla %],
this extension may be moved outside of the core [% terms.Bugzilla %] code,
so if you are interested in maintaining it, please let us know.</li>
<li><strong>Custom Fields: </strong> "[% terms.Bug %] ID" custom fields can
now represent relationships between [% terms.bugs %], similarly to how the
[%+ field_descs.blocked FILTER html %] and
[%+ field_descs.dependson FILTER html %] fields work now.</li>
<li><strong>Custom Fields:</strong> You can now restrict the visibility
of custom fields and their values to a specific Component or
Classification.</li>
<li>The "keyword cache" has been removed. When you edit keywords, you no
longer will have to "rebuild the keyword cache" after you are done.</li>
<li>Running <kbd>./collectstats.pl --regenerate</kbd> will now take
minutes or hours, instead of days.</li>
<li>When using <kbd>email_in.pl</kbd>, there are two new switches,
<kbd>--default</kbd> and <kbd>--override</kbd>, which allow you to
specify certain default values or override specified values for
<kbd>@field</kbd> values sent in emails. (This also allows you to specify
defaults for everything so that people do not have to specify any field
values when filing [% terms.abug %] via email.)</li>
<li><strong>Installation:</strong> If you are using a localized version of
[%+ terms.Bugzilla %] and your terminal does not understand Unicode,
<kbd>checksetup.pl</kbd> will now attempt to output its messages in your
terminal's character set.</li>
<li><strong>Installation:</strong> [% terms.Bugzilla %] no longer needs empty
"placeholder" CSS in the <kbd>skins/custom</kbd> directory and other
directories. When you update, <kbd>checksetup.pl</kbd> will remove these.
This also significantly reduces the number of HTTP requests required to
load a page for the first time in [% terms.Bugzilla %].</li>
<li><strong>Installation:</strong> For Windows users, [% terms.Bugzilla %]
now supports Strawberry Perl fully.</li>
<li><strong>Installation:</strong> Now, whenever <kbd>checksetup.pl</kbd>
throws an error, it will be printed in the color red, to make it
obvious that something is wrong.</li>
<li><strong>Installation:</strong> Some actions of <kbd>checksetup.pl</kbd> were
silent, in the past. Now, <kbd>checksetup.pl</kbd> will print a message for
almost anything it does.</li>
<li><strong>Installation:</strong> The process of adding foreign keys
to a table is now much faster. This will particularly improve the speed
of upgrading from [% terms.Bugzilla %] 3.4 or earlier.</li>
<li>If you are using <kbd>jobqueue.pl</kbd> and email gets heavily delayed
for some reason, those emails will now have a Date header reflecting the
time they were <em>supposed</em> to be sent, instead of when they actually
<em>were</em> sent.</li>
<li><kbd>./jobqueue.pl install</kbd> now works on SuSE Linux.</li>
<li>[% terms.Bugzilla %] now runs much better in Apache's suexec mode
than it used to. As part of this, <kbd>checksetup.pl</kbd> sets
much stricter permissions on all the files in [% terms.Bugzilla %]
than it used to. In particular, any files that [% terms.Bugzilla %]
does not know about will not be readable by the webserver.</li>
<li>The <kbd>sendmailnow</kbd> parameter has been removed, as it was
not necessary for any modern version of Sendmail or other Mail Transfer
Agent.</li>
<li>When editing a user via the Users administration panel, you can now
see if they are a Default CC on any component.</li>
<li>For new installations of [% terms.Bugzilla %], all users will be
able to see and use the Whining system by default.</li>
<li>When you are using SSL with [% terms.Bugzilla %], you can now
turn on the <kbd>strict_transport_security</kbd> parameter to
send the
<a href="https://developer.mozilla.org/en/Security/HTTP_Strict_Transport_Security">Strict-Transport-Security</a>
header with every HTTPS connection, for additional security.</li>
<li>New code hooks (see their documentation in
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>):
bug_check_can_change_field, search_operator_field_override,
bugmail_relationships, object_columns, object_update_columns,
and object_validators. The colchange_columns hook has been removed,
as it is no longer necessary (buglist_columns will be used for data
about which columns can be on the [% terms.bug %] list).</li>
<li>When [% terms.Bugzilla %] throws certain types of errors, it will
now include a "traceback" of where exactly the error occurred in the
code, to help administrators and developers debug problems.</li>
<li>There is now a test, <kbd>xt/search.t</kbd>, that assures that all
of the functionality of <kbd>Bugzilla::Search</kbd> is working properly.
If you customize the search functionality of [% terms.Bugzilla %],
you may wish to run this test to assure that your changes are correct.
You can see more information about running this test by doing
<kbd>perldoc xt/search.t</kbd> at the command line.</li>
<li>[% terms.Bugzilla %] now sends the
<a href="https://developer.mozilla.org/en/the_x-frame-options_response_header"><code>X-Frame-Options: SAMEORIGIN</code></a> header
with every page request in order to prevent "clickjacking" attacks. Note
that this prevents other domains from displaying [% terms.Bugzilla %]
in an HTML frame.</li>
</ul>
<h4 id="v40_feat_ws_changes">WebService Changes</h4>
<ul>
<li>You can now call some JSON-RPC methods using HTTP GET, in addition to
using HTTP POST. See the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#Connecting_via_GET">JSON-RPC
documentation</a> for details.</li>
<li>You can now update existing [% terms.bugs %] using the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#update">B[% %]ug.update</a>
function.</li>
<li>You can now add attachments to [% terms.bugs %] using the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#add_attachment">B[% %]ug.add_attachment</a>
function.</li>
<li>The <kbd>B[% %]ug.get</kbd> function now returns all of [% terms.abug %]'s
information other than comments and attachments.</li>
<li><kbd>B[% %]ug.get</kbd> no longer returns the <kbd>internals</kbd> hash.</li>
<li>The <kbd>B[% %]ug.attachments</kbd> function now also returns attachment
data.</li>
<li>The following functions now support the <kbd>include_fields</kbd>
and <kbd>exclude_fields</kbd> arguments: <kbd>B[% %]ug.get</kbd>,
<kbd>B[% %]ug.search</kbd>, and <kbd>B[% %]ug.attachments</kbd>. Also,
server-side performance of the WebService is actually increased when
using these arguments, now, as [% terms.Bugzilla %] will no longer
get data from the database for fields you haven't asked for.</li>
<li>You can now mark the initial description of [% terms.abug %] as
private when filing [% terms.abug %] via the <kbd>B[% %]ug.create</kbd>
function.</li>
<li>You can now specify groups to put [% terms.abug %] in, in the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#create">B[% %]ug.create</a>
function. (This also means that you can specify groups when filing
[%+ terms.abug %] via email_in.pl.)</li>
<li>The <kbd>User.get</kbd> function now accepts <kbd>groups</kbd>
and <kbd>group_ids</kbd> arguments, to limit the returned values to
only users in the specified groups.</li>
<li>There is a new, undocumented B[% %]ug.possible_duplicates
function that helps implement the automatic duplicate detection
system. Because this function is not documented, its API may change
between releases of [% terms.Bugzilla %].</li>
<li>You can no longer search using the <kbd>votes</kbd> argument in
<kbd>B[% %]ug.search</kbd>.</li>
<li><kbd>B[% %]ug.attachments</kbd> now returns the attachment's description
using the name "summary" instead of the name "description", to be
consistent with the fact that [% terms.bug %] summaries are called
"summary". The value is still <em>also</em> returned as "description",
for backwards compatibility, but this backwards compatibility will go
away in [% terms.Bugzilla %] 5.0.</li>
<li>In the return values of various <kbd>B[% %]ug</kbd> functions, the author
of comments, [% terms.bugs %], and attachments is now called "creator",
instead of sometimes being called "reporter", "author", or "attacher".
The old names are retained for backwards-compatibility, and will stay
around until [% terms.Bugzilla %] 5.0.</li>
</ul>
<h2 id="v40_issues">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=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>
</ul>
<h2 id="v40_upgrading">Notes On Upgrading From a Previous Version</h2>
<h3>IMPORTANT: Apache Configuration Change</h3>
<h4>mod_cgi</h4>
<p>If you run [% terms.Bugzilla %] under mod_cgi (this is the most common
configuration, involving a <Directory> block in your Apache config
file), you will need to update the configuration of Apache for
[%+ terms.Bugzilla %]. In particular, this line in the [% terms.Bugzilla %]
<kbd><Directory></kbd> block:</p>
<blockquote><code>AllowOverride Limit</code></blockquote>
<p>needs to become:</p>
<blockquote><code>AllowOverride Limit FileInfo Indexes</code></blockquote>
<p>For full details on how to configure Apache for [% terms.Bugzilla %],
see the
<a href="[% docs_urlbase FILTER html %]configuration.html#http-apache">Configuration</a>
section of the [% terms.Bugzilla %] Guide.</p>
<h4>mod_perl</h4>
<p>If your [% terms.Bugzilla %] runs under mod_perl, the required Apache
configuration is now simpler. The line that used to look like:</p>
<blockquote><code>PerlSwitches -w -T -I/var/www/html/bugzilla
-I/var/www/html/bugzilla/lib</code></blockquote>
<p>Now should be only:</p>
<blockquote><code>PerlSwitches -w -T</code></blockquote>
<p>The <code>PerlConfigRequire</code> line should stay the same, however.</p>
<h3>New .htaccess file</h3>
<p>In previous versions of [% terms.Bugzilla %], there was a file
in [% terms.Bugzilla %]'s root directory called ".htaccess" that was
generated by <kbd>checksetup.pl</kbd>. This file is now shipped with
[%+ terms.Bugzilla %] instead of being generated during installation.</p>
<p>If you update via CVS or bzr, you will get a message that your existing
.htaccess file conflicts with the new one. You must
<strong>remove your existing .htaccess file</strong> and use the new one
instead. Continuing to use your old .htaccess file will cause certain new
features of [% terms.Bugzilla %] to not work properly, and may also lead
to security issues for your system in the future.</p>
<h2 id="v40_code_changes">Code Changes Which May Affect Customizations and
Extensions</h2>
<ul>
<li>In Extensions, if you want to serve files to the user via the web,
they must now be in a <kbd>web/</kbd> subdirectory of your Extension.
(For example, <kbd>extensions/Foo/web/</kbd>). <kbd>checksetup.pl</kbd>
sets permissions on extensions much more strictly now, and files in
other locations (such as your base <kbd>extensions/Foo/</kbd> directory)
will no longer be available to [% terms.Bugzilla %] users via the web
under certain configurations.</li>
<li>Previous versions of [% terms.Bugzilla %] used to allow putting a
single file into the "skins" directory and having that be an entire
skin. That is no longer allowed, and on upgrade, <kbd>checksetup.pl</kbd>
will convert any such skins into a directory with a single
<kbd>global.css</kbd> file in them.</li>
<li>When updating [% terms.bugs %], you should now use
<code>$bug->set_all</code> instead of using the individual
<kbd>set_</kbd> methods. In particular, <kbd>set_all</kbd> is now the
<em>only</em> way to set the product of [% terms.abug %]. See
<kbd>process_bug.cgi</kbd> for an example of how <kbd>set_all</kbd>
should be used.</li>
<li>You should not insert <script> tags and <link> CSS tags
into HTML anymore, in Extensions or in your customizations. Instead,
you should push new values into the <kbd>style_urls</kbd> or
<kbd>javascript_urls</kbd> parameters. If you have to insert manual
tags for some reason, be sure to call "FILTER mtime" on the URL. (Search
for other uses of "FILTER mtime" in the templates to see how it is
used.)</li>
<li>When calling <kbd>Bugzilla::BugMail::Send</kbd>, the "changer"
argument must now be a <kbd>Bugzilla::User</kbd> object, not just
a login name. The "owner" and "qacontact" arguments are still
just login names.</li>
<li>When creating a new subclass of Bugzilla::Object, you should no
longer use <kbd>UPDATE_VALIDATORS</kbd>. Also, in most cases you will
no longer need to override <kbd>run_create_validators</kbd>. Instead,
there is a new constant called
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html#VALIDATOR_DEPENDENCIES">VALIDATOR_DEPENDENCIES</a>,
that specifies that certain fields have to be validated before other fields.
Then, all validators receive each already-validated value in a hash
as their fourth argument, so each validator can know the other values
that were passed in, while an object is being created. For an example of
how to use <kbd>VALIDATOR_DEPENDENCIES</kbd>, see
<kbd>Bugzilla/Field.pm</kbd>.</li>
<li>In previous versions of [% terms.Bugzilla %], you had to call
<code>Bugzilla->template_inner("")</code> after any time
that you called <kbd>template_inner</kbd> for a specific language.
It is no longer necessary to do this second <kbd>template_inner</kbd>
call.</li>
<li><kbd>post_bug.cgi</kbd> and <kbd>Bugzilla::Bug->create</kbd> now take
the <em>names</em> of groups instead of group ids.</li>
<li>Bugzilla::Bugmail now uses Bugzilla::Bug objects internally instead of
a lot of direct SQL.</li>
<li>For sending changes about [% terms.bugs %], there is now a method
called <kbd>send_changes</kbd> that you can call on Bugzilla::Bug
objects. For an example of its use, see <kbd>process_bug.cgi</kbd>.</li>
<li>The <kbd>Bugzilla::Search</kbd> class has been refactored, and should
now be easier to customize.</li>
<li>The <kbd>Bugzilla::Util::lsearch</kbd> function is gone. Use
<kbd>firstidx</kbd> from <kbd>List::MoreUtils</kbd>, instead.</li>
<li>[% terms.Bugzilla %] now includes YUI 2.8.2.</li>
<li><kbd>long_list.cgi</kbd>, <kbd>showattachment.cgi</kbd> and
<kbd>xml.cgi</kbd> are deprecated scripts which are no longer actively
used since [% terms.Bugzilla %] 2.19. These scripts will be removed in
[%+ terms.Bugzilla %] 4.2.</li>
</ul>
<h1 id="v40_previous">[% terms.Bugzilla %] 3.6 Release Notes</h1>
<ul class="bz_toc">
<li><a href="#v36_introduction">Introduction</a></li>
<li><a href="#v36_point">Updates in this 3.6.x Release</a></li>
<li><a href="#v36_req">Minimum Requirements</a></li>
<li><a href="#v36_feat">New Features and Improvements</a></li>
<li><a href="#v36_issues">Outstanding Issues</a></li>
<li><a href="#v36_upgrading">Notes On Upgrading From a Previous Version</a></li>
<li><a href="#v36_code_changes">Code Changes Which May Affect
Customizations</a></li>
<li><a href="#v36_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v36_introduction">Introduction</h2>
<p>Welcome to [% terms.Bugzilla %] 3.6! The focus of the 3.6 release is
on improving usability and "polishing up" all our features (by adding
some pieces that were "missing" or always wanted), although we
also have a few great new features for you, as well!</p>
<p>If you're upgrading, make sure to read <a href="#v36_upgrading">Notes
On Upgrading From a Previous Version</a>. If you are upgrading from a release
before 3.4, make sure to read the release notes for all the
<a href="#v36_previous">previous versions</a> in between your version
and this one, <strong>particularly the Upgrading section of each
version's release notes</strong>.</p>
<p>We would like to thank <a href="http://www.canonical.com/">Canonical
Ltd.</a>, <a href="http://www.itasoftware.com/">ITA Software</a>,
the <a href="http://www.ibm.com/linux/ltc/">IBM Linux Technology Center</a>,
<a href="http://www.redhat.com/">Red Hat</a>, and
<a href="http://www.novell.com/">Novell</a> for funding the development
of various features and improvements in this release of
[%+ terms.Bugzilla %].</p>
<h2 id="v36_point">Updates in this 3.6.x Release</h2>
<h3>3.6.2</h3>
<p>This release fixes various security issues. See the
<a href="http://www.bugzilla.org/security/3.2.7/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in
this release:</p>
<ul>
<li>[% terms.Bugzilla %] installations running on older versions of IIS
will no longer experience the "Undef to trick_taint" errors that would
sometimes occur.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=521416">[% terms.Bug %] 521416</a>)
</li>
<li>Email notifications were missing the dates that comments were made.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=578003">[% terms.Bug %] 578003</a>)
</li>
<li>Putting a phrase in quotes in the Quicksearch box now works properly,
again.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=578494">[% terms.Bug %] 578494</a>
and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=553884">[% terms.Bug %] 553884</a>)
</li>
<li>Quicksearch was usually (incorrectly) being limited to 200 results.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=581622">[% terms.Bug %] 581622</a>)
</li>
<li>On Windows, <kbd>install-module.pl</kbd> can now properly install
DateTime and certain other Perl modules that didn't install properly
before.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=576105">[% terms.Bug %] 576105</a>)
</li>
<li>Searching "keywords" for "contains none of the words" or "does not
match regular expression" now works properly.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=562014">[% terms.Bug %] 562014</a>)
</li>
<li>Doing <kbd>collectstats.pl --regenerate</kbd> now works on installations
using PostgreSQL.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=577058">[% terms.Bug %] 577058</a>)
</li>
<li>The "Field Values" administrative control panel was sometimes denying
admins the ability to delete field values when there was no reason
to deny the deletion.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=577054">[% terms.Bug %] 577054</a>)
</li>
<li>Eliminate the "uninitialized value" warnings that would happen when
editing a product's components.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=576911">[% terms.Bug %] 576911</a>)
</li>
<li>The updating of bugs_fulltext that happens during
<kbd>checksetup.pl</kbd> for upgrades to 3.6 should now be MUCH faster.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=577754">[% terms.Bug %] 577754</a>)
</li>
<li><kbd>email_in.pl</kbd> was not allowing the setting of time-tracking
fields via inbound emails.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=583622">[% terms.Bug %] 583622</a>)
</li>
</ul>
<h3>3.6.1</h3>
<p>This release fixes two security issues. See the
<a href="http://www.bugzilla.org/security/3.2.6/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in
this release:</p>
<ul>
<li>Using the "Change Columns" page would sometimes result in a
plain-text page instead of HTML.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=376044">[% terms.Bug %] 376044</a>)
</li>
<li>Extensions that have only templates and no code are now working.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=562551">[% terms.Bug %] 562551</a>)
</li>
<li><kbd>install-module.pl</kbd> has been fixed so that it installs
modules properly on both new and old versions of Perl.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=560318">[% terms.Bug %] 560318</a>
and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=560330">[% terms.Bug %] 560330</a>)
</li>
<li>It is now possible to upgrade from 3.4 to 3.6 when using Oracle.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=561379">[% terms.Bug %] 561379</a>)
</li>
<li>Editing a field value's name (using the Field Values admin control
panel) wasn't working if the value was set as the default for that
field.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=561296">[% terms.Bug %] 561296</a>)
</li>
<li>If you had the <kbd>noresolveonopenblockers</kbd> parameter set,
[%+ terms.bugs %] couldn't be edited at all if they were marked FIXED
and had any open blockers. (The parameter is only supposed to prevent
<em>changing</em> [% terms.bugs %] to FIXED, not modifying already-FIXED
[%+ terms.bugs %].)
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=565314">[% terms.Bug %] 565314</a>)
</li>
<li>Some minor issues with Perl 5.12 were fixed (mostly warnings that Perl
5.12 was throwing). [% terms.Bugzilla %] now supports Perl 5.12.</li>
</ul>
<h2 id="v36_req">Minimum Requirements</h2>
<p>Any requirements that are new since 3.4.5 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v36_req_perl">Perl</a></li>
<li><a href="#v36_req_mysql">For MySQL Users</a></li>
<li><a href="#v36_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v36_req_oracle">For Oracle Users</a></li>
<li><a href="#v36_req_modules">Required Perl Modules</a></li>
<li><a href="#v36_req_optional_mod">Optional Perl Modules</a></li>
</ul>
<h3 id="v36_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
<h3 id="v36_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL
v4.1.2
</li>
<li><strong>perl module:</strong>
DBD::mysql v4.00</li>
</ul>
<h3 id="v36_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL
v8.00.0000
</li>
<li><strong>perl module:</strong>
DBD::Pg v1.45</li>
</ul>
<h3 id="v36_req_oracle">For Oracle Users</h3>
<ul>
<li>Oracle
v10.02.0
</li>
<li><strong>perl module:</strong>
DBD::Oracle v1.19</li>
</ul>
<h3 id="v36_req_modules">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 >3.21
</td>
</tr>
<tr>
<td >Digest::SHA</td>
<td >
(Any)
</td>
</tr>
<tr>
<td >Date::Format</td>
<td >2.21
</td>
</tr>
<tr>
<td >DateTime</td>
<td >0.28
</td>
</tr>
<tr>
<td >DateTime::TimeZone</td>
<td >0.71
</td>
</tr>
<tr>
<td >DBI</td>
<td >1.41
</td>
</tr>
<tr>
<td >Template</td>
<td >2.22
</td>
</tr>
<tr>
<td >Email::Send</td>
<td >2.00
</td>
</tr>
<tr>
<td >Email::MIME</td>
<td >1.861
</td>
</tr>
<tr>
<td >Email::MIME::Encodings</td>
<td >1.313
</td>
</tr>
<tr>
<td >Email::MIME::Modifier</td>
<td >1.442
</td>
</tr>
<tr>
<td >URI</td>
<td >
(Any)
</td>
</tr>
</table>
<h3 id="v36_req_optional_mod">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 >GD</td>
<td >1.20
</td>
<td>Graphical Reports, New Charts, Old Charts</td>
</tr>
<tr>
<td >Chart::Lines</td>
<td class="req_new">2.1
</td>
<td>New Charts, Old Charts</td>
</tr>
<tr>
<td >Template::Plugin::GD::Image</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::Graph</td>
<td >
(Any)
</td>
<td>Graphical Reports</td>
</tr>
<tr>
<td >XML::Twig</td>
<td >
(Any)
</td>
<td>Move [% terms.Bugs %] Between Installations,
Automatic Update Notifications</td>
</tr>
<tr>
<td >MIME::Parser</td>
<td >5.406
</td>
<td>Move [% terms.Bugs %] Between Installations</td>
</tr>
<tr>
<td >LWP::UserAgent</td>
<td >
(Any)
</td>
<td>Automatic Update Notifications</td>
</tr>
<tr>
<td >PatchReader</td>
<td >0.9.4
</td>
<td>Patch Viewer</td>
</tr>
<tr>
<td >Net::LDAP</td>
<td >
(Any)
</td>
<td>LDAP Authentication</td>
</tr>
<tr>
<td >Authen::SASL</td>
<td >
(Any)
</td>
<td>SMTP Authentication</td>
</tr>
<tr>
<td >Authen::Radius</td>
<td >
(Any)
</td>
<td>RADIUS Authentication</td>
</tr>
<tr>
<td >SOAP::Lite</td>
<td >0.710.06
</td>
<td>XML-RPC Interface</td>
</tr>
<tr>
<td class="req_new">JSON::RPC</td>
<td class="req_new">
(Any)
</td>
<td>JSON-RPC Interface</td>
</tr>
<tr>
<td class="req_new">Test::Taint</td>
<td class="req_new">
(Any)
</td>
<td>JSON-RPC Interface, XML-RPC Interface</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 >Email::MIME::Attachment::Stripper</td>
<td >
(Any)
</td>
<td>Inbound Email</td>
</tr>
<tr>
<td >Email::Reply</td>
<td >
(Any)
</td>
<td>Inbound Email</td>
</tr>
<tr>
<td >TheSchwartz</td>
<td >
(Any)
</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td >Daemon::Generic</td>
<td >
(Any)
</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td >mod_perl2</td>
<td >1.999022
</td>
<td>mod_perl</td>
</tr>
</table>
<h2 id="v36_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v36_feat_usability">General Usability Improvements</a></li>
<li><a href="#v36_feat_extensions">New Extensions System</a></li>
<li><a href="#v36_feat_qs">Improved Quicksearch</a></li>
<li><a href="#v36_feat_browse">Simple "Browse" Interface</a></li>
<li><a href="#v36_feat_suexec">SUExec Support</a></li>
<li><a href="#v36_feat_mpwindows">Experimental mod_perl Support on Windows</a></li>
<li><a href="#v36_email_attachments">Send Attachments by Email</a></li>
<li><a href="#v36_feat_jsonrpc">JSON-RPC Interface</a></li>
<li><a href="#v36_feat_migrate">Migration From Other [% terms.Bug %]-Trackers</a></li>
<li><a href="#v36_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v36_feat_usability">General Usability Improvements</h3>
<p>A <a href="https://wiki.mozilla.org/Bugzilla:CMU_HCI_Research_2008">scientific
usability study</a> was done on [% terms.Bugzilla %] by researchers
from Carnegie-Mellon University. As a result of this study,
<a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=490786&hide_resolved=0">several
usability issues</a> were prioritized to be fixed, based on specific data
from the study.</p>
<p>As a result, you will see many small improvements in [% terms.Bugzilla %]'s
usability, such as using Javascript to validate certain forms before
they are submitted, standardizing the words that we use in the user interface,
being clearer about what [% terms.Bugzilla %] needs from the user,
and other changes, all of which are also listed individually in this New
Features section.</p>
<p>Work continues on improving usability for the next release of
[%+ terms.Bugzilla %], but the results of the research have already
had an impact on this 3.6 release.</p>
<h3 id="v36_feat_extensions">New Extensions System</h3>
<p>[% terms.Bugzilla %] has a brand-new Extensions system. The system is
consistent, fast, and
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Extension.html">fully
documented</a>. It makes it possible to easily extend [% terms.Bugzilla %]'s
code and user interface to add new features or change existing features.
There's even
<a href="[% docs_urlbase FILTER html %]api/extensions/create.html">a
script</a> that will create the basic layout of an extension for you, to
help you get started. For more information about the new system, see the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Extension.html">Extensions
documentation</a>.</p>
<p>If you had written any extensions using [% terms.Bugzilla %]'s previous
extensions system, there is
<a href="[% docs_urlbase FILTER html %]api/contrib/extension-convert.html">a
script to help convert old extensions into the new format</a>.</p>
<h3 id="v36_feat_qs">Improved Quicksearch</h3>
<p>The "quicksearch" box that appears on the front page of
[%+ terms.Bugzilla %] and in the header/footer of every page
is now simplified and made more powerful. There is a
<kbd>[?]</kbd> link next to the box that will take you to
the simplified <a href="page.cgi?id=quicksearch.html">Quicksearch Help</a>,
which describes every single feature of the system in a simple layout,
including new features such as the ability to use partial field names
when searching.</p>
<p>Quicksearch should also be much faster than it was before, particularly
on large installations.</p>
<p>Note that in order to implement the new quicksearch, certain old
and rarely-used features had to be removed:
<ul>
<li><b>+</b> as a prefix to mean "search additional resolutions", and
<b>+</b> as a prefix to mean "search just the summary". You can
instead use <kbd>summary:</kbd> to explicitly search summaries.</li>
<li>Searching the Severity field if you type something that matches
the first few characters of a severity. You can explicitly search
the Severity field if you want to find [% terms.bugs %] by severity.</li>
<li>Searching the Priority field if you typed something that exactly
matched the name of a priority. You can explicitly search the
Priority field if you want to find [% terms.bugs %] by priority.</li>
<li>Searching the Platform and OS fields if you typed in one of a
certain hard-coded list of strings (like "pc", "windows", etc.).
You can explicitly search these fields, instead, if you want to
find [% terms.bugs %] with a specific Platform or OS set.</li>
</ul>
<h3 id="v36_feat_browse">Simple "Browse" Interface</h3>
<p>There is now a "Browse" link in the header of each [% terms.Bugzilla %]
page that presents a very basic interface that allows users to simply
browse through all open [% terms.bugs %] in particular components.</p>
<h3 id="v36_feat_suexec">SUExec Support</h3>
<p>[% terms.Bugzilla %] can now be run in Apache's "SUExec" mode,
which is what control panel software like cPanel and Plesk use
(so [% terms.Bugzilla %] should now be much easier to install
on shared hosting). SUExec support shows up as an option
in the <kbd>localconfig</kbd> file during installation.</p>
<h3 id="v36_feat_mpwindows">Experimental mod_perl Support on Windows</h3>
<p>There is now experimental support for running [% terms.Bugzilla %]
under mod_perl on Windows, for a significant performance enhancement
(in exchange for using more memory).</p>
<h3 id="v36_email_attachments">Send Attachments by Email</h3>
<p>The <a href="[% docs_urlbase FILTER html %]api/email_in.html">email_in</a>
script now supports attaching multiple attachments to [% terms.abug %]
by email, both when filing and when updating [% terms.abug %].</p>
<h3 id="v36_feat_jsonrpc">JSON-RPC Interface</h3>
<p>[% terms.Bugzilla %] now has support for the
<a href="http://json-rpc.org/">JSON-RPC</a> WebServices protocol via
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html">jsonrpc.cgi</a>.
The JSON-RPC interface is experimental in this release--if you want any
fundamental changes in how it works,
<a href="http://www.bugzilla.org/developers/reporting_bugs.html">let us
know</a>, for the next release of [% terms.Bugzilla %].</p>
<h3 id="v36_feat_migrate">Migration From Other [% terms.Bug %]-Trackers</h3>
<p>[% terms.Bugzilla %] 3.6 comes with a new script,
<a href="[% docs_urlbase FILTER html %]api/migrate.html">migrate.pl</a>,
which allows migration from other [% terms.bug %]-tracking systems.
Among the various features of the migration system are:</p>
<ul>
<li>It is non-destructive--you can migrate into an existing
[%+ terms.Bugzilla %] installation without destroying any data
in the installation.</li>
<li>It has a "dry-run" mode so you can test your migration
before actually running it.</li>
<li>It is relatively easy to write new migrators for new systems,
if you know Perl. The basic migration framework does most of the work
for you, you just have to provide it with the data from your
[%+ terms.bug %]-tracker. See the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Migrate.html">Bugzilla::Migrate</a>
documentation and see our current migrator,
<kbd>Bugzilla/Migrate/GNATS.pm</kbd> for information on how to make your
own migrator.</li>
</ul>
<p>The first migrator that has been implemented is for the GNATS
[%+ terms.bug %]-tracking system. We'd love to see migrators for
other systems! If you want to contribute a new migrator, see our
<a href="http://wiki.mozilla.org/Bugzilla:Developers">development
process</a> for details on how to get code into [% terms.Bugzilla %].</p>
<p>Thanks to <a href="http://lambdares.com/">Lambda Research</a> for
funding the initial development of this feature.</p>
<h3 id="v36_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li><b>[% terms.Bug %] Filing:</b> When filing [% terms.abug %],
[%+ terms.Bugzilla %] now visually indicates which fields are
mandatory.</li>
<li><b>[% terms.Bug %] Filing:</b> "Bookmarkable templates" now
support the "alias" and "estimated hours" fields.</li>
<li><b>[% terms.Bug %] Editing:</b> In previous versions of
[%+ terms.Bugzilla %], if you added a private comment to [% terms.abug %],
then <em>none</em> of the changes that you made at that time were
sent to users who couldn't see the private comment. Now, for users
who can't see private comments, public changes are sent, but the private
comment is excluded from their email notification.</li>
<li><b>[% terms.Bug %] Editing:</b> The controls for groups now
appear to the right of the attachment and time-tracking tables,
when editing [% terms.abug %].</li>
<li><b>[% terms.Bug %] Editing:</b> The "Collapse All Comments"
and "Expand All Comments" links now appear to the right of the
comment list instead of above it.</li>
<li><b>[% terms.Bug %] Editing:</b> The See Also field now supports
URLs for Google Code Issues and the Debian B[% %]ug-Tracking System.</li>
<li><b>[% terms.Bug %] Editing:</b> There have been significant performance
improvements in <kbd>show_bug.cgi</kbd> (the script that displays the
[% terms.bug %]-editing form), particularly for [% terms.bugs %] that
have lots of comments or attachments.</li>
<li><b>Attachments:</b> The "Details" page of an attachment
now displays itself as uneditable if you can't edit the fields
there.</li>
<li><b>Attachments:</b> We now make sure that there is
a Description specified for an attachment, using JavaScript, before
the form is submitted.</li>
<li><b>Attachments:</b> There is now a link back to the [% terms.bug %]
at the bottom of the "Details" page for an attachment.</li>
<li><b>Attachments:</b> When you click on an "attachment 12345" link
in a comment, if the attachment is a patch, you will now see the
formatted "Diff" view instead of the raw patch.</li>
<li><b>Attachments</b>: For text attachments, we now let the browser
auto-detect the character encoding, instead of forcing the browser to
always assume the attachment is in UTF-8.</li>
<li><b>Search:</b> You can now display [% terms.bug %] flags as a column
in search results.</li>
<li><b>Search:</b> When viewing search results, you can see which columns are
being sorted on, and which direction the sort is on, as indicated
by arrows next to the column headers.</li>
<li><b>Search:</b> You can now search the Deadline field using relative
dates (like "1d", "2w", etc.).</li>
<li><b>Search:</b> The iCalendar format of search results now includes
a PRIORITY field.</li>
<li><b>Search:</b> It is no longer an error to enter an invalid search
order in a search URL--[% terms.Bugzilla %] will simply warn you that
some of your order options are invalid.</li>
<li><b>Search:</b> When there are no search results, some helpful
links are displayed, offering actions you might want to take.</li>
<li><b>Search:</b> For those who like to make their own
<kbd>buglist.cgi</kbd> URLs (and for people working on customizations),
<kbd>buglist.cgi</kbd> now accepts nearly every valid field in
[%+ terms.Bugzilla %] as a direct URL parameter, like
<kbd>&field=value</kbd>.</li>
<li><b>Requests:</b> When viewing the "My Requests" page, you can now
see the lists as a normal search result by clicking a link at the
bottom of each table.</li>
<li><b>Requests:</b> When viewing the "My Requests" page, if you are
using Classifications, the Product drop-down will be grouped by
Classification.</li>
<li><b>Inbound Email:</b> When filing [% terms.abug %] by email, if the
product that you are filing the [% terms.bug %] into has some groups
set as Default for you, the [% terms.bug %] will now be placed into those
groups automatically.</li>
<li><b>Inbound Email:</b> The field names that can be used when creating
[%+ terms.bugs %] by email now exactly matches the set of valid parameters
to the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#create">B[% %]ug.create
WebService function</a>. You can still use most of the old field names
that 3.4 and earlier used for inbound emails, though, for
backwards-compatibility.</li>
<li>If there are multiple languages available for your
[%+ terms.Bugzilla %], you can now select what language you want
[%+ terms.Bugzilla %] displayed in using links at the top of every
page.</li>
<li>When creating a new account, you will be automatically logged in
after setting your password.</li>
<li>There is no longer a maximum password length for accounts.</li>
<li>In the Dusk skin, it's now easier to see links.</li>
<li>In the Whining system, you can now choose to receive emails even
if there are no [% terms.bugs %] that match your searches.</li>
<li>The arrows in dependency graphs now point the other way, so that
[%+ terms.bugs %] point at their dependencies.</li>
<li><b>New Charts:</b> You can now convert an existing Saved Search
into a data series for New Charts.</li>
<li><b>New Charts:</b> There is now an interface that allows you to
delete data series.</li>
<li><b>New Charts:</b> When deleting a product, you now have the option
to delete the data series that are associated with that product.</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li>Depending on how your workflow is set up, it is now possible to
have both UNCONFIRMED and REOPENED show up as status choices for
a closed [% terms.bug %]. If you only want one or the other to
show up, you should edit your status workflow appropriately
(possibly by removing or disabling the REOPENED status).</li>
<li>You can now "disable" field values so that they don't show
up as choices on [% terms.abug %] unless they are already set as
the value for that [% terms.bug %]. This doesn't work for the
per-product field values (component, target_milestone, and version)
yet, though.</li>
<li>Users are now locked out of their accounts for 30 minutes after
trying five bad passwords in a row during login. Every time a
user is locked out like this, the user in the "maintainer" parameter
will get an email.</li>
<li>The minimum length allowed for a password is now 6 characters.</li>
<li>The <kbd>UNCONFIRMED</kbd> status being enabled in a product
is now unrelated to the voting parameters. Instead, there is a checkbox
to enable the <kbd>UNCONFIRMED</kbd> status in a product.</li>
<li>Information about duplicates is now stored in the database instead
of being stored in the <kbd>data/</kbd> directory. On large installations
this could save several hundred megabytes of disk space.</li>
<li><b>Installation:</b> When installing [% terms.Bugzilla %], the
"maintainer" parameter will be automatically set to the administrator
that was created by <kbd>checksetup.pl</kbd>.</li>
<li><b>Installation:</b> <kbd>checksetup.pl</kbd> now prints out
certain errors in a special color so that you know that something
needs to be done.</li>
<li><b>Installation:</b> <kbd>checksetup.pl</kbd> is now <em>much</em>
faster at upgrading installations, particularly older installations.
Also, it's been made faster to run for the case where it's not
doing an upgrade.</li>
<li><b>Installation:</b> If you install [% terms.Bugzilla %] using the
tarball, the <kbd>CGI.pm</kbd> module from CPAN is now included in
the <kbd>lib/</kbd> dir. If you would rather use the CGI.pm from your
global Perl installation, you can delete <kbd>CGI.pm</kbd> and the
<kbd>CGI</kbd> directory from the <kbd>lib/</kbd> directory.</li>
<li>When editing a group, you can now specify that members of a group
are allowed to grant others membership in that group itself.</li>
<li>The ability to compress BMP attachments to PNGs is now an Extension.
To enable the feature, remove the file
<kbd>extensions/BmpConvert/disabled</kbd> and then run <kbd>checksetup.pl</kbd>.</li>
<li>The default list of values for the Priority field are now clear English
words instead of P1, P2, etc.</li>
<li>There is now a system in place so that all field values can be
localized. See the <kbd>value_descs</kbd> variable in
<kbd>template/en/default/global/field-descs.none.tmpl</kbd>.</li>
<li><kbd>config.cgi</kbd> now returns an ETag header and understands
the If-None-Match header in HTTP requests.</li>
<li>The XML format of <kbd>show_bug.cgi</kbd> now returns more information:
the numeric id of each comment, whether an attachment is a URL,
the modification time of an attachment, the numeric id of a flag,
and the numeric id of a flag's type.</li>
<li><b>Parameters:</b> Parameters that aren't actually required are no longer
in the "Required" section of the Parameters page. Instead, some are in the
new "General" section, and some are in the new "Advanced" section.</li>
<li><b>Parameters:</b> The old <kbd>ssl</kbd> parameter has been
changed to <kbd>ssl_redirect</kbd>, and can only be turned "on" or "off".
If "on", then all users will be forcibly redirected to SSL whenever
they access [% terms.Bugzilla %]. When the parameter is off,
no SSL-related redirects will occur (even if the user directly
accesses [% terms.Bugzilla %] via SSL, they will <em>not</em> be
redirected to a non-SSL page).</li>
<li><b>Parameters:</b> In the Advanced parameters, there is a new parameter,
<kbd>inbound_proxies</kbd>. If your [% terms.Bugzilla %] is behind a
proxy, you should set this parameter to the IP address of that proxy.
Then, [% terms.Bugzilla %] will "believe" any "X-Forwarded-For"
header sent from that proxy, and correctly use the X-Forwarded-For
as the end user's IP, instead of believing that all traffic is coming
from the proxy.</li>
<li><b>Removed Parameter:</b> The <kbd>loginnetmask</kbd> parameter has
been removed. Since [% terms.Bugzilla %] sends secure cookies, it's no
longer necessary to always restrict logins to a specific IP or block
of addresses.</li>
<li><b>Removed Parameter:</b> The <kbd>quicksearch_comment_cutoff</kbd>
parameter is gone. Quicksearch now always searches comments; however, it
uses a much faster algorithm to do it.</li>
<li><b>Removed Parameter:</b> The <kbd>usermatchmode</kbd> parameter has
been removed. User-matching is now <em>always</em> done.</li>
<li><b>Removed Parameter:</b> The <kbd>useentrygroupdefault</kbd> parameter
has been removed. [% terms.Bugzilla %] now always behaves as though
that parameter were off.</li>
<li>The <kbd>t/001compile.t</kbd> test should now always pass, no matter
what configuration of optional modules you do or don't have installed.</li>
<li>New script: <kbd>contrib/console.pl</kbd>, which allows you to have
a "command line" into [% terms.Bugzilla %] by inputting Perl code
or using a few custom commands.</li>
</ul>
<h4>WebService Changes</h4>
<ul>
<li>The WebService now returns all dates and times in the UTC timezone.
<kbd>B[% %]ugzilla.time</kbd> now acts as though the [% terms.Bugzilla %]
server were in the UTC timezone, always. If you want to write clients
that are compatible across all [% terms.Bugzilla %] versions,
check the timezone from <kbd>B[% %]ugzilla.timezone</kbd> or
<kbd>B[% %]ugzilla.time</kbd>, and always input times in that timezone
and expect times to be returned in that format.</li>
<li>You can now log in by passing <kbd>Bugzilla_login</kbd> and
<kbd>Bugzilla_password</kbd> as arguments to any WebService function.
See the
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService.html#LOGGING_IN">Bugzilla::WebService</a>
documentation for details.</li>
<li>New Method:
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#attachments">B[% %]ug.attachments</a>
which allows getting information about attachments.</li>
<li>New Method:
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#fields">B[% %]ug.fields</a>,
which gets information about all the fields that [% terms.abug %] can have
in [% terms.Bugzilla %], include custom fields and legal values for
all fields. The <kbd>B[% %]ug.legal_values</kbd> method is now deprecated.</li>
<li>In the <kbd>B[% %]ug.add_comment</kbd> method, the "private" parameter
has been renamed to "is_private" (for consistency with other methods).
You can still use "private", though, for backwards-compatibility.</li>
<li>The WebService now has Perl's "taint mode" turned on. This means that
it validates all data passed in before sending it to the database.
Also, all parameter names are validated, and if you pass in a parameter
whose name contains anything other than letters, numbers, or underscores,
that parameter will be ignored. Mostly this just affects
customizers--[% terms.Bugzilla %]'s WebService is not functionally
affected by these changes.</li>
<li>In previous versions of [% terms.Bugzilla %], error messages were
sent word-wrapped to the client, from the WebService. Error messages
are now sent as one unbroken line.</li>
</ul>
<h2 id="v36_issues">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>
</ul>
<h2 id="v36_upgrading">Notes On Upgrading From a Previous Version</h2>
<p>When upgrading to 3.6, <kbd>checksetup.pl</kbd> will create foreign keys
for many columns in the database. Before doing this, it will check the
database for consistency. If there are an unresolvable consistency
problems, it will tell you what table and column in the database contain
the bad values, and which values are bad. If you don't know what else to do,
you can always delete the database records which contain the bad values by
logging in to your database and running the following command:</p>
<p><code>DELETE FROM <var>table</var> WHERE <var>column</var> IN
(<var>1, 2, 3, 4</var>)</code></p>
<p>Just replace "table" and "column" with the name of the table
and column that <kbd>checksetup.pl</kbd> mentions, and "1, 2, 3, 4"
with the invalid values that <kbd>checksetup.pl</kbd> prints out.</p>
<p>Remember that you should always back up your database before doing
an upgrade.</p>
<h2 id="v36_code_changes">Code Changes Which May Affect Customizations</h2>
<ul>
<li>There is no longer a SendBugMail method in the templates, and bugmail
is no longer sent by processing a template. Instead, it is sent
by using <kbd>Bugzilla::BugMail::Send</kbd>.</li>
<li>Comments are now represented as a
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Comment.html">Bugzilla::Comment</a>
object instead of just being hashes.</li>
<li>In previous versions of [% terms.Bugzilla %], the template for displaying
[%+ terms.abug %] required a lot of extra variables that are now global
template variables instead.</li>
<li>You can now check if optional modules are installed by using
<kbd>Bugzilla->feature</kbd> in Perl code or
<kbd>feature_enabled</kbd> in template code.</li>
<li>All of the various template header information required to display
the [% terms.bug %] form is now in one template,
<kbd>template/en/default/bug/show-header.html.tmpl</kbd>.</li>
<li>You should now use <kbd>display_value</kbd> instead of
<kbd>get_status</kbd> or <kbd>get_resolution</kbd> in templates.
<kbd>display_value</kbd> should be used anywhere that a
<select>-type field has its values displayed.</li>
</ul>
<h1 id="v36_previous">[% terms.Bugzilla %] 3.4 Release Notes</h1>
<ul class="bz_toc">
<li><a href="#v34_introduction">Introduction</a></li>
<li><a href="#v34_point">Updates in this 3.4.x Release</a></li>
<li><a href="#v34_req">Minimum Requirements</a></li>
<li><a href="#v34_feat">New Features and Improvements</a></li>
<li><a href="#v34_issues">Outstanding Issues</a></li>
<li><a href="#v34_upgrading">Notes On Upgrading From a Previous Version</a></li>
<li><a href="#v34_code_changes">Code Changes Which May Affect
Customizations</a></li>
<li><a href="#v34_previous">Release Notes for Previous Versions</a></li>
</ul>
<h2 id="v34_introduction">Introduction</h2>
<p>This is [% terms.Bugzilla %] 3.4! [% terms.Bugzilla %] 3.4 brings a lot
of great enhancements for [% terms.Bugzilla %] over previous versions,
with various improvements to the user interface, lots of interesting new
features, and many long-standing requests finally being addressed.</p>
<p>If you're upgrading, make sure to read <a href="#v34_upgrading">Notes
On Upgrading From a Previous Version</a>. If you are upgrading from a release
before 3.2, make sure to read the release notes for all the
<a href="#v34_previous">previous versions</a> in between your version
and this one, <strong>particularly the Upgrading section of each
version's release notes</strong>.</p>
<p>We would like to thank <a href="http://www.canonical.com/">Canonical
Ltd.</a> for funding development of one new feature, and NASA for funding
development of several new features through the
<a href="http://www.sjsufoundation.org/">San Jose State University
Foundation</a>.</p>
<h2 id="v34_point">Updates In This 3.4.x Release</h2>
<h3>3.4.6</h3>
<ul>
<li>When doing a search that involves "not equals" or "does not contain the
string" or similar "negative" search types, the search description that
appears at the top of the resulting [% terms.bug %] list will indicate
that the search was of that type.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474738">[% terms.Bug %] 474738</a>)
</li>
<li>In Internet Explorer, users couldn't easily mark a RESOLVED DUPLICATE
[%+ terms.bug %] as REOPENED, due to a JavaScript error.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=546719">[% terms.Bug %] 546719</a>)
</li>
<li>If you use a "bookmarkable template" to pre-fill forms on
the [% terms.bug %]-filing page, and you have custom fields
that are only supposed to appear (or only supposed to have certain
values) based on the values of other fields, those custom fields will
now work properly.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=538211">[% terms.Bug %] 538211</a>)
</li>
<li>If you have a custom field that's only supposed to appear when
a [% terms.bug %]'s resolution is FIXED, it will now behave properly
on the [% terms.bug %]-editing form when a user sets the [% terms.bug %]'s
status to RESOLVED.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=520993">[% terms.Bug %] 520993</a>)
</li>
<li>If you are logged-out and using <kbd>request.cgi</kbd>, the Requester
and Requestee fields no longer respect the <kbd>usermatching</kbd>
parameter--they always require full usernames.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=533018">[% terms.Bug %] 533018</a>)
</li>
<li>If you tried to do a search with too many terms (resulting in a URL
that was longer than about 7000 characters), Apache would return a
500 error instead of your search results.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=513989">[% terms.Bug %] 513989</a>)
</li>
<li>[% terms.Bugzilla %] would sometimes lose fields from your sort order
when you added new fields to your sort order.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=470214">[% terms.Bug %] 470214</a>)
</li>
<li>The Atom format of search results would sometimes be missing the
Reporter or Assignee field for some [% terms.bugs %].
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=537834">[% terms.Bug %] 537834</a>)
</li>
</ul>
<h3>3.4.5</h3>
<p>This release contains fixes for multiple security issues. See the
<a href="http://www.bugzilla.org/security/3.0.10/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in
this release:</p>
<ul>
<li>Whining was failing if jobqueue.pl was enabled.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=530270">[% terms.Bug %] 530270</a>)
</li>
<li>The Assignee field was empty in Whine mails.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=511216">[% terms.Bug %] 511216</a>)
</li>
<li>Administrators can now successfully create user accounts using
editusers.cgi when using the "Env" authentication method.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=483987">[% terms.Bug %] 483987</a>)
</li>
<li>[% terms.Bug %]mail now uses the timezone of the recipient of the email,
when displaying the time a comment was made, instead of the timezone of the
person who made the change.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=534587">[% terms.Bug %] 534587</a>)
</li>
<li>"[% terms.bug %] 1234" in comments sometimes would not become a link if
word-wrapping happened between "[% terms.bug %]" and the number.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=514703">[% terms.Bug %] 514703</a>)
</li>
<li>Running <kbd>checksetup.pl</kbd> on Windows will no longer pop up an error box
about OCI.dll.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=480968">[% terms.Bug %] 480968</a>)
</li>
</ul>
<h3>3.4.4</h3>
<p>This release contains a fix for a security issue. See the
<a href="http://www.bugzilla.org/security/3.4.3/">Security Advisory</a>
for details.</p>
<p>Additionally, this release fixes a few minor [% terms.bugs %].</p>
<h3>3.4.3</h3>
<ul>
<li>[% terms.Bugzilla %] installations running under mod_perl were leaking
about 512K of RAM per page load.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=517793">[% terms.Bug %] 517793</a>)
</li>
<li>Attachments with Unicode characters in their names were being downloaded
with mangled names.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=328628">[% terms.Bug %] 328628</a>)
</li>
<li>Creating custom fields with Unicode in their database column name
is now no longer allowed, as it would break [% terms.Bugzilla %]. If you
created such a custom field, you should delete it by first marking it
obsolete and then clicking "Delete" in the custom field list, using
<a href="editfields.cgi">editfields.cgi</a>.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=525025">[% terms.Bug %] 525025</a>)
</li>
<li>Clicking "submit only my comment" on the "mid-air collisions" page
was leading to a "Suspicious Action" warning.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=514378">[% terms.Bug %] 514378</a>)
</li>
<li>The XML format of [% terms.abug %] accidentally contained the
word-wrapped content of comments instead of the unwrapped content.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=509152">[% terms.Bug %] 509152</a>)
</li>
<li>You can now do <kbd>./install-module.pl --shell</kbd> to get a CPAN
shell using the configuration of
<a href="[% docs_urlbase FILTER html %]api/install-module.html">install-module.pl</a>,
which allows you to do more advanced Perl module installation tasks.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=445875">[% terms.Bug %] 445875</a>)
</li>
</ul>
<h3>3.4.2</h3>
<p>This release contains fixes for multiple security issues, one of which
is highly critical. See the
<a href="http://www.bugzilla.org/security/3.0.8/">Security Advisory</a>
for details.</p>
<p>In addition, the following important fixes/changes have been made in
this release:</p>
<ul>
<li>Upgrades from older releases were sometimes failing during UTF-8
conversion with a foreign key error.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=508181">[% terms.Bug %] 508181</a>)
</li>
<li>Sorting [% terms.bug %] lists on certain fields would result in an error.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=510944">[% terms.Bug %] 510944</a>)
</li>
<li>[% terms.Bug %] update emails had two or three blank lines at the top
and between the various sections of the email. There is now only one
blank line in each of those places, making these emails more compact.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=73330">[% terms.Bug %] 73330</a>)
</li>
<li>[% terms.Bug %] email notifications for new [% terms.bugs %] incorrectly
had a line saying that the description was "Comment 0".
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=510798">[% terms.Bug %] 510798</a>)
</li>
<li>Running <kbd>./collectstats.pl --regenerate</kbd> is now much faster,
on the order of 20x or 100x faster.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=286625">[% terms.Bug %] 286625</a>)
</li>
<li>For users of RHEL, CentOS, Fedora, etc. jobqueue.pl can now automatically
be installed as a daemon by running <kbd>./jobqueue.pl install</kbd>
as root.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=475403">[% terms.Bug %] 475403</a>)
</li>
<li>XML-RPC interface responses had an incorrect Content-Length header
and would sometimes be truncated, if they contained certain UTF-8
characters.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=486306">[% terms.Bug %] 486306</a>)
</li>
<li>Users who didn't have access to the time-tracking fields would get an
empty [% terms.bug %] update email when the time-tracking fields were
changed.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=509035">[% terms.Bug %] 509035</a>)
</li>
<li>In the New Charts, non-public series now no longer show up as selectable
if you cannot access them.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=389396">[% terms.Bug %] 389396</a>)
</li>
</ul>
<h3>3.4.1</h3>
<p>This release contains an important security fix. See the
<a href="http://www.bugzilla.org/security/3.4/">Security Advisory</a>
for details.</p>
<h2 id="v34_req">Minimum Requirements</h2>
<p>Any requirements that are new since 3.2.3 will look like
<span class="req_new">this</span>.</p>
<ul>
<li><a href="#v34_req_perl">Perl</a></li>
<li><a href="#v34_req_mysql">For MySQL Users</a></li>
<li><a href="#v34_req_pg">For PostgreSQL Users</a></li>
<li><a href="#v34_req_oracle">For Oracle Users</a></li>
<li><a href="#v34_req_modules">Required Perl Modules</a></li>
<li><a href="#v34_req_optional_mod">Optional Perl Modules</a></li>
</ul>
<h3 id="v34_req_perl">Perl</h3>
<p>Perl v5.8.1</p>
<h3 id="v34_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL v4.1.2</li>
<li><strong>perl module:</strong> DBD::mysql v4.00</li>
</ul>
<h3 id="v34_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL v8.00.0000</li>
<li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>
<h3 id="v34_req_oracle">For Oracle Users</h3>
<ul>
<li>Oracle v10.02.0</li>
<li><strong>perl module:</strong> DBD::Oracle v1.19</li>
</ul>
<h3 id="v34_req_modules">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>3.21</td>
</tr>
<tr>
<td class="req_new">Digest::SHA</td>
<td class="req_new"> (Any)</td>
</tr>
<tr>
<td>Date::Format</td>
<td>2.21</td>
</tr>
<tr>
<td class="req_new">DateTime</td>
<td class="req_new">0.28</td>
</tr>
<tr>
<td class="req_new">DateTime::TimeZone</td>
<td class="req_new">0.71</td>
</tr>
<tr>
<td>DBI</td>
<td>1.41</td>
</tr>
<tr>
<td>Template</td>
<td class="req_new">2.22</td>
</tr>
<tr>
<td>Email::Send</td>
<td>2.00</td>
</tr>
<tr>
<td>Email::MIME</td>
<td>1.861</td>
</tr>
<tr>
<td>Email::MIME::Encodings</td>
<td>1.313</td>
</tr>
<tr>
<td>Email::MIME::Modifier</td>
<td>1.442</td>
</tr>
<tr>
<td class="req_new">URI</td>
<td class="req_new">(Any)</td>
</tr>
</table>
<h3 id="v34_req_optional_mod">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>LWP::UserAgent</td>
<td>(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::Text</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</td>
<td>1.20</td>
<td>Graphical Reports, New Charts, Old Charts</td>
</tr>
<tr>
<td>Email::MIME::Attachment::Stripper</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>Email::Reply</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>Net::LDAP</td>
<td>(Any)</td>
<td>LDAP Authentication</td>
</tr>
<tr>
<td class="req_new">TheSchwartz</td>
<td class="req_new">(Any)</td>
<td>Mail Queueing</td>
</tr>
<tr>
<td class="req_new">Daemon::Generic</td>
<td class="req_new">(Any)</td>
<td>Mail Queueing</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>Authen::Radius</td>
<td>(Any)</td>
<td>RADIUS Authentication</td>
</tr>
<tr>
<td>Authen::SASL</td>
<td>(Any)</td>
<td>SMTP Authentication</td>
</tr>
<tr>
<td>SOAP::Lite</td>
<td>0.710.06</td>
<td>XML-RPC Interface</td>
</tr>
<tr>
<td>mod_perl2</td>
<td>1.999022</td>
<td>mod_perl</td>
</tr>
</table>
<h2 id="v34_feat">New Features and Improvements</h2>
<ul>
<li><a href="#v34_feat_enter">Simple [% terms.Bug %] Filing</a></li>
<li><a href="#v34_feat_index">New Home Page</a></li>
<li><a href="#v34_feat_spam">Email Addresses Hidden From Logged-Out
Users</a></li>
<li><a href="#v34_feat_urls">Shorter Search URLs</a></li>
<li><a href="#v34_feat_async">Asynchronous Email Sending</a></li>
<li><a href="#v34_feat_tz">Dates and Times Displayed In User's Time
Zone</a></li>
<li><a href="#v34_feat_vis">Custom Fields That Only Appear When
Another Field Has a Particular Value</a></li>
<li><a href="#v34_feat_vals">Custom Fields Whose List of Values
Change Depending on the Value of Another Field</a></li>
<li><a href="#v34_feat_bugid">New Custom Field Type:
[%+ terms.Bug %] ID</a></li>
<li><a href="#v34_feat_see">"See Also" Field</a></li>
<li><a href="#v34_feat_cols">Re-order Columns in Search Results</a></li>
<li><a href="#v34_feat_desc">Search Descriptions</a></li>
<li><a href="#v34_feat_other">Other Enhancements and Changes</a></li>
</ul>
<h3 id="v34_feat_enter">Simple [% terms.Bug %] Filing</h3>
<p>When entering a new [% terms.bug %], the vast majority of fields are
now hidden by default, which enormously simplifies the bug-filing form.
You can click "Show Advanced Fields" to show all the fields, if you want
them. [%+ terms.Bugzilla %] remembers whether you last used the "Advanced"
or "Simple" version of the [% terms.bug %]-entry form, and will display the
same version to you again next time you file [% terms.abug %].</p>
<h3 id="v34_feat_index">New Home Page</h3>
<p>[% terms.Bugzilla %]'s front page has been redesigned to be better at
guiding new users into the activities that they most commonly want to
do. Further enhancements to the home page are coming in future versions
of [% terms.Bugzilla %].</p>
<h3 id="v34_feat_spam">Email Addresses Hidden From Logged-Out Users</h3>
<p>To help prevent spam to [% terms.Bugzilla %] users, all email addresses
stored in [% terms.Bugzilla %] are now displayed only if you are logged in.
If you are logged out, only the part before the "@" of the email address is
displayed. This includes [% terms.bug %] lists, viewing [% terms.bugs %], the
XML format of [% terms.abug %], and any other place in the web interface that
an email address could appear.</p>
<p>Email addresses are not filtered out of [% terms.bug %] comments.
The WebService still returns full email addresses, even if you are logged
out.</p>
<h3 id="v34_feat_urls">Shorter Search URLs</h3>
<p>When submitting a search, all the unused fields are now stripped from
the URL, so search URLs are much more meaningful, and much shorter.</p>
<h3 id="v34_feat_async">Asynchronous Email Sending</h3>
<p>The largest performance problem in former versions of [% terms.Bugzilla %]
was that when updating [% terms.bugs %], email would be sent immediately
to every user who needed to be notified, and <kbd>process_bug.cgi</kbd>
would wait for the emails to be sent before continuing.</p>
<p>Now [% terms.Bugzilla %] is capable of queueing emails to be sent
while [% terms.abug %] is being updated, and sending them in the
background. This requires the administrator to run a daemon
that comes with [% terms.Bugzilla %], named
<a href="[% docs_urlbase FILTER html %]api/jobqueue.html">jobqueue.pl</a>,
and to enable the <a href="editparams.cgi?section=mta#use_mailer_queue">
use_mailer_queue</a> parameter.</p>
<p>Using the background email-sending daemon instead of sending mail directly
should result in a very large speed-up for updating [% terms.bugs %],
particularly on larger installations.</p>
<h3 id="v34_feat_tz">Dates and Times Displayed In User's Time Zone</h3>
<p>Users can now select what time zone they are in and [% terms.Bugzilla %]
will adjust displayed times to be correct for their time zone. However,
times the user inputs are unfortunately still in [% terms.Bugzilla %]'s
time zone.</p>
<h3 id="v34_feat_vis">Custom Fields That Only Appear When Another Field
Has a Particular Value</h3>
<p>When creating a new custom field (or updating the definition of
an existing custom field), you can now say that "this field only
appears when field X has value Y". (In the future, you will be able
to select multiple values for "Y", so a field will appear when any
one of those values is selected.)</p>
<p>This feature only hides fields--it doesn't make their values go away.
So [% terms.bugs %] will still show up in searches for that field's
value, but the field won't appear in the user interface.</p>
<p>This is a good way of making Product-specific fields.</p>
<h3 id="v34_feat_vals">Custom Fields Whose List of Values Change
Depending on the Value of Another Field</h3>
<p>When creating a drop-down or multiple-selection custom field, you can
now specify that another field "controls the values" of this field.
Then, when adding values to this field, you can say that a particular
value only appears when the other field is set to a particular
value.</p>
<p>Here's an example: Let's say that we create a field called "Colors",
and we make the Product field "control the values" for Colors. Then we
add Blue, Red, Black, and Yellow as legal values for the "Colors" field.
Now we can say that "Blue" and "Red" only appear as valid choices in
Product A, "Yellow" only appears in Product B, but "Black" <em>always</em>
appears.</p>
<p>One thing to note is that this feature only controls what values appear in
the <em>user interface</em>. [% terms.Bugzilla %] itself will still accept
any combination of values as valid, in the backend.</p>
<h3 id="v34_feat_bugid">New Custom Field Type: [% terms.Bug %] ID</h3>
<p>You can now create a custom field that holds a reference to a single
valid [% terms.bug %] ID. In the future this will be enhanced to allow
[%+ terms.bugs %] to refer to each other via this field.</p>
<h3 id="v34_feat_see">"See Also" Field</h3>
<p>We have added a new standard field called "See Also" to
[%+ terms.Bugzilla %]. In this field, you can put URLs to multiple
[%+ terms.bugs %] in any [% terms.Bugzilla %] installation, to indicate
that those [% terms.bugs %] are related to this one. It also supports
adding URLs to [% terms.bugs %] in
<a href="http://launchpad.net/">Launchpad</a>.</p>
<p>Right now, the field just validates the URLs and then displays them, but
in the future, it will grab information from the other installation about
the [% terms.bug %] and display it here, and possibly even update the
other installation.</p>
<p>If your installation does not need this field, you can hide it by disabling
the <a href="editparams.cgi?section=bugfields#use_see_also">use_see_also
parameter</a>.</p>
<h3 id="v34_feat_cols">Re-order Columns in Search Results</h3>
<p>There is a new interface for choosing what columns appear in search
results, which allows you to change the order in which columns appear
from left to right when viewing the [% terms.bug %] list.</p>
<h3 id="v34_feat_desc">Search Descriptions</h3>
<p>When displaying search results, [% terms.Bugzilla %] will now show
a brief description of what you searched for, at the top of the
[%+ terms.bug %] list.</p>
<h3 id="v34_feat_other">Other Enhancements and Changes</h3>
<h4>Enhancements for Users</h4>
<ul>
<li>You can now log in from every page, using the login form that appears
in the header or footer when you click "Log In".</li>
<li>When viewing [% terms.abug %], obsolete attachments are now
hidden from the attachment list by default. You can show them
by clicking "Show Obsolete" at the bottom of the attachment list.</li>
<li>In the Email Preferences, you can now choose to get email when
a new [% terms.bug %] report is filed and you have a particular
role on it.</li>
<li>When resolving a mid-air collision, you can now choose to submit
only your comment.</li>
<li>You can now set the Blocks and Depends On field on the "Change
Several [% terms.Bugs %] At Once" page.</li>
<li>If your installation uses the "insidergroup" feature, you can now add
private comments on the "Change Several [% terms.Bugs %] At Once"
page.</li>
<li>When viewing a search result, you can now hover over any abbreviated
field to see its full value.</li>
<li>When logging out, users are now redirected to the main page of
[%+ terms.Bugzilla %] instead of an empty page.</li>
<li>When editing [% terms.abug %], text fields (except the comment box) now
grow longer when you widen your browser window.</li>
<li>When viewing [% terms.abug %], the Depends On and Blocks list will
display [% terms.abug %]'s alias if it has one, instead of its id.
Also, closed [% terms.bugs %] will be sorted to the end of the list.</li>
<li>If you use the time-tracking features of [% terms.Bugzilla %], and
you enable the time-tracking related columns in a search result,
then you will see a summary of the time-tracking data at the
bottom of the search result.</li>
<li>For users of time-tracking, the <kbd>summarize_time.cgi</kbd> page
now contains more data.</li>
<li>When viewing an attachment's details page while you are logged-out,
flags are no longer shown as editable.</li>
<li>Cloning [% terms.abug %] will now retain the "Blocks" and "Depends On"
fields from the [% terms.bug %] being cloned.</li>
<li>[% terms.Bug %]mail for new [% terms.bugs %] will now indicate
what security groups the [% terms.bug %] has been restricted to.</li>
<li>You can now use any custom drop-down field as an axis for a tabular
or graphical report.</li>
<li>The <kbd>X-Bugzilla-Type</kbd> header in emails sent by
[%+ terms.Bugzilla %] is now "new" for [% terms.bug %]mail sent for
newly-filed [% terms.bugs %], and "changed" for emails having to do
with updated [% terms.bugs %].</li>
<li>Mails sent by the "Whining" system now contain the header
<kbd>X-Bugzilla-Type: whine</kbd>.</li>
<li>[% terms.bug %]mail now contains a X-Bugzilla-URL header to uniquely
identify which [% terms.Bugzilla %] installation the email came from.</li>
<li>If you input an invalid regular expression anywhere in
[%+ terms.Bugzilla %], it will now tell you explicitly instead of failing
cryptically.</li>
<li>The <kbd>duplicates.xul</kbd> page (which wasn't used by very many
people) is now gone.</li>
</ul>
<h4>Enhancements for Administrators and Developers</h4>
<ul>
<li>[% terms.Bugzilla %] now uses the SHA-256 algorithm (a variant of
SHA-2) to encrypt passwords in the database, instead of using Unix's
"crypt" function. This allows passwords longer than eight characters
to actually be effective. Each user's password will be converted to
SHA-256 the first time they log in after you upgrade to
[%+ terms.Bugzilla %] 3.4 or later.</li>
<li>If you are using database replication with [% terms.Bugzilla %],
many more scripts now take advantage of the read-only slave (the
"shadowdb"). It may be safe to open up <kbd>show_bug.cgi</kbd>
to search-engine indexing by editing your <kbd>robots.txt</kbd> file,
now, if your [% terms.Bugzilla %] is on fast-enough hardware.</li>
<li>The database now uses foreign keys to enforce the validity of
relationships between tables. Not every single table has all its
foreign keys yet, but most do.</li>
<li>Various parameters have been removed, in an effort to de-clutter
the parameter interface and simplify [% terms.Bugzilla %]'s code.
The parameters that were removed were: timezone, supportwatchers,
maxpatchsize, commentonclearresolution, commentonreassignbycomponent,
showallproducts. They have all been replaced with sensible default
behaviors. (For example, user watching is now always enabled.)</li>
<li>When adding <code>&debug=1</code> to the end of a
<kbd>buglist.cgi</kbd> URL, [% terms.Bugzilla %] will now also do an
EXPLAIN on the query, to help debug performance issues.</li>
<li>When editing flag types in the administrative interface, you can now
see how many flags of each type have been set.</li>
</ul>
<h4>WebService Changes</h4>
<ul>
<li>Various functions have been added to the WebService:
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#history">B[% %]ug.history</a>,
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#search">B[% %]ug.search</a>,
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#comments">B[% %]ug.comments</a>,
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#update_see_also">B[% %]ug.update_see_also</a>,
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/User.html#get">User.get</a>,
and <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bugzilla.html#time">B[% %]ugzilla.time</a>
(<kbd>B[% %]ugzilla.timezone</kbd> is now deprecated).
</li>
<li>For network efficiency, you can now limit which fields are returned
from certain WebService functions, like <kbd>User.get</kbd>.</li>
<li>There is now a "permissive" argument for the <kbd>B[% %]ug.get</kbd>
WebService function, which causes it not to throw an error when you
ask for [% terms.bugs %] you can't see.</li>
<li>The <kbd>B[% %]ug.get</kbd> method now returns many more fields.</li>
<li>The <kbd>B[% %]ug.add_comment</kbd> method now returns the ID of the comment
that was just added.</li>
<li>The <kbd>B[% %]ug.add_comment</kbd> method will now throw an error if you
try to add a private comment but do not have the correct permissions.
(In previous versions, it would just silently ignore the <kbd>private</kbd>
argument if you didn't have the correct permissions.)</li>
<li>Many WebService function parameters now take individual values in
addition to arrays.</li>
<li>The WebService now validates input types--it makes sure that dates
are in the right format, that ints are actually ints, etc. It will throw
an error if you send it invalid data. It also accepts empty ints, doubles,
and dateTimes, and translates them to <kbd>undef</kbd>.</li>
</ul>
<h2 id="v34_issues">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 id="v34_upgrading">Notes On Upgrading From a Previous Version</h2>
<p>When upgrading to 3.4, <kbd>checksetup.pl</kbd> will create foreign keys
for many columns in the database. Before doing this, it will check the
database for consistency. If there are an unresolvable consistency
problems, it will tell you what table and column in the database contain
the bad values, and which values are bad. If you don't know what else to do,
you can always delete the database records which contain the bad values by
logging in to your database and running the following command:</p>
<p><code>DELETE FROM <var>table</var> WHERE <var>column</var> IN
(<var>1, 2, 3, 4</var>)</code></p>
<p>Just replace "table" and "column" with the name of the table
and column that <kbd>checksetup.pl</kbd> mentions, and "1, 2, 3, 4"
with the invalid values that <kbd>checksetup.pl</kbd> prints out.</p>
<p>Remember that you should always back up your database before doing
an upgrade.</p>
<h2 id="v34_code_changes">Code Changes Which May Affect Customizations</h2>
<ul>
<li><kbd>checksetup.pl</kbd> now re-writes the <kbd>localconfig</kbd>
file every time it runs, keeping the current values set (if there
are any), but moving any unexpected variables into a file called
<kbd>localconfig.old</kbd>. If you want to continue having custom
varibles in <kbd>localconfig</kbd>, you will have to add them to
the <code>LOCALCONFIG_VARS</code> constant in
<kbd>Bugzilla::Install::Localconfig</kbd>.</li>
<li><kbd>Bugzilla::Object->update()</kbd> now returns something different
in list context than it does in scalar context.</li>
<li><kbd>Bugzilla::Object->check()</kbd> now can take object
ids in addition to names. Just pass in <code>{ id => $some_value
}</code>.</li>
<li>Instead of being defined in <kbd>buglist.cgi</kbd>, columns for
search results are now defined in a subroutine called <code>COLUMNS</code>
in <kbd>Bugzilla::Search</kbd>. The data now mostly comes from the
<kbd>fielddefs</kbd> table in the database. Search.pm now takes a list
of column names from fielddefs for its <kbd>fields</kbd> argument instead
of literal SQL columns.</li>
<li><kbd>Bugzilla::Field->legal_values</kbd> now returns an array of
<a href="[% docs_urlbase FILTER html %]api/Bugzilla/Field/Choice.html">Bugzilla::Field::Choice</a>
objects instead of an array of strings. Bugzilla::Field::Choice will be used
in more places, in the future.</li>
<li>We now use <kbd>Bugzilla::Bug->check()</kbd> instead of
<kbd>ValidateBugId</kbd>.</li>
<li>The <kbd>groups</kbd> and <kbd>bless_groups</kbd> methods in
<kbd>Bugzilla::User</kbd> now return an arrayref of
<kbd>Bugzilla::Group</kbd> objects instead of a hashref with
group ids and group names.</li>
<li>Standard [% terms.Bugzilla %] drop-down fields now have their type
set to <kbd>FIELD_TYPE_SINGLE_SELECT</kbd> in the fielddefs table.</li>
<li><kbd>Bugzilla->usage_mode</kbd> now defaults to
<kbd>USAGE_MODE_CMDLINE</kbd> if we are not running inside a web
server.</li>
<li>We no longer delete environment variables like <kbd>$ENV{PATH}</kbd>
automatically unless we're actually running in taint mode.</li>
<li>We are now using YUI 2.6.0.</li>
<li>In <a href="config.cgi?ctype=rdf">the RDF format of config.cgi</a>,
the "resource" attribute for flags now contains "flag.cgi" instead
of "flags.cgi".</li>
</ul>
<h1 id="v34_previous">[% terms.Bugzilla %] 3.2 Release Notes</h1>
<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 id="v32_introduction">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 id="v32_point">Updates in this 3.2.x Release</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.3</h3>
<ul>
<li>[% terms.Bugzilla %] is now compatible with MySQL 5.1.x versions 5.1.31
and greater.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=480001">[% terms.Bug %] 480001</a>)</li>
<li>On Windows, [% terms.Bugzilla %] sometimes would send mangled emails
(that would often fail to send).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=467920">[% terms.Bug %] 467920</a>)</li>
<li><code>recode.pl</code> would sometimes crash when trying to convert
databases from older versions of [% terms.Bugzilla %].
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=431201">[% terms.Bug %] 431201</a>)</li>
<li>Running a saved search with Unicode characters in its name would
cause [% terms.Bugzilla %] to crash.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=477513">[% terms.Bug %] 477513</a>)</li>
<li>[% terms.Bugzilla %] clients like Mylyn can now update [% terms.bugs %]
again (the [% terms.bug %] XML format now contains a "token" element that
can be used when updating [% terms.abug %]).
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=476678">[% terms.Bug %] 476678</a>)</li>
<li>For installations using the <code>shadowdb</code> parameter,
[%+ terms.Bugzilla %] was accidentally writing to the "tokens" table
in the shadow database (instead of the master database) when using the
"Change Several [% terms.Bugs %] at Once" page.
(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=476943">[% terms.Bug %] 476943</a>)</li>
</ul>
<p>This release also contains a security fix. See the
<a href="#v32_security">Security Fixes Section</a> for details.</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.
<kbd>checksetup.pl</kbd> 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 id="v32_security">Security Fixes In This 3.2.x Release</h2>
<h3>3.2.3</h3>
<p>This release fixes one security issue related to attachments. See the
<a href="http://www.bugzilla.org/security/3.2.2/">Security Advisory</a>
for details.</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>
<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 id="v32_req">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 id="v32_req_perl">Perl</h3>
<p>Perl <span class="req_new">v<strong>5.8.1</strong></span></p>
<h3 id="v32_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL v4.1.2</li>
<li><strong>perl module:</strong>
DBD::mysql <span class="req_new">v4.00</span></li>
</ul>
<h3 id="v32_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL v8.00.0000</li>
<li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>
<h3 id="v32_req_oracle">Email Addresses Hidden From Logged-Out Users
For Oracle Users</h3>
<ul>
<li>Oracle v10.02.0</li>
<li><strong>perl module:</strong> DBD::Oracle v1.19</li>
</ul>
<h3 id="v32_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellpadding="0" cellspacing="0">
<tr> <th>Module</th> <th>Version</th> </tr>
<tr> <td>CGI</td> <td class="req_new">3.21 (on Perl 5.8.x)
or 3.33 (on Perl 5.10.x)</td> </tr>
<tr> <td>Date::Format</td> <td>2.21</td> </tr>
<tr> <td>File::Spec</td> <td>0.84</td> </tr>
<tr> <td>DBI</td> <td>1.41</td> </tr>
<tr> <td>Template</td> <td class="req_new">2.15</td> </tr>
<tr> <td>Email::Send</td> <td>2.00</td> </tr>
<tr> <td>Email::MIME</td> <td class="req_new">1.861</td> </tr>
<tr>
<td class="req_new">Email::MIME::Encodings</td>
<td class="req_new">1.313</td>
</tr>
<tr>
<td>Email::MIME::Modifier</td>
<td class="req_new">1.442</td>
</tr>
</table>
<h3 id="v32_req_optional_mod">Optional Perl Modules</h3>
<p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellpadding="0" cellspacing="0">
<tr>
<th>Module</th>
<th>Version</th>
<th>Enables Feature</th>
</tr>
<tr>
<td>LWP::UserAgent</td>
<td>(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::Text</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</td>
<td>1.20</td>
<td>Graphical Reports, New Charts, Old Charts</td>
</tr>
<tr>
<td>Email::MIME::Attachment::Stripper</td>
<td>(Any)</td>
<td>Inbound Email</td>
</tr>
<tr>
<td>Email::Reply</td>
<td>(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">Authen::Radius</td>
<td class="req_new">(Any)</td>
<td>RADIUS Authentication</td>
</tr>
<tr>
<td class="req_new">Authen::SASL</td>
<td class="req_new">(Any)</td>
<td>SMTP Authentication</td>
</tr>
<tr>
<td>SOAP::Lite</td>
<td>(Any)</td>
<td>XML-RPC Interface</td>
</tr>
<tr>
<td>mod_perl2</td>
<td>1.999022</td>
<td>mod_perl</td>
</tr>
</table>
<h2 id="v32_feat">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 id="v32_feat_ui">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 id="v32_feat_skin">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 id="v32_feat_status">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 id="v32_feat_fields">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 id="v32_feat_install">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 id="v32_feat_oracle">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 id="v32_feat_utf8">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 id="v32_feat_grcons">Group Icons</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 id="v32_feat_other">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 <head>
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 id="v32_issues">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 id="v32_upgrading">How to Upgrade From An Older Version</h2>
<h3 id="v32_upgrading_notes">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 id="v32_code_changes">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 id="v32_code_hooks">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 id="v32_code_search">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 id="v32_code_lib">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 id="v32_code_other">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>[%# version = 1.0 %]</code> comment at the top of every
template file has been removed.</li>
</ul>
<h1 id="v32_previous">[% 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 id="v30_introduction">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 id="v30_point">Updates in this 3.0.x Release</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><kbd>checksetup.pl</kbd> 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 [% terms.abug %].
(<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 [% terms.abug %] 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 id="v30_req">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 id="v30_req_perl">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 id="v30_req_mysql">For MySQL Users</h3>
<ul>
<li>MySQL <span class="req_new">v4.1.2</span></li>
<li><strong>perl module:</strong> DBD::mysql v2.9003</li>
</ul>
<h3 id="v30_req_pg">For PostgreSQL Users</h3>
<ul>
<li>PostgreSQL v8.00.0000</li>
<li><strong>perl module:</strong> DBD::Pg v1.45</li>
</ul>
<h3 id="v30_req_modules">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 id="v30_req_optional_mod">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 id="v30_feat">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 id="v30_feat_cf">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 "Field Values" 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 id="v30_feat_mp">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 id="v30_feat_sq">Shared Saved Searches</h3>
<p>Users can now choose to "share" their saved searches
with a certain group. That group will then be able to
"subscribe" to those searches, and have them appear
in their footer.</p>
<p>If the sharer can "bless" 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 "Preferences" screen.</p>
<h3 id="v30_feat_afn">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 id="v30_feat_cr">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 id="v30_feat_ppp">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 id="v30_feat_ui">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 "Format for Printing" 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 id="v30_feat_xml">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 id="v30_feat_skin">Skins</h3>
<p>[% terms.Bugzilla %] can have multiple "skins" 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 id="v30_feat_sbu">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 id="v30_feat_et">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 id="v30_feat_df">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 id="v30_feat_cc">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 id="v30_feat_emi">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 id="v30_feat_gw">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 [% terms.abug %]
still won't get notifications about that [% terms.bug %].</p>
<h3 id="v30_feat_utf8">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 id="v30_feat_upda">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 id="v30_feat_welc">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 id="v30_feat_qs">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 id="v30_feat_other">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>></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
"Hide Obsolete" at the bottom of the attachment table.</li>
<li>If [% terms.abug %] 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 "Blocks") will have the [% terms.bug %] numbers
displayed as links to those [% terms.bugs %].</li>
<li>When viewing the "Keywords" field in [% terms.abug %] 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 "Field Values" 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 "Users" 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 id="v30_issues">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 id="v30_security">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>
<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 id="v30_upgrading">How to Upgrade From An Older Version</h2>
<h3 id="v30_upgrading_notes">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 <kbd>checksetup.pl</kbd>.</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 id="v30_code_changes">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->request_cache</a></li>
<li><a href="#v30_code_other">Other Changes</a></li>
</ul>
<h3 id="v30_code_loc"><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 id="v30_code_hooks">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&extra=developers">developers@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 b<!-- -->ug</a>!</p>
<h3 id="v30_code_api">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 id="v30_code_globals">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 id="v30_code_scope">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 "shared" with subroutines--instead all variables
that a subroutine needs must be declared inside the subroutine itself.</p>
<h3 id="v30_code_sql">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 id="v30_code_auth">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 id="v30_code_obj">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 id="v30_code_req">Bugzilla->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->request_cache</code>
to store things for the rest of the current page request.</p>
<p>You shouldn't access <code>Bugzilla->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->request_cache->{template};</code>.</p>
<h3 id="v30_code_other">Other Changes</h3>
<ul>
<li><kbd>checksetup.pl</kbd> 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&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->user->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 "docslinks.")</li>
<li>Parameters are accessed through <kbd>Bugzilla->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->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 [% terms.abug %] 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 id="v30_previous">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 id="v40_req_[% db FILTER html %]">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.join(', ') FILTER html %]</td>
[% END %]
</tr>
[% END %]
</table>
[% END %]
|