[%# The contents of this file are subject to the Mozilla Public # License Version 1.1 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or # implied. See the License for the specific language governing # rights and limitations under the License. # # The Original Code is the Bugzilla Bug Tracking System. # # The Initial Developer of the Original Code is Everything Solved. # Portions created by Everything Solved are Copyright (C) 2006 # Everything Solved. All Rights Reserved. # # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> #%] [% PROCESS global/variables.none.tmpl %] [% INCLUDE global/header.html.tmpl title = "$terms.Bugzilla 3.4 Release Notes" style_urls = ['skins/standard/release-notes.css'] %] <h2>Table of Contents</h2> <ul class="bz_toc"> <li><a href="#v34_introduction">Introduction</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><a name="v34_introduction"></a>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><a name="v34_req">Minimum Requirements</a></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><a name="v34_req_perl"></a>Perl</h3> <p>Perl v5.8.1</p> [% INCLUDE db_req db='mysql' %] [% INCLUDE db_req db='pg' %] [% INCLUDE db_req db='oracle' %] <h3><a name="v34_req_modules"></a>Required Perl Modules</h3> [% INCLUDE req_table reqs = REQUIRED_MODULES new = ['URI', 'DateTime', 'DateTime-TimeZone', 'Digest-SHA'] updated = ['Template-Toolkit'] %] <h3><a name="v34_req_optional_mod"></a>Optional Perl Modules</h3> <p>The following perl modules, if installed, enable various features of [% terms.Bugzilla %]:</p> [% INCLUDE req_table reqs = OPTIONAL_MODULES new = ['TheSchwartz', 'Daemon-Generic'] updated = [] include_feature = 1 %] <h2><a name="v34_feat"></a>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><a name="v34_feat_enter">Simple [% terms.Bug %] Filing</a></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><a name="v34_feat_index">New Home Page</a></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><a name="v34_feat_spam"></a>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><a name="v34_feat_urls"></a>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><a name="v34_feat_async">Asynchronous Email Sending</a></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><a name="v34_feat_tz">Dates and Times Displayed In User's Time Zone</a></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><a name="v34_feat_vis">Custom Fields That Only Appear When Another Field Has a Particular Value</a></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><a name="v34_feat_vals">Custom Fields Whose List of Values Change Depending on the Value of Another Field</a></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><a name="v34_feat_bugid">New Custom Field Type: [% terms.Bug %] ID</a></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><a name="v34_feat_see">"See Also" Field</a></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><a name="v34_feat_cols">Re-order Columns in Search Results</a></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><a name="v34_feat_desc">Search Descriptions</a></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><a name="v34_feat_other"></a>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><a name="v34_issues">Outstanding Issues</a></h2> <ul> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=423439"> [%- terms.Bug %] 423439</a>: Tabs in comments will be converted to four spaces, due to a b<!-- -->ug in Perl as of Perl 5.8.8.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621"> [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is in use on [% terms.bugs %], you will need to rebuild the "keyword cache" by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing the option to rebuild the cache when it asks. Otherwise keywords may not show up properly in search results.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822"> [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at the same time, there is no "mid-air collision" protection.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230"> [%- terms.Bug %] 276230</a>: The support for restricting access to particular Categories of New Charts is not complete. You should treat the 'chartgroup' Param as the only access mechanism available.<br> However, charts migrated from Old Charts will be restricted to the groups that are marked MANDATORY for the corresponding Product. There is currently no way to change this restriction, and the groupings will not be updated if the group configuration for the Product changes.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370370"> [%- terms.Bug %] 370370</a>: mod_perl support is currently not working on Windows machines.</li> </ul> <h2><a name="v34_upgrading">Notes On Upgrading From a Previous Version</a></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><a name="v34_code_changes"></a>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><a name="v34_previous"></a>[% 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><a name="v32_introduction"></a>Introduction</h2> <p>Welcome to [% terms.Bugzilla %] 3.2! This is our first major feature release since [% terms.Bugzilla %] 3.0, and it brings a lot of great improvements and polish to the [% terms.Bugzilla %] experience.</p> <p>If you're upgrading, make sure to read <a href="#v32_upgrading">How to Upgrade From An Older Version</a>. If you are upgrading from a release before 3.0, make sure to read the release notes for all the <a href="#v32_previous">previous versions</a> in between your version and this one, <strong>particularly the "Notes For Upgraders" section of each version's release notes</strong>.</p> <h2><a name="v32_point">Updates in this 3.2.x Release</a></h2> <p>This section describes what's changed in the most recent b<!-- -->ug-fix releases of [% terms.Bugzilla %] after 3.2. We only list the most important fixes in each release. If you want a detailed list of <em>everything</em> that's changed in each version, you should use our <a href="http://www.bugzilla.org/status/changes.html">Change Log Page</a>.</p> <h3>3.2.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. <code>checksetup.pl</code> now checks for these bad versions and will reject them. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468009">[% terms.Bug %] 468009</a>)</li> <li>The font sizes in various places were too small, when using the Classic skin. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=469136">[% terms.Bug %] 469136</a>)</li> </ul> <h2><a name="v32_security">Security Fixes In This 3.2.x Release</a></h2> <h3>3.2.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><a name="v32_req"></a>Minimum Requirements</h2> <p>Any requirements that are new since 3.0.5 will look like <span class="req_new">this</span>.</p> <ul> <li><a href="#v32_req_perl">Perl</a></li> <li><a href="#v32_req_mysql">For MySQL Users</a></li> <li><a href="#v32_req_pg">For PostgreSQL Users</a></li> <li><a href="#v32_req_oracle">For Oracle Users</a></li> <li><a href="#v32_req_modules">Required Perl Modules</a></li> <li><a href="#v32_req_optional_mod">Optional Perl Modules</a></li> </ul> <h3><a name="v32_req_perl"></a>Perl</h3> <p>Perl <span class="req_new">v<strong>5.8.1</strong></span></p> <h3><a name="v32_req_mysql"></a>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><a name="v32_req_pg"></a>For PostgreSQL Users</h3> <ul> <li>PostgreSQL v8.00.0000</li> <li><strong>perl module:</strong> DBD::Pg v1.45</li> </ul> <h3><a name="v32_req_oracle"></a>Email Addresses Hidden From Logged-Out UsersFor Oracle Users</h3> <ul> <li>Oracle v10.02.0</li> <li><strong>perl module:</strong> DBD::Oracle v1.19</li> </ul> <h3><a name="v32_req_modules"></a>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><a name="v32_req_optional_mod"></a>Optional Perl Modules</h3> <p>The following perl modules, if installed, enable various features of [% terms.Bugzilla %]:</p> <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><a name="v32_feat"></a>New Features and Improvements</h2> <ul> <li><a href="#v32_feat_ui">Major UI Improvements</a></li> <li><a href="#v32_feat_skin">New Default Skin: Dusk</a></li> <li><a href="#v32_feat_status">Custom Status Workflow</a></li> <li><a href="#v32_feat_fields">New Custom Field Types</a></li> <li><a href="#v32_feat_install">Easier Installation</a></li> <li><a href="#v32_feat_oracle">Experimental Oracle Support</a></li> <li><a href="#v32_feat_utf8">Improved UTF-8 Support</a></li> <li><a href="#v32_feat_grcons">Group Icons</a></li> <li><a href="#v32_feat_other">Other Enhancements and Changes</a></li> </ul> <h3><a name="v32_feat_ui"></a>Major UI Improvements</h3> <p>[% terms.Bugzilla %] 3.2 has had some UI assistance from the NASA Human-Computer Interaction department and the new <a href="http://wiki.mozilla.org/Bugzilla:UE">[% terms.Bugzilla %] User Interface Team</a>.</p> <p>In particular, you will notice a massively redesigned [% terms.bug %] editing form, in addition to our <a href="#v32_feat_skin">new skin</a>.</p> <h3><a name="v32_feat_skin"></a>New Default Skin: Dusk</h3> <p>[% terms.Bugzilla %] 3.2 now ships with a skin called "Dusk" that is a bit more colorful than old default "Classic" skin.</p> <p>Upgrading installations will still default to the "Classic" skin--administrators can change the default in the Default Preferences control panel. Users can also choose to use the old skin in their Preferences (or using the View :: Page Style menu in Firefox).</p> <p>The changes that [% terms.Bugzilla %] required for Dusk made [%+ terms.Bugzilla %] much easier to skin. See the <a href="http://wiki.mozilla.org/Bugzilla:Addons#Skins">Addons page</a> for additional skins, or try making your own!</p> <h3><a name="v32_feat_status"></a>Custom Status Workflow</h3> <p>You can now customize the list of statuses in [% terms.Bugzilla %], and transitions between them.</p> <p>You can also specify that a comment must be made on certain transitions.</p> <h3><a name="v32_feat_fields"></a>New Custom Field Types</h3> <p>[% terms.Bugzilla %] 3.2 has support for three new types of custom fields:</p> <ul> <li>Large Text: Adds a multi-line textbox to your [% terms.bugs %].</li> <li>Multiple Selection Box: Adds a box that allows you to choose multiple items from a list.</li> <li>Date/Time: Displays a date and time, along with a JavaScript calendar popup to make picking a date easier.</li> </ul> <h3><a name="v32_feat_install"></a>Easier Installation</h3> <p>[% terms.Bugzilla %] now comes with a script called <kbd>install-module.pl</kbd> that can automatically download and install all of the required Perl modules for [% terms.Bugzilla %]. It stores them in a directory inside your [% terms.Bugzilla %] installation, so you can use it even if you don't have administrator-level access to your machine, and without modifying your main Perl install.</p> <p><kbd>checksetup.pl</kbd> will print out instructions for using <kbd>install-module.pl</kbd>, or you can read its <a href="[% docs_urlbase FILTER html %]api/install-module.html">documentation</a>.</p> <h3><a name="v32_feat_oracle"></a>Experimental Oracle Support</h3> <p>[% terms.Bugzilla %] 3.2 contains experimental support for using Oracle as its database. Some features of [% terms.Bugzilla %] are known to be broken on Oracle, but hopefully will be working by our next major release.</p> <p>The [% terms.Bugzilla %] Project, as an open-source project, of course does not recommend the use of proprietary database solutions. However, if your organization requires that you use Oracle, this will allow you to use [% terms.Bugzilla %]!</p> <p>The [% terms.Bugzilla %] Project thanks Oracle Corp. for their extensive development contributions to [% terms.Bugzilla %] which allowed this to happen!</p> <h3><a name="v32_feat_utf8"></a>Improved UTF-8 Support</h3> <p>[% terms.Bugzilla %] 3.2 now has advanced UTF-8 support in its code, including correct handling for truncating and wrapping multi-byte languages. Major issues with multi-byte or unusual languages are now resolved, and [% terms.Bugzilla %] should now be usable by users in every country with little (or at least much less) customization.</p> <h3><a name="v32_feat_grcons"></a>Group Icons</h3> <p>Administrators can now specify that users who are in certain groups should have an icon appear next to their name whenever they comment. This is particularly useful for distinguishing developers from [%+ terms.bug %] reporters.</p> <h3><a name="v32_feat_other"></a>Other Enhancements and Changes</h3> <p>These are either minor enhancements, or enhancements that have very short descriptions. Some of these are very useful, though!</p> <h4>Enhancements For Users</h4> <ul> <li><strong>[% terms.Bugs %]</strong>: You can now reassign [%+ terms.abug %] at the same time as you are changing its status.</li> <li><strong>[% terms.Bugs %]</strong>: When entering [% terms.abug %], you will now see the description of a component when you select it.</li> <li><strong>[% terms.Bugs %]</strong>: The [% terms.bug %] view now contains some <a href="http://microformats.org/about/">Microformats</a>, most notably for users' names and email addresses.</li> <li><strong>[% terms.Bugs %]</strong>: You can now remove a QA Contact from [% terms.abug %] simply by clearing the QA Contact field.</li> <li><strong>[% terms.Bugs %]</strong>: There is now a user preference that will allow you to exclude the quoted text when replying to comments.</li> <li><strong>[% terms.Bugs %]</strong>: You can now expand or collapse individual comments in the [% terms.bug %] view.</li> <li><strong>Attachments</strong>: There is now "mid-air collision" protection when editing attachments.</li> <li><strong>Attachments</strong>: Patches in the Diff Viewer now show line numbers (<a href="https://bugzilla.mozilla.org/attachment.cgi?id=327546">Example</a>).</li> <li><strong>Attachments</strong>: After creating or updating an attachment, you will be immediately shown the [% terms.bug %] that the attachment is on.</li> <li><strong>Search</strong>: You can now reverse the sort of [%+ terms.abug %] list by clicking on a column header again.</li> <li><strong>Search</strong>: Atom feeds of [% terms.bug %] lists now contain more fields.</li> <li><strong>Search</strong>: QuickSearch now supports searching flags and groups. It also now includes the OS field in the list of fields it searches by default.</li> <li><strong>Search</strong>: "Help" text can now appear on query.cgi for Internet Explorer and other non-Firefox browsers. (It always could appear for Firefox.)</li> <li>[% terms.Bugzilla %] now ships with an icon that will show up next to the URL in most browsers. If you want to replace it, it's in <kbd>images/favicon.ico</kbd>.</li> <li>You can now set the Deadline when using "Change Several [%+ terms.Bugs %] At Once"</li> <li><strong>Saved Searches</strong> now save their column list, so if you customize the list of columns and save your search, it will always contain those columns.</li> <li><strong>Saved Searches</strong>: When you share a search, you can now see how many users have subscribed to it, on <kbd>userprefs.cgi</kbd>.</li> <li><strong>Saved Searches</strong>: You can now see what group a shared search was shared to, on the list of available shared searches in <kbd>userprefs.cgi</kbd>.</li> <li><strong>Flags</strong>: If your installation uses drop-down user lists, the flag requestee box will now contain only users who are actually allowed to take requests.</li> <li><strong>Flags</strong>: If somebody makes a request to you, and you change the requestee to somebody else, the requester is no longer set to you. In other words, you can "redirect" requests and maintain the original requester.</li> <li><strong>Flags</strong>: Emails about flags now will thread properly in email clients to be a part of [% terms.abug %]'s thread.</li> <li>When using <kbd>email_in.pl</kbd>, you can now add users to the CC list by just using <kbd>@cc</kbd> as the field name.</li> <li>Many pages (particularly administrative pages) now contain links to the relevant section of the [% terms.Bugzilla %] Guide, so you can read the documentation for that page.</li> <li>Dependency Graphs should render more quickly, as they now (by default) only include the same [% terms.bugs %] that you'd see in the dependency tree.</li> </ul> <h4>Enhancements For Administrators</h4> <ul> <li><strong>Admin UI</strong>: Instead of having the Administration Control Panel links in the footer, there is now just one link called "Administration" that takes you to a page that links to all the administrative controls for [% terms.Bugzilla %].</li> <li><strong>Admin UI</strong>: Administrative pages no longer display confirmation pages, instead they redirect you to some useful page and display a message about what changed.</li> <li><strong>Admin UI</strong>: The interface for editing group inheritance in <kbd>editgroups.cgi</kbd> is much clearer now.</li> <li><strong>Admin UI</strong>: When editing a user, you can now see all the components where that user is the Default Assignee or Default QA Contact.</li> <li><strong>Email</strong>: For installations that use SMTP to send mail (as opposed to Sendmail), [%+ terms.Bugzilla %] now supports SMTP Authentication, so that it can log in to your mail server before sending messages.</li> <li><strong>Email</strong>: Using the "Test" mail delivery method now creates a valid mbox file to make testing easier.</li> <li><strong>Authentication</strong>: [% terms.Bugzilla %] now correctly handles LDAP records which contain multiple email addresses. (The first email address in the list that is a valid [% terms.Bugzilla %] account will be used, or if this is a new user, the first email address in the list will be used.)</li> <li><strong>Authentication</strong>: [% terms.Bugzilla %] can now take a list of LDAP servers to try in order until it gets a successful connection.</li> <li><strong>Authentication</strong>: [% terms.Bugzilla %] now supports RADIUS authentication.</li> <li><strong>Security</strong>: The login cookie is now created as "HTTPOnly" so that it can't be read by possibly malicious scripts. Also, if SSL is enabled on your installation, the login cookie is now only sent over SSL connections.</li> <li><strong>Security</strong>: The <code>ssl</code> parameter now protects every page a logged-in user accesses, when set to "authenticated sessions." Also, SSL is now enforced appropriately in the WebServices interface when the parameter is set.</li> <li><strong>Database</strong>: [% terms.Bugzilla %] now uses transactions in the database instead of table locks. This should generally improve performance with many concurrent users. It also means if there is an unexpected error in the middle of a page, all database changes made during that page will be rolled back.</li> <li><strong>Database</strong>: You no longer have to set <code>max_packet_size</code> in MySQL to add large attachments. However, you may need to set it manually if you restore a mysqldump into your database.</li> <li>New WebService functions: <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html">B<!-- -->ug.add_comment</a> and <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bugzilla.html">Bugzilla.extensions</a>.</li> <li>You can now delete custom fields, but only if they have never been set on any [% terms.bug %].</li> <li>There is now a <kbd>--reset-password</kbd> argument to <kbd>checksetup.pl</kbd> that allows you to reset a user's password from the command line.</li> <li>There is now a script called <kbd>sanitycheck.pl</kbd> that you can run from the command line. It works just like <kbd>sanitycheck.cgi</kbd>. By default, it only outputs anything if there's an error, so it's ideal for administrators who want to run it nightly in a cron job.</li> <li>The <kbd>strict_isolation</kbd> parameter now prevents you from setting users who cannot see [% terms.abug %] as a CC, Assignee, or QA Contact. Previously it only prevented you from adding users who could not <em>edit</em> the [% terms.bug %].</li> <li>Extensions can now add their own headers to the HTML <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><a name="v32_issues"></a>Outstanding Issues</h2> <ul> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=423439"> [%- terms.Bug %] 423439</a>: Tabs in comments will be converted to four spaces, due to a b<!-- -->ug in Perl as of Perl 5.8.8.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621"> [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is in use on [% terms.bugs %], you will need to rebuild the "keyword cache" by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing the option to rebuild the cache when it asks. Otherwise keywords may not show up properly in search results.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822"> [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at the same time, there is no "mid-air collision" protection.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230"> [%- terms.Bug %] 276230</a>: The support for restricting access to particular Categories of New Charts is not complete. You should treat the 'chartgroup' Param as the only access mechanism available.<br> However, charts migrated from Old Charts will be restricted to the groups that are marked MANDATORY for the corresponding Product. There is currently no way to change this restriction, and the groupings will not be updated if the group configuration for the Product changes.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370370"> [%- terms.Bug %] 370370</a>: mod_perl support is currently not working on Windows machines.</li> </ul> <h2><a name="v32_upgrading"></a>How to Upgrade From An Older Version</h2> <h3><a name="v32_upgrading_notes"></a>Notes For Upgraders</h3> <ul> <li>If you upgrade by CVS, the <kbd>extensions</kbd> and <kbd>skins/contrib</kbd> directories are now in CVS instead of being created by <kbd>checksetup.pl</kbd> If you do a <kbd>cvs update</kbd> from 3.0, you will be told that your directories are "in the way" and you should delete (or move) them and then do <kbd>cvs update</kbd> again. Also, the <kbd>docs</kbd> directory has been restructured and after you <kbd>cvs update</kbd> you can delete the <kbd>docs/html</kbd>, <kbd>docs/pdf</kbd>, <kbd>docs/txt</kbd>, and <kbd>docs/xml</kbd> directories.</li> <li>If you are using MySQL, you should know that [% terms.Bugzilla %] now uses InnoDB for all tables. <kbd>checksetup.pl</kbd> will convert your tables automatically, but if you have InnoDB disabled, the upgrade will not be able to complete (and <kbd>checksetup.pl</kbd> will tell you so).</li> <li><strong>You should also read the <a href="#v30_upgrading_notes">[% terms.Bugzilla %] 3.0 Notes For Upgraders section</a> of the <a href="#v32_previous">previous release notes</a> if you are upgrading from a version before 3.0.</strong></li> </ul> <h3>Steps For Upgrading</h3> <p>Once you have read the notes above, see the <a href="[% docs_urlbase FILTER html %]upgrade.html">Upgrading documentation</a> for instructions on how to upgrade.</p> <h2><a name="v32_code_changes"></a>Code Changes Which May Affect Customizations</h2> <ul> <li><a href="#v32_code_hooks">More Hooks!</a></li> <li><a href="#v32_code_search">Search.pm Rearchitecture</a></li> <li><a href="#v32_code_lib">lib Directory</a></li> <li><a href="#v32_code_other">Other Changes</a></li> </ul> <h3><a name="v32_code_hooks"></a>More Hooks!</h3> <p>There are more code hooks in 3.2 than there were in 3.0. See the documentation of <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a> for more details.</p> <h3><a name="v32_code_search"></a>Search.pm Rearchitecture</h3> <p><kbd>Bugzilla/Search.pm</kbd> has been heavily modified, to be much easier to read and use. It contains mostly the same code as it did in 3.0, but it has been moved around and reorganized significantly.</p> <h3><a name="v32_code_lib"></a>lib Directory</h3> <p>As part of implementing <a href="#v32_feat_install">install-module.pl</a>, [%+ terms.Bugzilla %] was given a local <kbd>lib</kbd> directory which it searches for modules, in addition to the standard system path.</p> <p>This means that all [% terms.Bugzilla %] scripts now start with <code>use lib qw(. lib);</code> as one of the first lines.</p> <h3><a name="v32_code_other"></a>Other Changes</h3> <ul> <li>You should now be using <code>get_status('NEW')</code> instead of <code>status_descs.NEW</code> in templates.</li> <li>The <code>[%# version = 1.0 %]</code> comment at the top of every template file has been removed.</li> </ul> <h1><a name="v32_previous"></a>[% terms.Bugzilla %] 3.0.x Release Notes</h1> <h2>Table of Contents</h2> <ul class="bz_toc"> <li><a href="#v30_introduction">Introduction</a></li> <li><a href="#v30_point">Updates In This 3.0.x Release</a></li> <li><a href="#v30_req">Minimum Requirements</a></li> <li><a href="#v30_feat">New Features and Improvements</a></li> <li><a href="#v30_issues">Outstanding Issues</a></li> <li><a href="#v30_security">Security Fixes In This Release</a></li> <li><a href="#v30_upgrading">How to Upgrade From An Older Version</a></li> <li><a href="#v30_code_changes">Code Changes Which May Affect Customizations</a></li> <li><a href="#v30_previous">Release Notes for Previous Versions</a></li> </ul> <h2><a name="v30_introduction"></a>Introduction</h2> <p>Welcome to [% terms.Bugzilla %] 3.0! It's been over eight years since we released [% terms.Bugzilla %] 2.0, and everything has changed since then. Even just since our previous release, [% terms.Bugzilla %] 2.22, we've added a <em>lot</em> of new features. So enjoy the release, we're happy to bring it to you.</p> <p>If you're upgrading, make sure to read <a href="#v30_upgrading">How to Upgrade From An Older Version</a>. If you are upgrading from a release before 2.22, make sure to read the release notes for all the <a href="#v30_previous">previous versions</a> in between your version and this one.</p> <h2><a name="v30_point"></a>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>checksetup.pl now handles UTF-8 conversion more reliably during upgrades. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374951">[% terms.Bug %] 374951</a>)</li> <li>Comments written in CJK languages are now correctly word-wrapped. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=388723">[% terms.Bug %] 388723</a>)</li> <li>All emails will now be sent in the correct language, when the user has chosen a language for emails. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=405946">[% terms.Bug %] 405946</a>) <li>On Windows, temporary files created when uploading attachments are now correctly deleted when the upload is complete. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=414002">[% terms.Bug %] 414002</a>)</li> <li><kbd>checksetup.pl</kbd> now prints correct installation instructions for Windows users using Perl 5.10. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=414430">[% terms.Bug %] 414430</a>) </ul> <p>See also the <a href="#v30_security">Security Advisory</a> section for information about security issues fixed in this release.</p> <h3>3.0.3</h3> <ul> <li>mod_perl no longer compiles [% terms.Bugzilla %]'s code for each Apache process individually. It now compiles code only once and shares it among each Apache process. This greatly improves performance and highly decreases the memory footprint. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=398241">[% terms.Bug %] 398241</a>)</li> <li>You can now search for '---' (without quotes) in versions and milestones. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=362436">[% terms.Bug %] 362436</a>)</li> <li>[% terms.Bugzilla %] should no longer break lines unnecessarily in email subjects. This was causing trouble with some email clients. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374424">[% terms.Bug %] 374424</a>)</li> <li>If you had selected "I'm added to or removed from this capacity" option for the "CC" role in your email preferences, you wouldn't get mail when more than one person was added to the CC list at once. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=394796">[% terms.Bug %] 394796</a>)</li> <li>Deleting a user account no longer deletes whines from another user who has the deleted account as addressee. The schedule is simply removed, but the whine itself is left intact. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=395924">[% terms.Bug %] 395924</a>)</li> <li><kbd>contrib/merge-users.pl</kbd> now correctly merges all required fields when merging two user accounts. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=400160">[% terms.Bug %] 400160</a>)</li> <li>[% terms.Bugzilla %] no longer requires Apache::DBI to run under mod_perl. It caused troubles such as lost connections with the DB and didn't give any important performance gain. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=408766">[% terms.Bug %] 408766</a>)</li> </ul> <h3>3.0.2</h3> <ul> <li>[% terms.Bugzilla %] should now work on Perl 5.9.5 (and thus the upcoming Perl 5.10.0). (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=390442">[% terms.Bug %] 390442</a>)</li> </ul> <p>See also the <a href="#v30_security">Security Advisory</a> section for information about an important security issue fixed in this release.</p> <h3>3.0.1</h3> <ul> <li>For users of Firefox 2, the <code>show_bug.cgi</code> user interface should no longer "collapse" after you modify [% 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><a name="v30_req"></a>Minimum Requirements</h2> <p>Any requirements that are new since 2.22 will look like <span class="req_new">this</span>.</p> <ul> <li><a href="#v30_req_perl">Perl</a></li> <li><a href="#v30_req_mysql">For MySQL Users</a></li> <li><a href="#v30_req_pg">For PostgreSQL Users</a></li> <li><a href="#v30_req_modules">Required Perl Modules</a></li> <li><a href="#v30_req_optional_mod">Optional Perl Modules</a></li> </ul> <h3><a name="v30_req_perl"></a>Perl</h3> <ul> <li>Perl <span class="req_new">v<strong>5.8.0</strong></span> (non-Windows platforms)</li> <li>Perl v<strong>5.8.1</strong> (Windows platforms)</li> </ul> <h3><a name="v30_req_mysql"></a>For MySQL Users</h3> <ul> <li>MySQL <span class="req_new">v4.1.2</span></li> <li><strong>perl module:</strong> DBD::mysql v2.9003</li> </ul> <h3><a name="v30_req_pg"></a>For PostgreSQL Users</h3> <ul> <li>PostgreSQL v8.00.0000</li> <li><strong>perl module:</strong> DBD::Pg v1.45</li> </ul> <h3><a name="v30_req_modules"></a>Required Perl Modules</h3> <table class="req_table" border="0" cellspacing="0" cellpadding="0"> <tr> <th>Module</th> <th>Version</th> </tr> <tr><td>CGI</td> <td>2.93</td> </tr> <tr> <td>Date::Format</td> <td>2.21</td> </tr> <tr> <td>DBI</td> <td class="req_new">1.41</td> </tr> <tr> <td>File::Spec</td> <td>0.84</td> </tr> <tr> <td>Template</td> <td>2.12</td> </tr> <tr> <td class="req_new">Email::Send</td> <td class="req_new">2.00</td> </tr> <tr> <td>Email::MIME</td> <td>1.861</td> </tr> <tr> <td class="req_new">Email::MIME::Modifier</td> <td class="req_new">1.442</td> </tr> </table> <h3><a name="v30_req_optional_mod"></a>Optional Perl Modules</h3> <p>The following perl modules, if installed, enable various features of [% terms.Bugzilla %]:</p> <table class="req_table" border="0" cellspacing="0" cellpadding="0"> <tr> <th>Module</th> <th>Version</th> <th>Enables Feature</th> </tr> <tr> <td class="req_new">LWP::UserAgent</td> <td class="req_new">(Any)</td> <td>Automatic Update Notifications</td> </tr> <tr> <td>Template::Plugin::GD::Image</td> <td>(Any)</td> <td>Graphical Reports</td> </tr> <tr> <td>GD::Graph</td> <td>(Any)</td> <td>Graphical Reports</td> </tr> <tr> <td>GD::Text</td> <td>(Any)</td> <td>Graphical Reports</td> </tr> <tr> <td>GD</td> <td>1.20</td> <td>Graphical Reports, New Charts, Old Charts</td> </tr> <tr> <td class="req_new">Email::MIME::Attachment::Stripper</td> <td class="req_new">(Any)</td> <td>Inbound Email</td> </tr> <tr> <td class="req_new">Email::Reply</td> <td class="req_new">(Any)</td> <td>Inbound Email</td> </tr> <tr> <td>Net::LDAP</td> <td>(Any)</td> <td>LDAP Authentication</td> </tr> <tr> <td>HTML::Parser</td> <td>3.40</td> <td>More HTML in Product/Group Descriptions</td> </tr> <tr> <td>HTML::Scrubber</td> <td>(Any)</td> <td>More HTML in Product/Group Descriptions</td> </tr> <tr> <td>XML::Twig</td> <td>(Any)</td> <td>Move [% terms.Bugs %] Between Installations</td> </tr> <tr> <td>MIME::Parser</td> <td>5.406</td> <td>Move [% terms.Bugs %] Between Installations</td> </tr> <tr> <td>Chart::Base</td> <td>1.0</td> <td>New Charts, Old Charts</td> </tr> <tr> <td>Image::Magick</td> <td>(Any)</td> <td>Optionally Convert BMP Attachments to PNGs</td> </tr> <tr> <td>PatchReader</td> <td>0.9.4</td> <td>Patch Viewer</td> </tr> <tr> <td class="req_new">SOAP::Lite</td> <td class="req_new">(Any)</td> <td>XML-RPC Interface</td> </tr> <tr> <td class="req_new">mod_perl2</td> <td class="req_new">1.999022</td> <td>mod_perl</td> </tr> <tr> <td> CGI</td> <td>3.11</td> <td>mod_perl</td> </tr> </table> <h2><a name="v30_feat"></a>New Features and Improvements</h2> <ul> <li><a href="#v30_feat_cf">Custom Fields</a></li> <li><a href="#v30_feat_mp">mod_perl Support</a></li> <li><a href="#v30_feat_sq">Shared Saved Searches</a></li> <li> <a href="#v30_feat_afn">Attachments and Flags on New [% terms.Bugs %]</a> </li> <li><a href="#v30_feat_cr">Custom Resolutions</a></li> <li><a href="#v30_feat_ppp">Per-Product Permissions</a></li> <li><a href="#v30_feat_ui">User Interface Improvements</a></li> <li><a href="#v30_feat_xml">XML-RPC Interface</a></li> <li><a href="#v30_feat_skin">Skins</a></li> <li><a href="#v30_feat_sbu">Unchangeable Fields Appear Unchangeable</a></li> <li><a href="#v30_feat_et">All Emails in Templates</a></li> <li><a href="#v30_feat_df">No More Double-Filed [% terms.Bugs %]</a></li> <li><a href="#v30_feat_cc">Default CC List for Components</a></li> <li><a href="#v30_feat_emi">File/Modify [% terms.Bugs %] By Email</a></li> <li><a href="#v30_feat_gw">Users Who Get All [% terms.Bug %] Notifications</a></li> <li><a href="#v30_feat_utf8">Improved UTF-8 Support</a></li> <li><a href="#v30_feat_upda">Automatic Update Notification</a></li> <li><a href="#v30_feat_welc">Welcome Page for New Installs</a></li> <li><a href="#v30_feat_other">Other Enhancements and Changes</a></li> </ul> <h3><a name="v30_feat_cf"></a>Custom Fields</h3> <p>[% terms.Bugzilla %] now includes very basic support for custom fields.</p> <p>Users in the <kbd>admin</kbd> group can add plain-text or drop-down custom fields. You can edit the values available for drop-down fields using the "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><a name="v30_feat_mp"></a>mod_perl Support</h3> <p>[% terms.Bugzilla %] 3.0 supports mod_perl, which allows for extremely enhanced page-load performance. mod_perl trades memory usage for performance, allowing near-instantaneous page loads, but using much more memory.</p> <p>If you want to enable mod_perl for your [% terms.Bugzilla %], we recommend a minimum of 1.5GB of RAM, and for a site with heavy traffic, 4GB to 8GB.</p> <p>If performance isn't that critical on your installation, you don't have the memory, or you are running some other web server than Apache, [% terms.Bugzilla %] still runs perfectly as a normal CGI application, as well.</p> <h3><a name="v30_feat_sq"></a>Shared Saved Searches</h3> <p>Users can now choose to "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><a name="v30_feat_afn"></a>Attachments and Flags on New [% terms.Bugs %]</h3> <p>You can now add an attachment while you are filing a new [% terms.bug %].</p> <p>You can also set flags on the [% terms.bug %] and on attachments, while filing a new [% terms.bug %].</p> <h3><a name="v30_feat_cr"></a>Custom Resolutions</h3> <p>You can now customize the list of resolutions available in [% terms.Bugzilla %], including renaming the default resolutions.</p> <p>The resolutions <code>FIXED</code>, <code>DUPLICATE</code> and <code>MOVED</code> have a special meaning to [% terms.Bugzilla %], though, and cannot be renamed or deleted.</p> <h3><a name="v30_feat_ppp"></a>Per-Product Permissions</h3> <p>You can now grant users <kbd>editbugs</kbd> and <kbd>canconfirm</kbd> for only certain products. You can also grant users <kbd>editcomponents</kbd> on a product, which means they will be able to edit that product including adding/removing components and other product-specific controls.</p> <h3><a name="v30_feat_ui"></a>User Interface Improvements</h3> <p>There has been some work on the user interface for [% terms.Bugzilla %] 3.0, including:</p> <ul> <li>There is now navigation and a search box a the <em>top</em> of each page, in addition to the bar at the bottom of the page.</li> <li>A re-designed "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><a name="v30_feat_xml"></a>XML-RPC Interface</h3> <p>[% terms.Bugzilla %] now has a Web Services interface using the XML-RPC protocol. It can be accessed by external applications by going to the <kbd>xmlrpc.cgi</kbd> on your installation.</p> <p>Documentation can be found in the <a href="[% docs_urlbase FILTER html %]api/">[% terms.Bugzilla %] API Docs</a>, in the various <kbd>Bugzilla::WebService</kbd> modules.</p> <h3><a name="v30_feat_skin"></a>Skins</h3> <p>[% terms.Bugzilla %] can have multiple "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><a name="v30_feat_sbu"></a>Unchangeable Fields Appear Unchangeable</h3> <p>As long as you are logged in, when viewing [% terms.abug %], if you cannot change a field, it will not look like you can change it. That is, the value will just appear as plain text.</p> <h3><a name="v30_feat_et"></a>All Emails in Templates</h3> <p>All outbound emails are now controlled by the templating system. What used to be the <code>passwordmail</code>, <code>whinemail</code>, <code>newchangedmail</code> and <code>voteremovedmail</code> parameters are now all templates in the <kbd>template/</kbd> directory.</p> <p>This means that it's now much easier to customize your outbound emails, and it's also possible for localizers to have more localized emails as part of their language packs, if they want.</p> <p>We also added a <code>mailfrom</code> parameter to let you set who shows up in the <code>From</code> field on all emails that [%+ terms.Bugzilla %] sends.</p> <h3><a name="v30_feat_df"></a>No More Double-Filed [% terms.Bugs %]</h3> <p>Users of [% terms.Bugzilla %] will sometimes accidentally submit [% terms.abug %] twice, either by going back in their web browser, or just by refreshing a page. In the past, this could file the same [% terms.bug %] twice (or even three times) in a row, irritating developers and confusing users.</p> <p>Now, if you try to submit [% terms.abug %] twice from the same screen (by going back or by refreshing the page), [% terms.Bugzilla %] will warn you about what you're doing, before it actually submits the duplicate [%+ terms.bug %].</p> <h3><a name="v30_feat_cc"></a>Default CC List for Components</h3> <p>You can specify a list of users who will <em>always</em> be added to the CC list of new [% terms.bugs %] in a component.</p> <h3><a name="v30_feat_emi"></a>File/Modify [% terms.Bugs %] By Email</h3> <p>You can now file or modify [% terms.bugs %] via email. Previous versions of [% terms.Bugzilla %] included this feature only as an unsupported add-on, but it is now an official interface to [%+ terms.Bugzilla %].</p> <p>For more details see the <a href="[% docs_urlbase FILTER html %]api/email_in.html">documentation for email_in.pl</a>.</p> <h3><a name="v30_feat_gw"></a>Users Who Get All [% terms.Bug %] Notifications</h3> <p>There is now a parameter called <kbd>globalwatchers</kbd>. This is a comma-separated list of [% terms.Bugzilla %] users who will get all [% terms.bug %] notifications generated by [% terms.Bugzilla %].</p> <p>Group controls still apply, though, so users who can't see [% terms.abug %] still won't get notifications about that [% terms.bug %].</p> <h3><a name="v30_feat_utf8"></a>Improved UTF-8 Support</h3> <p>[% terms.Bugzilla %] users running MySQL should now have excellent UTF-8 support if they turn on the <kbd>utf8</kbd> parameter. (New installs have this parameter on by default.) [% terms.Bugzilla %] now correctly supports searching and sorting in non-English languages, including multi-bytes languages such as Chinese.</p> <h3><a name="v30_feat_upda"></a>Automatic Update Notification</h3> <p>If you belong to the <kbd>admin</kbd> group, you will be notified when you log in if there is a new release of [% terms.Bugzilla %] available to download.</p> <p>You can control these notifications by changing the <kbd>upgrade_notification</kbd> parameter.</p> <p>If your [% terms.Bugzilla %] installation is on a machine that needs to go through a proxy to access the web, you may also have to set the <kbd>proxy_url</kbd> parameter.</p> <h3><a name="v30_feat_welc"></a>Welcome Page for New Installs</h3> <p>When you log in for the first time on a brand-new [% terms.Bugzilla %] installation, you will be presented with a page that describes where you should go from here, and what parameters you should set.</p> <h3><a name="v30_feat_qs"></a>QuickSearch Plugin for IE7 and Firefox 2</h3> <p>Firefox 2 users and Internet Explorer 7 users will be presented with the option to add [% terms.Bugzilla %] to their search bar. This uses the <a href="page.cgi?id=quicksearch.html">QuickSearch syntax</a>.</p> <h3><a name="v30_feat_other"></a>Other Enhancements and Changes</h3> <p>These are either minor enhancements, or enhancements that have very short descriptions. Some of these are very useful, though!</p> <h4>Enhancements That Affect [% terms.Bugzilla %] Users</h4> <ul> <li>In comments, quoted text (lines that start with <kbd>></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><a name="v30_issues"></a>Outstanding Issues</h2> <ul> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621"> [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is in use on [% terms.bugs %], you will need to rebuild the "keyword cache" by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing the option to rebuild the cache when it asks. Otherwise keywords may not show up properly in search results.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=99215"> [%- terms.Bug %] 99215</a>: Flags are not protected by "mid-air collision" detection. Nor are any attachment changes.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822"> [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at the same time, there is no "mid-air collision" protection.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230"> [%- terms.Bug %] 276230</a>: The support for restricting access to particular Categories of New Charts is not complete. You should treat the 'chartgroup' Param as the only access mechanism available.<br> However, charts migrated from Old Charts will be restricted to the groups that are marked MANDATORY for the corresponding Product. There is currently no way to change this restriction, and the groupings will not be updated if the group configuration for the Product changes.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=370370"> [%- terms.Bug %] 370370</a>: mod_perl support is currently not working on Windows machines.</li> <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=361149"> [%- terms.Bug %] 361149</a>: If you are using Perl 5.8.0, you may get a lot of warnings in your Apache error_log about "deprecated pseudo-hashes." These are harmless--they are a b[%# fool test %]ug in Perl 5.8.0. Perl 5.8.1 and later do not have this problem.</li> <li>[% terms.Bugzilla %] 3.0rc1 allowed custom field column names in the database to be mixed-case. [% terms.Bugzilla %] 3.0 only allows lowercase column names. It will fix any column names that you have made mixed-case, but if you have custom fields that previously were mixed-case in any Saved Search, you will have to re-create that Saved Search yourself.</li> </ul> <h2><a name="v30_security"></a>Security Updates in This Release</h2> <h3>3.0.6</h3> <p>[% terms.Bugzilla %] contains a minor security fix. For details, see the <a href="http://www.bugzilla.org/security/2.20.6/">Security Advisory</a>.</p> <h3>3.0.5</h3> <p>[% terms.Bugzilla %] contains one security fix for <a href="[% docs_urlbase FILTER html %]api/importxml.html">importxml.pl</a>. For details, see the <a href="http://www.bugzilla.org/security/2.22.4/">Security Advisory</a>.</p> <h3>3.0.4</h3> <p>[% terms.Bugzilla %] 3.0.4 contains three security fixes. For details, see the <a href="http://www.bugzilla.org/security/2.20.5/">Security Advisory</a>.</p> <h3>3.0.3</h3> <p>No security fixes in this release.</p> <h3>3.0.2</h3> <p>[% terms.Bugzilla %] 3.0.1 had an important security fix that is critical for public installations with "requirelogin" turned on. For details, see the <a href="http://www.bugzilla.org/security/3.0.1/">Security Advisory</a></p> <h3>3.0.1</h3> <p>[% terms.Bugzilla %] 3.0 had three security issues that have been fixed in this release: one minor information leak, one hole only exploitable by an admin or using <code>email_in.pl</code>, and one in an uncommonly-used template. For details, see the <a href="http://www.bugzilla.org/security/2.20.4/">Security Advisory</a>.</p> <h2><a name="v30_upgrading"></a>How to Upgrade From An Older Version</h2> <h3><a name="v30_upgrading_notes"></a>Notes For Upgraders</h3> <ul> <li>If you upgrade by CVS, there are several .cvsignore files that are now in CVS instead of being locally created by <kbd>checksetup.pl</kbd>. This means that you will have to delete those files when CVS tells you there's a conflict, and then run <kbd>cvs update</kbd> again.</li> <li>In this version of [% terms.Bugzilla %], the Summary field is now limited to 255 characters. When you upgrade, any Summary longer than that will be truncated, and the old summary will be preserved in a comment.</li> <li>If you have the <kbd>utf8</kbd> parameter turned on, at some point you will have to convert your database. <kbd>checksetup.pl</kbd> will tell you when this is, and it will give you certain instructions at that time, that you have to follow before you can complete the upgrade. Don't do the conversion yourself manually--follow the instructions of checksetup.pl.</li> <li>If you ever ran 2.23.3, 2.23.4, or 3.0rc1, you will have to run <kbd>./collectstats.pl --regenerate</kbd> at the command line, because the data for your Old Charts is corrupted. This can take several days, so you may only want to run it if you use Old Charts.</li> <li>You should also read the Outstanding Issues sections of <a href="#v30_previous">older release notes</a> if you are upgrading from a version lower than 2.22.</li> </ul> <h3>Steps For Upgrading</h3> <p>Once you have read the notes above, see the <a href="[% docs_urlbase FILTER html %]upgrade.html">Upgrading documentation</a> for instructions on how to upgrade.</p> <h2><a name="v30_code_changes"></a>Code Changes Which May Affect Customizations</h2> <ul> <li><a href="#v30_code_loc"><strong>Packagers:</strong> Location Variables Have Moved</a></li> <li><a href="#v30_code_hooks">Hooks!</a></li> <li><a href="#v30_code_api">API Documentation</a></li> <li><a href="#v30_code_globals">Elimination of globals.pl</a></li> <li><a href="#v30_code_scope">Cleaned Up Variable Scoping Issues</a></li> <li><a href="#v30_code_sql">No More SendSQL</a></li> <li><a href="#v30_code_auth">Auth Re-write</a></li> <li><a href="#v30_code_obj">Bugzilla::Object</a></li> <li><a href="#v30_code_req">Bugzilla->request_cache</a></li> <li><a href="#v30_code_other">Other Changes</a></li> </ul> <h3><a name="v30_code_loc"></a><strong>Packagers:</strong> Location Variables Have Moved</h3> <p>In previous versions of [% terms.Bugzilla %], <kbd>Bugzilla::Config</kbd> held all the paths for different things, such as the path to localconfig and the path to the <kbd>data/</kbd> directory.</p> <p>Now, all of this data is stored in a subroutine, <kbd>Bugzilla::Constants::bz_locations</kbd>.</p> <p>Also, note that for mod_perl, <kbd>bz_locations</kbd> must return <em>absolute</em> (not relative) paths. There is already code in that subroutine to help you with this.</p> <h3><a name="v30_code_hooks"></a>Hooks!</h3> <p>[% terms.Bugzilla %] now supports a code hook mechanism. See the documentation for <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a> for more details.</p> <p>This gives [% terms.Bugzilla %] very advanced plugin support. You can hook templates, hook code, add new parameters, and use the XML-RPC interface. So we'd like to see some [% terms.Bugzilla %] plugins written! Let us know on the <a href="http://bugzilla.org/cgi-bin/mj_wwwusr?func=lists-long-full&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><a name="v30_code_api"></a>API Documentation</h3> <p>[% terms.Bugzilla %] now ships with all of its perldoc built as HTML. Go ahead and read the <a href="[% docs_urlbase FILTER html %]api/">API Documentation</a> for all of the [% terms.Bugzilla %] modules now! Even scripts like <kbd>checksetup.pl</kbd> have HTML documentation.</p> <h3><a name="v30_code_globals"></a>Elimination of globals.pl</h3> <p>The old file <kbd>globals.pl</kbd> has been eliminated. Its code is now in various modules. Each function went to the module that was appropriate for it.</p> <p>Usually we filed [% terms.abug %] in <a href="https://bugzilla.mozilla.org">bugzilla.mozilla.org</a> for each function we moved. You can search there for the old name of the function, and that should get you the information about what it's called now and where it lives.</p> <h3><a name="v30_code_scope"></a>Cleaned Up Variable Scoping Issues</h3> <p>In normal perl, you can have code like this:</p> <pre>my $var = 0; sub y { $var++ }</pre> <p>However, under mod_perl that doesn't work. So variables are no longer "shared" with subroutines--instead all variables that a subroutine needs must be declared inside the subroutine itself.</p> <h3><a name="v30_code_sql"></a>No More SendSQL</h3> <p>The old <kbd>SendSQL</kbd> function and all of its companions are <strong>gone</strong>. Instead, we now use DBI for all database interaction.</p> <p>For more information about how to use <a href="http://search.cpan.org/perldoc?DBI">DBI</a> with [% terms.Bugzilla %], see the <a href="http://www.bugzilla.org/docs/developer.html#sql-sendreceive">Developer's Guide Section About DBI</a></p> <h3><a name="v30_code_auth"></a>Auth Re-write</h3> <p>The <kbd>Bugzilla::Auth</kbd> family of modules have been completely re-written. For details on how the new structure of authentication, read the <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Auth.html">Bugzilla::Auth API docs</a>.</p> <p>It should be very easy to write new authentication plugins, now.</p> <h3><a name="v30_code_obj"></a>Bugzilla::Object</h3> <p>There is a new base class for most of our objects, <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html">Bugzilla::Object</a>. It makes it really easy to create new objects based on things that are in the database.</p> <h3><a name="v30_code_req"></a>Bugzilla->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><a name="v30_code_other"></a>Other Changes</h3> <ul> <li><code>checksetup.pl</code> has been completely re-written, and most of its code moved into modules in the <kbd>Bugzilla::Install</kbd> namespace. See the <a href="[% docs_urlbase FILTER html %]api/checksetup.html">checksetup documentation</a> and <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=277502&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><a name="v30_previous"></a>Release Notes For Previous Versions</h2> <p>Release notes for versions of [% terms.Bugzilla %] for versions prior to 3.0 are only available in text format: <a href="[% docs_urlbase FILTER remove('html/$') FILTER html %]rel_notes.txt">Release Notes for [% terms.Bugzilla %] 2.22 and Earlier</a>.</p> [% INCLUDE global/footer.html.tmpl %] [% BLOCK db_req %] [% SET m = DB_MODULE.$db %] <h3><a name="v34_req_[% db FILTER html %]"></a>For [% m.name FILTER html %] Users</h3> <ul> <li>[% m.name FILTER html %] [%+ '<span class="req_new">' IF db_new %]v[% m.db_version FILTER html %] [% '</span>' IF db_new %] </li> <li><strong>perl module:</strong> [%+ m.dbd.module FILTER html %] [% '<span class="req_new">' IF dbd_new %]v[% m.dbd.version FILTER html %] [% '</span>' IF dbd_new %]</li> </ul> [% END %] [% BLOCK req_table %] <table class="req_table" border="0" cellspacing="0" cellpadding="0"> <tr> <th>Module</th> <th>Version</th> [% IF include_feature %] <th>Enables Feature</th> [% END %] </tr> [% FOREACH req = reqs %] <tr> <td [% ' class="req_new"' IF new.contains(req.package) %]> [%- req.module FILTER html %]</td> <td [% ' class="req_new"' IF updated.contains(req.package) OR new.contains(req.package) %]> [%- IF req.version == 0 %] (Any) [% ELSE %] [%- req.version FILTER html %] [% END %] </td> [% IF include_feature %] <td>[% req.feature FILTER html %]</td> [% END %] </tr> [% END %] </table> [% END %]