1[%# This Source Code Form is subject to the terms of the Mozilla Public
2  # License, v. 2.0. If a copy of the MPL was not distributed with this
3  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4  #
5  # This Source Code Form is "Incompatible With Secondary Licenses", as
6  # defined by the Mozilla Public License, v. 2.0.
7  #%]
8
9[% SET title = "Bugzilla 5.0 Release Notes" %]
10[% INCLUDE global/header.html.tmpl
11  title = title
12  bodyclasses = ['narrow_page']
13%]
14
15<h1>[% title FILTER html %]</h1>
16
17<ul class="bz_toc">
18  <li><a href="#introduction">Introduction</a></li>
19  <li><a href="#point">Updates in this 5.0.x Release</a></li>
20  <li><a href="#req">Minimum Requirements</a></li>
21  <li><a href="#feat">New Features and Improvements</a></li>
22  <li><a href="#issues">Outstanding Issues</a></li>
23  <li><a href="#code_changes">Code Changes Which May Affect
24    Customizations and Extensions</a></li>
25  <li><a href="https://bugzilla.readthedocs.org/en/latest/installing/upgrading.html">
26    Notes On Upgrading From a Previous Version</a></li>
27  <li><a href="http://www.bugzilla.org/releases/">Release Notes for Previous Versions</a></li>
28</ul>
29
30<h2 id="introduction">Introduction</h2>
31
32<p>Welcome to Bugzilla 5.0! It has been slightly over two years since we released
33  Bugzilla 4.4 in May of 2013. This new major release comes with many new features
34  and improvements to WebServices and performance.</p>
35
36<p>If you're upgrading, make sure to read
37  <a href="https://bugzilla.readthedocs.org/en/latest/installing/upgrading.html">
38  Notes On Upgrading From a Previous Version</a>. If you are upgrading from a
39  release before 4.4, make sure to read the release notes for all the
40  <a href="http://www.bugzilla.org/releases/">previous versions</a> in between
41  your version and this one, <strong>particularly the Upgrading section of each
42  version's release notes</strong>.</p>
43
44<h2 id="point">Updates in this 5.0.x Release</h2>
45
46<h3>5.0.4</h3>
47
48<p>This release fixes one security issue. See the
49  <a href="https://www.bugzilla.org/security/4.4.12/">Security Advisory</a>
50  for details.</p>
51
52<p>This release also contains the following [% terms.bug %] fixes:</p>
53
54<ul>
55  <li><kbd>checksetup.pl</kbd> would fail to update Chart storage during pre-3.6 to 5.0 upgrade.
56    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1273846">[% terms.Bug %] 1273846</a>)</li>
57  <li><kbd>editflagtypes.cgi</kbd> would crash when classifications are enabled and
58    the user did not have global <kbd>editcomponents</kbd> privileges.
59    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1310728">[% terms.Bug %] 1310728</a>)</li>
60  <li>The <kbd>File::Slurp</kbd> would trigger warnings on perl 5.24.
61    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1301887">[% terms.Bug %] 1301887</a>)</li>
62  <li>All the time entries in the 'when' column had the correct date but the time
63    was fixed to 00:00 when using Sqlite.
64    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1303702">[% terms.Bug %] 1303702</a>)</li>
65</ul>
66
67<h3>5.0.3</h3>
68
69<p>This release fixes one security issue. See the
70  <a href="https://www.bugzilla.org/security/4.4.11/">Security Advisory</a>
71  for details.</p>
72
73<p>This release also contains the following [% terms.bug %] fixes:</p>
74
75<ul>
76  <li>A regression in Bugzilla 5.0.2 caused <kbd>whine.pl</kbd> to be unable
77    to send emails due to a missing subroutine.
78    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1235395">[% terms.Bug %] 1235395</a>)</li>
79  <li>The <kbd>Encode</kbd> module changed the way it encodes strings, causing
80    email addresses in emails sent by [%terms.Bugzilla %] to be encoded,
81    preventing emails from being correctly delivered to recipients.
82    We now encode email headers correctly.
83    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1246228">[% terms.Bug %] 1246228</a>)</li>
84  <li>Fix additional taint issues with Strawberry Perl.
85    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987742">[% terms.Bug %] 987742</a> and
86    <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1089448">[% terms.bug %] 1089448</a>)</li>
87  <li>When exporting a buglist as a CSV file, fields starting with either
88    "=", "+", "-" or "@" are preceded by a space to not trigger formula
89    execution in Excel.
90    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1259881">[% terms.Bug %] 1259881</a>)</li>
91  <li>An extension which allows user-controlled data to be used as a link in
92    tabs could trigger XSS if the data is not correctly sanitized.
93    [%+ terms.Bugzilla %] no longer relies on the extension to do the sanity
94    check. A vanilla installation is not affected as no tab is user-controlled.
95    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1250114">[% terms.Bug %] 1250114</a>)</li>
96  <li>Extensions can now easily override the favicon used for the
97    [%+ terms.Bugzilla %] website.
98    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1250264">[% terms.Bug %] 1250264</a>)</li>
99</ul>
100
101<h3>5.0.2</h3>
102
103<p>This release fixes two security issues. See the
104  <a href="https://www.bugzilla.org/security/4.2.15/">Security Advisory</a>
105  for details.</p>
106
107<p>This release also contains the following [% terms.bug %] fixes:</p>
108
109<ul>
110  <li>mod_perl now works correctly with mod_access_compat turned off on
111    Apache 2.4. To regenerate the <kbd>.htaccess</kbd> files, you must first
112    delete all existing ones in subdirectories:
113    <pre>find . -mindepth 2 -name .htaccess -exec rm -f {} \;</pre>
114    You must then run <kbd>checksetup.pl</kbd> again to recreate them with
115    the correct syntax.
116    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1223790">[% terms.Bug %] 1223790</a>)</li>
117  <li>Emails sent by [% terms.Bugzilla %] are now correctly encoded as UTF-8.
118    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=714724">[% terms.Bug %] 714724</a>)</li>
119  <li>Strawberry Perl is now fully supported on Windows.
120    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1089448">[% terms.Bug %] 1089448</a>
121    and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987742">[% terms.bug %] 987742</a>)</li>
122  <li>The XML-RPC API now works with IIS on Windows.
123    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=708252">[% terms.Bug %] 708252</a>)</li>
124  <li>Some queries should now be faster on PostgreSQL.
125    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184431">[% terms.Bug %] 1184431</a>)</li>
126</ul>
127
128<h3>5.0.1</h3>
129
130<p>This release fixes one security issue. See the
131  <a href="https://www.bugzilla.org/security/4.2.14/">Security Advisory</a>
132  for details.</p>
133
134<p>This release also contains the following [% terms.bug %] fixes:</p>
135
136<ul>
137  <li>Users whose login name is not an email address could not log in on
138    installations which use LDAP to authenticate users.
139    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1179160">[% terms.Bug %] 1179160</a>)</li>
140  <li>If a mandatory custom field was hidden, it was not possible to create
141    a new [% terms.bug %] or to edit existing ones.
142    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1183398">[% terms.Bug %] 1183398</a>
143    and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1196969">[% terms.bug %] 1196969</a>)</li>
144  <li>A user editing his login name to point to a non-existent email address
145    could cause Bugzilla to stop working, causing a denial of service.
146    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1194987">[% terms.Bug %] 1194987</a>)</li>
147  <li>Emails generated during a transaction made PostgreSQL stop working.
148    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1186700">[% terms.Bug %] 1186700</a>)</li>
149  <li>[% terms.Bugs %] containing a comment with a reference to a [% terms.bug %]
150    ID larger than 2^31 could not be displayed anymore using PostgreSQL.
151    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1191937">[% terms.Bug %] 1191937</a>)</li>
152  <li>The date picker in the "Time Summary" page was broken.
153    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181649">[% terms.Bug %] 1181649</a>)</li>
154  <li>If <kbd>Test::Taint</kbd> or any other Perl module required to use the
155    JSON-RPC API was not installed or was too old, the UI to tag comments was
156    displayed anyway, you could tag comments, but tags were not persistent
157    (they were lost on page reload). Now the UI to tag comments is not displayed
158    at all until the missing Perl modules are installed and up-to-date.
159    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1183227">[% terms.Bug %] 1183227</a>)</li>
160  <li>Custom fields of type <kbd>INTEGER</kbd> now accept negative integers.
161    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1198659">[% terms.Bug %] 1198659</a>)</li>
162  <li>On Windows, the <kbd>checksetup.pl</kbd> installation script no longer
163    asks for a SMTP server. It can be set after the installation is complete.
164    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1191255">[% terms.Bug %] 1191255</a>)</li>
165</ul>
166
167<h2 id="req">Minimum Requirements</h2>
168
169<p>Any requirements that are new since 4.4 will look like
170  <span class="req_new">this</span>.</p>
171
172<ul>
173  <li><a href="#req_perl">Perl</a></li>
174  <li><a href="#req_mysql">For MySQL Users</a></li>
175  <li><a href="#req_pg">For PostgreSQL Users</a></li>
176  <li><a href="#req_oracle">For Oracle Users</a></li>
177  <li><a href="#req_sqlite">For SQLite Users</a></li>
178  <li><a href="#req_modules">Required Perl Modules</a></li>
179  <li><a href="#req_optional_mod">Optional Perl Modules</a></li>
180  <li><a href="#req_apache">Optional Apache Modules</a></li>
181</ul>
182
183<h3 id="req_perl">Perl</h3>
184
185<p>Perl <span class="req_new">v5.10.1</span></p>
186
187[% INCLUDE db_req db='mysql' %]
188
189[% INCLUDE db_req db='pg' %]
190
191[% INCLUDE db_req db='oracle' %]
192
193[% INCLUDE db_req db='sqlite' %]
194
195<h3 id="req_modules">Required Perl Modules</h3>
196
197[% INCLUDE req_table reqs = REQUIRED_MODULES
198                     new = ['JSON-XS', 'Email-Sender']
199                     updated = ['DateTime', 'DateTime-TimeZone',
200                                'Template-Toolkit', 'URI'] %]
201
202<h3 id="req_optional_mod">Optional Perl Modules</h3>
203
204<p>The following perl modules, if installed, enable various
205  features of Bugzilla:</p>
206
207[% INCLUDE req_table reqs = OPTIONAL_MODULES
208                     new  = ['Cache-Memcached','File-Copy-Recursive']
209                     updated = ['Chart', 'Test-Taint']
210                     include_feature = 1 %]
211
212<h3 id="req_apache">Optional Apache Modules</h3>
213
214<p>If you are using Apache as your webserver, Bugzilla can
215  take advantage of some Apache features if you have the below Apache
216  modules installed and enabled.</p>
217
218<ul>
219  <li>mod_headers</li>
220  <li>mod_expires</li>
221  <li>mod_env</li>
222</ul>
223
224<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to
225  tell whether or not you have these modules installed, and it will tell
226  you.</p>
227
228
229<a name="v50_feat"></a>
230<h2 id="feat">New Features and Improvements</h2>
231
232<ul>
233  <li><a href="#feat_webservices">Improved WebServices</a></li>
234  <li><a href="#feat_caching_performance">Improved Caching using Memcached</a></li>
235  <li><a href="#feat_comment_tags">Abililty to Tag [% terms.Bug %] Comments</a></li>
236  <li><a href="#feat_bug_groups">Improved [% terms.Bug %] Group Membership Checking</a></li>
237  <li><a href="#feat_documentation">Improved Documentation for Users and Administrators</a></li>
238  <li><a href="#feat_other">Other Enhancements and Changes</a></li>
239</ul>
240
241<h3 id="feat_webservices">Improved WebServices</h3>
242
243<p>
244  This release has major improvements in the WebServices interface. One big
245  addition is a new REST-like endpoint alongside the existing XML-RPC and JSON-RPC
246  endpoints. This will allow clients to access Bugzilla data using standard HTTP
247  calls for easy development. <strong>Note:</strong> XML-RPC and JSON-RPC are
248  deprecated in favor of REST and will likely be removed in the Bugzilla 7.0 release.
249</p>
250<p>
251  Also API key support has been added so that API calls will no longer need to use
252  cookies or a user's login and password. Users can create a different API key for
253  each application and revoke API keys that have been compromised or are no longer
254  needed. The API key will simply be passed to each call as credentials.
255</p>
256<p>
257  Several methods have been added and existing ones improved to allow returning
258  data that was not available before such as <kbd>Group.get</kbd>. <kbd>B[%%]ug.search</kbd>
259  is now as full featured as the Advanced Query UI allowing for the same searches
260  to be executed. Attachment data such as flags and other metadata can now be
261  updated through the API. Other WebService changes are detailed
262  <a href="#feat_webservices_other">below</a>.
263</p>
264
265<h3 id="feat_caching_performance">Improved Caching using Memcached</h3>
266
267<p>
268  Bugzilla now has the ability to connect to a Memcached server running either
269  locally or on the network to allow fast access to different types of data.
270  This cuts down on the amount of database hits and can improve performance. Other
271  areas have been improved as well to take advantage of caching in memory for
272  objects that are retrieved multiple times during a request such as user data, etc.
273</p>
274
275<h3 id="feat_comment_tags">Ability to Tag [% terms.Bug %] Comments</h3>
276
277<p>
278  Users can add tags, visible to other users, to [% terms.bug %] comments. This
279  gives the users the ability to thread conversations, mark comments as spam,
280  identify important comments, etc. Users can hide comments that contain specific
281  tags if desired. The tag input field also supports autocompletion so commonly
282  used tags can be selected. Administrators can make specifically tagged comments
283  be automatically hidden from view.
284</p>
285
286<h3 id="feat_bug_groups">Improved [% terms.Bug %] Group Membership Checking</h3>
287
288<p>
289  In the past, Bugzilla restricted who can view [% terms.abug %] to everyone
290  who was a member of ALL the groups the [% terms.bug %] was in. That is, the
291  groups were ANDed together. This made some access control scenarios rather
292  difficult to achieve. So now, Bugzilla defaults to (and can be switched to,
293  in existing installations) a mode where the [% terms.bug %] can be viewed by
294  everyone who is a member of ANY group the [% terms.bug %] is in. That is, the
295  groups are ORed together. This give more flexibility in the way [% terms.bugs %]
296  are made private to specific groups of users.
297</p>
298<p>
299  <strong>Note:</strong> Group memberships for [% terms.bugs %] and users are
300  not changed at all when this setting is switched. When switching from AND to
301  OR, this means that [% terms.bugs %] may be more widely viewable than previously.
302  It is the responsibility of the administrator to make sure that no [% terms.bugs %]
303  are accidentally revealed to the wrong people when changing this setting.
304</p>
305
306<h3 id="feat_documentation">Improved Documentation for Users and Administrators</h3>
307
308<p>
309  The standard documentation that is shipped along with the Bugzilla code has been
310  rewritten and improved using the reStructuredText format. This allows the
311  documentation to be easily hosted at sites such as ReadTheDocs.org and can
312  also be more easily converted into different formats such as HTML and PDF.
313  A new section dedicated to the new REST WebService API has also been added,
314  significantly improving on the old WebService documentation.
315</p>
316
317<h3 id="feat_other">Other Enhancements and Changes</h3>
318
319<h4>Enhancements for Users</h4>
320
321<ul>
322  <li><strong>[% terms.Bugs %]:</strong> The deadline field is now visible to users
323    not in the the <kbd>timetracking</kbd> group.</li>
324  <li><strong>[% terms.Bugs %]:</strong> There is now a "Preview" mode when
325    creating a new comment that allows you to see how the comment will look
326    before committing to the database.</li>
327  <li><strong>[% terms.Bugs %]:</strong> The reporter is now allowed to enter
328    keywords at time of [% terms.bug %] creation.</li>
329  <li><strong>[% terms.Bugs %]:</strong> "See Also" now allows spaces as well as
330    commas to delimit multiple values.</li>
331  <li><strong>[% terms.Bugs %]:</strong> Auto linkification in comments of [% terms.bug %]
332    IDs and comment IDs has been improved.</li>
333  <li><strong>[% terms.Bugs %]:</strong> [% terms.Bugs %] can now have multiple
334    aliases assigned to them. Before each [% terms.bug %] could only have a single
335    value. Also, aliases are now visible in the browser's title bar.</li>
336  <li><strong>[% terms.Bugs %]:</strong> Users can now change the flags of multiple
337    [%+ terms.bugs %] at once using the mass-edit form.</li>
338  <li><strong>Charts and Reports:</strong> UTF-8 characters are now correctly
339    displayed in "New Charts" and graphical reports.</li>
340  <li><strong>Charts and Reports:</strong> Custom multi-select fields are now
341    available as report axis options. This makes them usable for categorizing
342    [%+ terms.bugs %] in reports.</li>
343  <li><strong>Email:</strong> You can now choose to not receive any mail at all
344    about a particular [% terms.bug %], even if you continue to have a role on
345    that [% terms.bug %] (e.g. reporter).</li>
346  <li><strong>Email:</strong> When adding or removing [% terms.abug %] as a
347    dependency, the summary of the [% terms.bug %] is included in the email
348    notification.</li>
349  <li><strong>Requests:</strong> <kbd>request.cgi</kbd> can now output results in
350    CSV format.</li>
351  <li><strong>Requests:</strong><kbd> X-Bugzilla-*</kbd> headers are now included
352    in flag notification emails.</li>
353  <li><strong>Searches:</strong> Some useful searches have been added to the
354    Bugzilla home page.</li>
355  <li><strong>Searches:</strong> Quicksearch now allows for use of comparison
356    operators such as !=, >=, >, &lt;, etc., in addition to substring searches.</li>
357  <li><strong>Searches:</strong> The "Blocks" and "Depends On" values can now be
358    displayed as columns in [% terms.abug %] list.</li>
359  <li><strong>Searches:</strong> The "is empty" and "is not empty" search operators
360    have been added to the Advanced Search UI. This allows searching for null
361    and not null values for certain fields.</li>
362</ul>
363
364<h4>Enhancements for Administrators and Developers</h4>
365
366<ul>
367  <li><strong>Administration:</strong> There are now <kbd>INTEGER</kbd> and
368    <kbd>DATE</kbd> custom field types.</li>
369  <li><strong>Administration:</strong> Filenames used to store product data for
370    "Old Charts" are now based on product IDs to avoid data loss when changing
371    product names.</li>
372  <li><strong>Administration:</strong> JavaScript and CSS files are now minified
373    and concatenated to improve page load performance. When changes are made,
374    <kbd>checksetup.pl</kbd> should be run to regenerate the combined files.</li>
375  <li><strong>[% terms.Bugs %]:</strong> Bugzilla now keeps track of the last
376    time each user visited (that is, loaded the show_bug page in a web browser)
377    each [% terms.bug %]. This could be useful for dashboards or API clients.</li>
378  <li><strong>Database:</strong> Text that contained unicode
379    supplementary characters (outside BMP) was cut off when using MySQL as backend.
380    This has been fixed to prevent data loss.</li>
381  <li><strong>Database:</strong> SSL connections are now possible when using
382    MySQL as backend.</li>
383  <li><strong>Database:</strong> For version 8.x of PostgreSQL, <kbd>plpgsql</kbd>
384    was not always installed by default and <kbd>checksetup.pl</kbd> would
385    generate an error. This has been fixed.</li>
386  <li><strong>Development:</strong> Bugzilla is now HTML5 compliant. As a
387    consequence, Internet Explorer 6 and 7 are no longer supported.</li>
388  <li><strong>Email:</strong> Email generation originally was done before the
389    jobqueue job was inserted. This is now delayed and done by
390    <kbd>jobqueue.pl</kbd> right before sending the email which can improve
391    responsiveness when processing [% terms.bug %] changes.</li>
392  <li><strong>Email:</strong> When a site administrator creates a new user, an
393    email is sent to the user.</li>
394  <li><strong>Email:</strong> For dependency email notifications, the header
395    <kbd>X-B[%%]ugzilla-Type: dep_changed</kbd> is set.</li>
396  <li><strong>Email:</strong> <kbd>whine.pl</kbd> emails now use
397    <kbd>DEFAULT_COLUMN_LIST</kbd> (the same default columns seen in the buglist
398    page) instead of hard coded column list.</li>
399  <li><strong>Security:</strong> Support for increased values for
400    <kbd>PASSWORD_SALT_LENGTH</kbd> without breaking compatibility with old
401    hashes.</li>
402</ul>
403
404<h4 id="feat_webservices_other">WebService Changes</h4>
405
406<ul>
407  <li><kbd>B[%%]ug.search</kbd> now allows for full search functionality
408    similar to what is possible using the Advanced Query UI.</li>
409  <li>Basic support for eTag headers has been added to all WebServices
410    to allow for better network performance.</li>
411  <li>Administrators can now change a parameter that filters all email
412    addresses returned in WebService calls similar to filtering that
413    happens in the web UI.</li>
414  <li>WebService calls now support use of API keys for authentication.
415    Usernames and passwords remain supported.</li>
416  <li>Invalid or expired authentication cookies and tokens now throw
417    errors instead of being silently ignored. <kbd>User.valid_login</kbd>
418    can be used to determine if they are still valid or not.</li>
419  <li>WebService calls that are used to create and update [% terms.bugs %]
420    and attachments now support setting and updating of flags.</li>
421  <li><kbd>B[%%]ug.update_attachment</kbd> can update an attachment's
422    metadata as well as its flags.</li>
423  <li>The <kbd>product</kbd> parameter for <kbd>B[%%]ug.possible_duplicates</kbd>
424    has been renamed to <kbd>products</kbd>.</li>
425  <li>Some compatibility fields included in returned data that were marked
426    to be removed in this release are now gone.</li>
427  <li><kbd>Group.get</kbd> has been added to get information about a group and
428    its members.</li>
429  <li><kbd>FlagType.get</kbd> has been added to get information about valid
430    flag types for a given product and component.</li>
431  <li>The deprecated <kbd>B[%%]ug.get_bugs</kbd>, <kbd>B[%%]ug.get_history</kbd>
432    and <kbd>Product.get_products</kbd> methods are no longer supported.
433    They have been renamed to <kbd>B[%%]ug.get</kbd>, <kbd>B[%%]ug.history</kbd>
434    and <kbd>Product.get</kbd> respectively.</li>
435</ul>
436
437<h2 id="code_changes">Code Changes Which May Affect Customizations and Extensions</h2>
438
439<ul>
440  <li>Support for CVS, Bonsai and LXR has been removed entirely when viewing
441    attachments. This means that the <kbd>cvsroot</kbd>, <kbd>cvsroot_get</kbd>,
442    <kbd>bonsai_url</kbd>, <kbd>lxr_url</kbd> and <kbd>lxr_root</kbd> parameters
443    are all gone, as well as <kbd>cvsbin</kbd> from the <kbd>localconfig</kbd>
444    file.</li>
445  <li>The <kbd>docs_urlbase</kbd> parameter has been removed. If documentation
446    has not been compiled locally, the "Help" links and other documentation links
447    will redirect to <a href="https://bugzilla.readthedocs.org">bugzilla.readthedocs.org</a>
448    automatically.</li>
449  <li>The <kbd>mostfreqthreshold</kbd> parameter has also been removed.</li>
450  <li>All extensions which define new public WebService methods must list them
451    in a <kbd>PUBLIC_METHODS</kbd> constant. Methods which are not listed there
452    will not be accessible remotely.</li>
453  <li><kbd>JSON::XS</kbd> is now used instead of <kbd>Data::Dumper</kbd> for
454    storage on configuration values in <kbd>data/params</kbd>. This should
455    improve performance when loading the file.</li>
456  <li>A new test has been added to check for reserved words in SQL schema.</li>
457  <li><kbd>Pod::Coverage</kbd> is now used to ensure subroutines are documented.</li>
458  <li>Bugzilla code now uses <kbd>use parent</kbd> instead of <kbd>use base</kbd>
459    in all places applicable.</li>
460  <li>A new hook called <kbd>cgi_headers</kbd> has been added to allow
461    customization of the HTTP headers returned.</li>
462  <li>A new hook called <kbd>user_check_account_creation</kbd> has been added
463    to add extra checks before accepting the creation of a new user account.</li>
464</ul>
465
466[% INCLUDE global/footer.html.tmpl %]
467
468[% BLOCK db_req %]
469  [% SET m = DB_MODULE.$db %]
470  <h3 id="req_[% db FILTER html %]">For [% m.name FILTER html %] Users</h3>
471
472  <ul>
473    <li>[% m.name FILTER html %]
474       [%+ '<span class="req_new">' IF db_new %]v[% m.db_version FILTER html %]
475       [% '</span>' IF db_new %]
476       </li>
477    <li><strong>perl module:</strong>
478      [%+ m.dbd.module FILTER html %]
479      [%+ '<span class="req_new">' IF dbd_new %]v[% m.dbd.version FILTER html %]
480      [% '</span>' IF dbd_new %]</li>
481  </ul>
482[% END %]
483
484
485[% BLOCK req_table %]
486  <table class="req_table">
487    <tr>
488      <th>Module</th> <th>Version</th>
489      [% IF include_feature %]
490        <th>Enables Feature</th>
491      [% END %]
492    </tr>
493    [% FOREACH req = reqs %]
494      <tr>
495        <td [% ' class="req_new"' IF new.contains(req.package) %]>
496          [%- req.module FILTER html %]</td>
497        <td [% ' class="req_new"' IF updated.contains(req.package)
498                                     OR new.contains(req.package) %]>
499          [%- IF req.version == 0 %]
500            (Any)
501          [% ELSE %]
502            [%- req.version FILTER html %]
503          [% END %]
504        </td>
505        [% IF include_feature %]
506          <td>[% req.feature.join(', ') FILTER html %]</td>
507        [% END %]
508      </tr>
509    [% END %]
510</table>
511[% END %]
512