diff options
-rw-r--r-- | template/en/default/pages/release-notes.html.tmpl | 915 |
1 files changed, 894 insertions, 21 deletions
diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl index 8877c2672..eea13e85d 100644 --- a/template/en/default/pages/release-notes.html.tmpl +++ b/template/en/default/pages/release-notes.html.tmpl @@ -18,12 +18,648 @@ #%] [% PROCESS global/variables.none.tmpl %] +[% SET title = "$terms.Bugzilla 4.0 Release Notes" %] [% INCLUDE global/header.html.tmpl - title = "$terms.Bugzilla 3.6 Release Notes" + title = title style_urls = ['skins/standard/page.css'] %] -<h2>Table of Contents</h2> +<h1>[% title FILTER html %]</h1> + +<ul class="bz_toc"> + <li><a href="#v40_introduction">Introduction</a></li> + <li><a href="#v40_req">Minimum Requirements</a></li> + <li><a href="#v40_feat">New Features and Improvements</a></li> + <li><a href="#v40_issues">Outstanding Issues</a></li> + <li><a href="#v40_upgrading">Notes On Upgrading From a Previous Version</a></li> + <li><a href="#v40_code_changes">Code Changes Which May Affect + Customizations and Extensions</a></li> + <li><a href="#v40_previous">Release Notes for Previous Versions</a></li> +</ul> + +<h2 id="v40_introduction">Introduction</h2> + +<p>This is [% terms.Bugzilla %] 4.0! Since 3.6 (our previous major + release) we've come a long way, and we've come even further compared to + 3.0 in 2007! Since [% terms.Bugzilla %] 3.0, almost every major user + interface in [% terms.Bugzilla %] has been redesigned, the WebServices have + evolved enormously, there's a great new Extensions system, and there + are hundreds of other new features. With the major redesigns that come + particularly in this release compared to 3.6, we felt that it was time to + call this release 4.0.</p> + +<p>It's not just major WebService and UI enhancements that are new in + [%+ terms.Bugzilla %] 4.0—there are many other exciting new features, + including automatic duplicate detection, enhanced custom field + functionality, autocomplete for users, search improvements, and much + more. Overall, 4.0 is far and away the best version of [% terms.Bugzilla %] + we've ever released.</p> + +<p>If you're upgrading, make sure to read <a href="#v40_upgrading">Notes + On Upgrading From a Previous Version</a>. If you are upgrading from a release + before 3.6, make sure to read the release notes for all the + <a href="#v40_previous">previous versions</a> in between your version + and this one, <strong>particularly the Upgrading section of each + version's release notes</strong>.</p> + +<p>We would like to thank + <a href="http://www.itasoftware.com/">ITA Software</a>, + the <a href="http://www.ibm.com/linux/ltc/">IBM Linux Technology Center</a>, + and <a href="http://www.redhat.com/">Red Hat</a> for funding the development + of certain features and improvements in this release of + [%+ terms.Bugzilla %].</p> + +<h2 id="v40_req">Minimum Requirements</h2> + +<p>Any requirements that are new since 3.6.3 will look like + <span class="req_new">this</span>.</p> + +<ul> + <li><a href="#v40_req_perl">Perl</a></li> + <li><a href="#v40_req_mysql">For MySQL Users</a></li> + <li><a href="#v40_req_pg">For PostgreSQL Users</a></li> + <li><a href="#v40_req_oracle">For Oracle Users</a></li> + <li><a href="#v40_req_modules">Required Perl Modules</a></li> + <li><a href="#v40_req_optional_mod">Optional Perl Modules</a></li> + <li><a href="#v40_req_apache">Optional Apache Modules</a></li> +</ul> + + +<h3 id="v40_req_perl">Perl</h3> + +<p>Perl v5.8.1</p> + +[% INCLUDE db_req db='mysql' %] + +[% INCLUDE db_req db='pg' %] + +[% INCLUDE db_req db='oracle' %] + +<h3 id="v40_req_modules">Required Perl Modules</h3> + +[% INCLUDE req_table reqs = REQUIRED_MODULES + new = ['List-MoreUtils'] + updated = ['Email-MIME', 'CGI.pm'] %] + +<h3 id="v40_req_optional_mod">Optional Perl Modules</h3> + +<p>The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:</p> + +[% INCLUDE req_table reqs = OPTIONAL_MODULES + new = ['JSON-XS'] + updated = [] + include_feature = 1 %] + +<h3 id="v40_req_apache">Optional Apache Modules</h3> + +<p>If you are using Apache as your webserver, [% terms.Bugzilla %] can + now take advantage of some Apache features if you have the below Apache + modules installed and enabled. Currently, + <a href="#v40_feat_js_css_update">certain [% terms.Bugzilla %] features</a> + are enabled only if you have all of the following modules installed + and enabled:</p> + +<ul> + <li>mod_headers</li> + <li>mod_expires</li> + <li>mod_env</li> +</ul> + +<p>On most systems (but not on Windows), <kbd>checksetup.pl</kbd> is able to + tell whether or not you have these modules installed, and it will tell + you.</p> + +<h2 id="v40_feat">New Features and Improvements</h2> + +<ul> + <li><a href="#v40_feat_dup">Automatic Duplicate Detection When Filing + [%+ terms.Bugs %]</a></li> + <li><a href="#v40_feat_search_ui">New Advanced Search UI</a></li> + <li><a href="#v40_feat_attach_ui">New Attachment Details UI</a></li> + <li><a href="#v40_feat_autocomplete">Autocomplete for Users and + Keywords</a></li> + <li><a href="#v40_feat_ui">General Usability Improvements</a></li> + <li><a href="#v40_feat_workflow">New Default Status Workflow</a></li> + <li><a href="#v40_feat_lists">"Last Search" Now Remembers Multiple + Searches</a></li> + <li><a href="#v40_feat_jsonp">Cross-Domain WebServices with JSONP</a></li> + <li><a href="#v40_feat_ws">Major WebService Enhancements</a></li> + <li><a href="#v40_feat_mandatory">Mandatory Custom Fields</a></li> + <li><a href="#v40_feat_vot_ext">Voting Is Now An Extension</a></li> + <li><a href="#v40_feat_js_css_update">Users Get New CSS and Javascript + Automatically</a></li> + <li><a href="#v40_feat_hooks">Many New Hooks</a></li> + <li><a href="#v40_feat_apache_config">New Apache Configuration</a></li> + <li><a href="#v40_feat_other">Other Enhancements and Changes</a></li> +</ul> + +<h3 id="v40_feat_dup">Automatic Duplicate Detection When Filing + [%+ terms.Bugs %]</h3> + +<p>When filing [% terms.abug %], as soon as you start typing in the summary + field, [% terms.Bugzilla %] will suggest possible duplicates of the + [%+ terms.bug %] you are filing.</p> + +<p>In order for this feature to work, all pre-requisites for JSON-RPC + support must be installed on your [% terms.Bugzilla %]. It will be + much faster on installations that run under mod_perl than it will + be on other installations.</p> + +<p>This automatic duplicate detection does not currently work for installations + running on PostgreSQL.</p> + +<h3 id="v40_feat_search_ui">New Advanced Search UI</h3> + +<p>Thanks to the UI work of <a href="http://guy-pyrzak.blogspot.com/">Guy + Pyrzak</a>, the Advanced Search UI has been completely redesigned. + It is now much simpler, and far more approachable for new users, while + still retaining all of the features that power users are used to.</p> + +<h3 id="v40_feat_attach_ui">New Attachment Details UI</h3> + +<p>The UI used for editing attachment details has been completely + redesigned, allowing for a normally-size comment box to be used + when commenting on attachments, and allowing nearly the entire screen + width to be used when doing code reviews or editing an attachment as + a comment.</p> + +<p>Thanks to <a href="http://guy-pyrzak.blogspot.com/">Guy Pyrzak</a> for + his excellent work on this UI redesign.</p> + +<h3 id="v40_feat_autocomplete">Autocomplete for Users and Keywords</h3> + +<p>Once you type at least three characters in any field that can contain a user + (including the [% field_descs.cc FILTER html %], + [%+ field_descs.qa_contact FILTER html %], or + [%+ field_descs.assigned_to FILTER html %] fields), a list will appear + containing all of the users whose real names or usernames match what you are + typing. Your [% terms.Bugzilla %] must have all of the optional Perl + modules required for JSON-RPC support installed, though, in order for + this feature to work. Also, this feature will be <strong>much</strong> + faster on installations that run under mod_perl than it will be on + other installations.</p> + +<p>There is also a similar autocomplete for the Keywords field. The + Keywords autocomplete does not require JSON-RPC.</p> + +<h3 id="v40_feat_ui">General Usability Improvements</h3> + +<p>In addition to the enhancements listed above, there have been + <strong>many</strong> improvements made across the [% terms.Bugzilla %] + user interface. For a list of specific enhancements that were significant, + see the <a href="#v40_feat_other">Other Enhancements and Changes</a> + section.</p> + +<h3 id="v40_feat_workflow">New Default Status Workflow</h3> + +<p>For new installations of [% terms.Bugzilla %], the default set of + statuses will now be:</p> + +<ul> + <li>UNCONFIRMED</li> + <li>CONFIRMED</li> + <li>IN_PROGRESS</li> + <li>RESOLVED</li> + <li>VERIFIED</li> +</ul> + +<p>And the UNCONFIRMED status will be enabled by default in all products.</p> + +<p>On upgrade, existing installations will not be affected--you will retain + your existing status workflow. However, we strongly recommend that you + update your existing workflow to the new one, using a special tool + we've included, <kbd>contrib/convert-workflow.pl</kbd>, which you + can run after you use <kbd>checksetup.pl</kbd> to upgrade. The + <kbd>whineatnews.pl</kbd> and <kbd>bugzilla-submit</kbd> scripts + will probably not work properly if you continue to use the old workflow + (though most other parts of [% terms.Bugzilla %] will still function + normally).</p> + +<p>For more information about the workflow and our rationale for changing + it, see the + <a href="http://bugzillaupdate.wordpress.com/2010/07/06/bugzilla-4-0-has-a-new-default-status-workflow/">blog + post about it</a> and the + <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=486292">[% terms.bug %] + where the change was made</a>.</p> + +<h3 id="v40_feat_lists">"Last Search" Now Remembers Multiple Searches</h3> + +<p>At the top of every [% terms.bug %] in [% terms.Bugzilla %], there are + links that look like: "First", "Last", "Prev", "Next", and + "Show last search results". In earlier versions of [% terms.Bugzilla %], + if you did two separate searches in separate windows, these links would + only work for the <em>last</em> search you did. Now, [% terms.Bugzilla %] + will "remember" which search result you came from and give you the right + "last search results" or "next bug" from <em>that</em> list, instead of + always using your most recent search.</p> + +<p>There are still some situations where [% terms.Bugzilla %] will have to + "guess" which search you are trying to navigate through, but it does its + best to get it right.</p> + +<h3 id="v40_feat_jsonp">Cross-Domain WebServices with JSONP</h3> + +<p>[% terms.Bugzilla %] now supports making WebService calls from + another domain, inside of a web browser, thanks to support for + <a href="http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/">JSONP</a>. + This will allow for web "mash-ups" to use [% terms.Bugzilla %] data. + When using JSONP, you may only call functions that <em>get</em> data, + you may not call functions that <em>change</em> data.</p> + +<p>For more details, see the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#JSONP">JSONP + section</a> of the JSON-RPC WebService documentation.</p> + +<h3 id="v40_feat_ws">Major WebService Enhancements</h3> + +<p>The WebService has been expanded considerably. The WebService should now be + able to do everything with [% terms.bugs %] that you can do via the + web interface, including updating [% terms.bugs %], adding attachments, + and getting attachment data. For specifics, see the + <a href="#v40_feat_ws_changes">WebService Changes</a> section of these + release notes.</p> + +<h3 id="v40_feat_mandatory">Mandatory Custom Fields</h3> + +<p>You can now specify that certain custom fields are "mandatory", + meaning that they must have a value when [% terms.abug %] is filed, + and they can never be empty after that.</p> + +<h3 id="v40_feat_vot_ext">Voting Is Now An Extension</h3> + +<p>All of the code for voting in [% terms.Bugzilla %] has been moved + into an extension, called "Voting", in the <kbd>extensions/Voting/</kbd> + directory. To enable it, you must remove the <kbd>disabled</kbd> file + from that directory, and run checksetup.pl.</p> + +<p>In a future version of [% terms.Bugzilla %], the Voting extension will + be moved outside of the [% terms.Bugzilla %] core code, so we are looking + for somebody who has an interest in the Voting system and would like to + maintain it as a separate extension. There are many enhancement requests + that have been made against the Voting system, and the best way for those + to get addressed is for somebody to step up and offer to maintain the + system outside of [% terms.Bugzilla %]'s core code.</p> + +<h3 id="v40_feat_js_css_update">Users Get New CSS and Javascript + Automatically</h3> + +<p>In past versions of [% terms.Bugzilla %], if you changed + [%+ terms.Bugzilla %]'s CSS or Javascript files, then every user of + [%+ terms.Bugzilla %] would have to clear their cache in order to get + the updated files. Now, if you are using Apache as your webserver and + you have the <a href="#v40_req_apache">optional Apache modules</a> + installed, users will automatically get every new version of + [%+ terms.Bugzilla %]'s Javascript and CSS without having to clear + their caches.</p> + +<p>This feature also gives a slight performance speedup to + [%+ terms.Bugzilla %] in some cases, and so we recommend that all + administrators install the optional Apache modules if possible.</p> + +<h3 id="v40_feat_hooks">Many New Hooks</h3> + +<p>Many new code hooks have been added for use by Extensions, + in [% terms.Bugzilla %] 4.0. Now Extensions can access and modify + nearly every part of [% terms.Bugzilla %].</p> + +<h3 id="v40_feat_apache_config">New Apache Configuration</h3> + +<p>(Note: If your [% terms.Bugzilla %] runs under mod_perl or runs on some + other webserver than Apache, this section does not apply to you.)</p> + +<p>The Apache configuration used for [% terms.Bugzilla %] has changed. + In particular, a different AllowOverride statement is required. + See the + <a href="[% docs_urlbase FILTER html %]configuration.html#http-apache">Configuration</a> + section of the [% terms.Bugzilla %] Guide for details.</p> + +<h3 id="v40_feat_other">Other Enhancements and Changes</h3> + +<h4>Enhancements for Users</h4> + +<ul> + <li>Now, everywhere in [% terms.Bugzilla %] where you can enter a date, + there is a Calendar widget where you can select the date on a + calendar.</li> + <li>The big icons on the front page have been replaced with much nicer + icons, thanks to Jon Pink of <a href="http://www.jpink.co.uk/">J. Pink Design</a>!</li> + <li><strong>[% terms.Bugs %]:</strong> When filing [% terms.bugs %], + you will now be warned if you forgot to fill in any mandatory fields, + <em>before</em> the page is submitted.</li> + <li><strong>[% terms.Bugs %]:</strong> When filing [% terms.abug %], + you can hover your mouse over any of the field labels on the page + to get a brief description of what that field is and what its purpose + is.</li> + <li><strong>[% terms.Bugs %]:</strong> [% terms.Bug %] comments are no + longer word-wrapped at 80 characters. They are simply wrapped by your + web browser to be as wide as the comment view in the UI. They will still + be wrapped to 80 characters in emails, though.</li> + <li><strong>[% terms.Bugs %]:</strong> When adding Hours Worked to [% terms.abug %], + you are no longer required to comment.</li> + <li><strong>[% terms.Bugs %]:</strong> There is now a user preference + for whether the comment box appears above or below the existing + comments.</li> + <li><strong>[% terms.Bugs %]:</strong> [% terms.Bugzilla %] will now + send an email for every comment that you mark or un-mark as being + private. (Previous versions of [% terms.Bugzilla %] did not send emails + to users about this change.) The state of comments being made private + is also now stored in [% terms.abug %]'s history.</li> + <li><strong>[% terms.Bugs %]:</strong> The box to "Add [% terms.Bug %] URLs" + in the See Also field is now hidden behind an "(add)" link that you + have to click to see the box.</li> + + <li><strong>Searches:</strong> You can now properly search for field values + that have commas in their name, when using the Advanced Search form.</li> + <li><strong>Searches:</strong> The "URL" field can now be shown as a column + in search results.</li> + <li><strong>Searches:</strong> When viewing a search result, you can now + click on the Summary of the [% terms.bug %] in order to go to the + [%+ terms.bug %]-view page, in addition to being able to click on the + [%+ terms.bug %] ID.</li> + <li><strong>Searches:</strong> When doing a search using the "quicksearch" + box in the header or footer, the box will still contain what you searched + for when viewing the search results page.</li> + <li><strong>Searches:</strong> Multi-select custom fields can now be + shown as columns in the search results.</li> + <li><strong>Searches:</strong> When using the Boolean Charts (now called + "Custom Search"), if you specify both a criterion for an attachment + and a criteron for a flag, then only [% terms.bugs %] that have + attachments with that flag will be found.</li> + <li><strong>Searches:</strong> If you hover your mouse over the field labels + on the Advanced Search page, you will get a description of what that + field is.</li> + <li><strong>Searches:</strong> When searching via a saved search, if you + accidentally click on "Forget Search", there is a link to undo it.</li> + <li><strong>Searches:</strong> When using the Boolean Charts (now called + "Custom Search"), you can search for values "greater than or equal to" + or "less than or equal to" some value.</li> + + <li><strong>Flags:</strong> If you hover your mouse over the name of + a flag setter when viewing [% terms.abug %], you can see that + flag setter's full name and complete username.</li> + <li><strong>Flags:</strong> When setting a flag on [% terms.abug %], + the box for entering a requestee does not appear until you set the flag + to "?", now.</li> + <li><strong>Flags:</strong> On the "My Requests" page, [% terms.bugs %] + that are restricted to certain groups now properly have the "padlock" + icon shown next to them to indicate that they may contain confidential + information.</li> + + <li>When using the Reports interface, you can now choose many more fields + as the X, Y, or Z axis of a report, including custom fields.</li> + <li>[% terms.Bugzilla %] now prevents + Internet Explorer 8 and later from attempting to render + <kbd>text/plain</kbd> attachments as HTML.</li> + <li>If you receive a Whine mail that is empty, there will now be a brief + message explaining that your search found no results.</li> + <li>The <a href="page.cgi?id=fields.html">Field Help Page</a> now + contains a description of every single field that can be on + [%+ terms.abug %] in [% terms.Bugzilla %].</li> +</ul> + +<h4>Enhancements for Administrators and Developers</h4> + +<ul> + <li>The system for moving [% terms.bugs %] between installations has been + moved into an extension called <kbd>OldBugMove</kbd>. This system was used + by very few [% terms.Bugzilla %] installations--if you aren't certain + whether or not you are using it, you're not using it. To enable the system, + you have to remove the file <kbd>extensions/OldBugMove/disabled</kbd> + and then run checksetup.pl. In a future version of [% terms.Bugzilla %], + this extension may be moved outside of the core [% terms.Bugzilla %] code, + so if you are interested in maintaining it, please let us know.</li> + <li><strong>Custom Fields: </strong> "[% terms.Bug %] ID" custom fields can + now represent relationships between [% terms.bugs %], similarly to how the + [%+ field_descs.blocked FILTER html %] and + [%+ field_descs.dependson FILTER html %] fields work now.</li> + <li><strong>Custom Fields:</strong> You can now restrict the visibility + of custom fields and their values to a specific Component or + Classification.</li> + <li>The "keyword cache" has been removed. When you edit keywords, you no + longer will have to "rebuild the keyword cache" after you are done.</li> + <li>Running <kbd>./collectstats.pl --regenerate</kbd> will now take + minutes or hours, instead of days.</li> + <li>When using <kbd>email_in.pl</kbd>, there are two new switches, + <kbd>--default</kbd> and <kbd>--override</kbd>, which allow you to + specify certain default values or override specified values for + <kbd>@field</kbd> values sent in emails. (This also allows you to specify + defaults for everything so that people do not have to specify any field + values when filing [% terms.abug %] via email.)</li> + <li><strong>Installation:</strong> If you are using a localized version of + [%+ terms.Bugzilla %] and your terminal does not understand Unicode, + <kbd>checksetup.pl</kbd> will now attempt to output its messages in your + terminal's character set.</li> + <li><strong>Installation:</strong> [% terms.Bugzilla %] no longer needs empty + "placeholder" CSS in the <kbd>skins/custom</kbd> directory and other + directories. When you update, <kbd>checksetup.pl</kbd> will remove these. + This also significantly reduces the number of HTTP requests required to + load a page for the first time in [% terms.Bugzilla %].</li> + <li><strong>Installation:</strong> For Windows users, [% terms.Bugzilla %] + now supports Strawberry Perl fully.</li> + <li><strong>Installation:</strong> Now, whenever <kbd>checksetup.pl</kbd> + throws an error, it will be printed in the color red, to make it + obvious that something is wrong.</li> + <li><strong>Installation:</strong> Some actions of checksetup.pl were + silent, in the past. Now, checksetup.pl will print a message for + almost anything it does.</li> + <li><strong>Installation:</strong> The process of adding foreign keys + to a table is now much faster. This will particularly improve the speed + of upgrading from [% terms.Bugzilla %] 3.4 or earlier.</li> + <li>If you are using <kbd>jobqueue.pl</kbd> and email gets heavily delayed + for some reason, those emails will now have a Date header reflecting the + time they were <em>supposed</em> to be sent, instead of when they actually + <em>were</em> sent.</li> + <li><kbd>./jobqueue.pl install</kbd> now works on SuSE Linux.</li> + <li>[% terms.Bugzilla %] now runs much better in Apache's suexec mode + than it used to. As part of this, <kbd>checksetup.pl</kbd> sets + much stricter permissions on all the files in [% terms.Bugzilla %] + than it used to. In particular, any files that [% terms.Bugzilla %] + does not know about will not be readable by the webserver.</li> + <li>The <kbd>sendmailnow</kbd> parameter has been removed, as it was + not necessary for any modern version of Sendmail or other Mail Transfer + Agent.</li> + <li>When editing a user via the Users administration panel, you can now + see if they are a Default CC on any component.</li> + <li>For new installations of [% terms.Bugzilla %], all users will be + able to see and use the Whining system by default.</li> + <li>When you are using SSL with [% terms.Bugzilla %], you can now + turn on the <kbd>strict_transport_security</kbd> parameter to + send the + <a href="https://developer.mozilla.org/en/Security/HTTP_Strict_Transport_Security">Strict-Transport-Security</a> + header with every HTTPS connection, for additional security.</li> + <li>New code hooks (see their documentation in + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Hook.html">Bugzilla::Hook</a>): + bug_check_can_change_field, search_operator_field_override, + bugmail_relationships, object_columns, object_update_columns, + and object_validators. The colchange_columns hook has been removed, + as it is no longer necessary (buglist_columns will be used for data + about which columns can be on the buglist).</li> + <li>When [% terms.Bugzilla %] throws certain types of errors, it will + now include a "traceback" of where exactly the error occurred in the + code, to help administrators and developers debug problems.</li> + <li>There is now a test, <kbd>xt/search.t</kbd>, that assures that all + of the functionality of <kbd>Bugzilla::Search</kbd> is working properly. + If you customize the search functionality of [% terms.Bugzilla %], + you may wish to run this test to assure that your changes are correct. + You can see more information about running this test by doing + <kbd>perldoc xt/search.t</kbd> at the command line.</li> +</ul> + +<h4 id="v40_feat_ws_changes">WebService Changes</h4> + +<ul> + <li>You can now call some JSON-RPC methods using HTTP GET, in addition to + using HTTP POST. See the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html#Connecting_via_GET">JSON-RPC + documentation</a> for details.</li> + <li>You can now update existing [% terms.bugs %] using the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#update">B[% %]ug.update</a> + function.</li> + <li>You can now add attachments to [% terms.bugs %] using the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#add_attachment">B[% %]ug.add_attachment</a> + function.</li> + <li>The <kbd>B[% %]ug.get</kbd> function now returns all of [% terms.abug %]'s + information other than comments and attachments.</li> + <li><kbd>B[% %]ug.get</kbd> no longer returns the <kbd>internals</kbd> hash.</li> + <li>The <kbd>B[% %]ug.attachments</kbd> function now also returns attachment + data.</li> + <li>The following functions now support the <kbd>include_fields</kbd> + and <kbd>exclude_fields</kbd> arguments: <kbd>B[% %]ug.get</kbd>, + <kbd>B[% %]ug.search</kbd>, and <kbd>B[% %]ug.attachments</kbd>. Also, + server-side performance of the WebService is actually increased when + using these arguments, now, as [% terms.Bugzilla %] will no longer + get data from the database for fields you haven't asked for.</li> + <li>You can now mark the initial description of [% terms.abug %] as + private when filing [% terms.abug %] via the <kbd>B[% %]ug.create</kbd> + function.</li> + <li>You can now specify groups to put [% terms.abug %] in, in the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#create">B[% %]ug.create</a> + function. (This also means that you can specify groups when filing + [%+ terms.abug %] via email_in.pl.)</li> + <li>The <kbd>User.get</kbd> function now accepts <kbd>groups</kbd> + and <kbd>group_ids</kbd> arguments, to limit the returned values to + only users in the specified groups.</li> + <li>There is a new, undocumented B[% %]ug.possible_duplicates + function that helps implement the automatic duplicate detection + system. Because this function is not documented, its API may change + between releases of [% terms.Bugzilla %].</li> + <li>You can no longer search using the <kbd>votes</kbd> argument in + <kbd>B[% %]ug.search</kbd>.</li> + <li><kbd>B[% %]ug.attachments</kbd> now returns the attachment's description + using the name "summary" instead of the name "description", to be + consistent with the fact that [% terms.bug %] summaries are called + "summary". The value is still <em>also</em> returned as "description", + for backwards compatibility, but this backwards compatibility will go + away in [% terms.Bugzilla %] 5.0.</li> + <li>In the return values of various <kbd>B[% %]ug</kbd> functions, the author + of comments, [% terms.bugs %], and attachments is now called "creator", + instead of sometimes being called "reporter", "author", or "attacher". + The old names are retained for backwards-compatibility, and will stay + around until [% terms.Bugzilla %] 5.0.</li> +</ul> + +<h2 id="v40_issues">Outstanding Issues</h2> + +<ul> + <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=423439"> + [%- terms.Bug %] 423439</a>: Tabs in comments will be converted + to four spaces, due to a b<!-- -->ug in Perl as of Perl 5.8.8.</li> + <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822"> + [%- terms.Bug %] 89822</a>: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.</li> + <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276230"> + [%- terms.Bug %] 276230</a>: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available.<br> + However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.</li> +</ul> + +<h2 id="v40_upgrading">Notes On Upgrading From a Previous Version</h2> + +<h3>New .htaccess file</h3> + +<p>In previous versions of [% terms.Bugzilla %], there was a file + in [% terms.Bugzilla %]'s root directory called ".htaccess" that was + generated by <kbd>checksetup.pl</kbd>. This file is now shipped with + [%+ terms.Bugzilla %] instead of being generated during installation.</p> + +<p>If you update via CVS or bzr, you will get a message that your existing + .htaccess file conflicts with the new one. You must + <strong>remove your existing .htaccess file</strong> and use the new one + instead. Continuing to use your old .htaccess file will cause certain new + features of [% terms.Bugzilla %] to not work properly, and may also lead + to security issues for your system in the future.</p> + +<h2 id="v40_code_changes">Code Changes Which May Affect Customizations and + Extensions</h2> + +<ul> + <li>In Extensions, if you want to serve files to the user via the web, + they must now be in a <kbd>web/</kbd> subdirectory of your Extension. + (For example, <kbd>extensions/Foo/web/</kbd>). <kbd>checksetup.pl</kbd> + sets permissions on extensions much more strictly now, and files in + other locations (such as your base <kbd>extensions/Foo/</kbd> directory) + will no longer be available to [% terms.Bugzilla %] users via the web + under certain configurations.</li> + <li>Previous versions of [% terms.Bugzilla %] used to allow putting a + single file into the "skins" directory and having that be an entire + skin. That is no longer allowed, and on upgrade, <kbd>checksetup.pl</kbd> + will convert any such skins into a directory with a single + <kbd>global.css</kbd> file in them.</li> + <li>When updating [% terms.bugs %], you should now use + <code>$bug->set_all</code> instead of using the individual + <kbd>set_</kbd> methods. In particular, <kbd>set_all</kbd> is now the + <em>only</em> way to set the product of [% terms.abug %]. See + <kbd>process_bug.cgi</kbd> for an example of how <kbd>set_all</kbd> + should be used.</li> + <li>You should not insert <script> tags and <link> CSS tags + into HTML anymore, in Extensions or in your customizations. Instead, + you should push new values into the <kbd>style_urls</kbd> or + <kbd>javascript_urls</kbd> parameters. If you have to insert manual + tags for some reason, be sure to call "FILTER mtime" on the URL. (Search + for other uses of "FILTER mtime" in the templates to see how it is + used.)</li> + <li>When calling <kbd>Bugzilla::BugMail::Send</kbd>, the "changer" + argument must now be a <kbd>Bugzilla::User</kbd> object, not just + a login name. The "owner" and "qacontact" arguments are still + just login names.</li> + <li>When creating a new subclass of Bugzilla::Object, you should no + longer use <kbd>UPDATE_VALIDATORS</kbd>. Also, in most cases you will + no longer need to override <kbd>run_create_validators</kbd>. Instead, + there is a new constant called + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Object.html#VALIDATOR_DEPENDENCIES">VALIDATOR_DEPENDENCIES</a>, + that specifies that certain fields have to be validated before other fields. + Then, all validators receive each already-validated value in a hash + as their fourth argument, so each validator can know the other values + that were passed in, while an object is being created. For an example of + how to use <kbd>VALIDATOR_DEPENDENCIES</kbd>, see + <kbd>Bugzilla/Field.pm</kbd>.</li> + <li>In previous versions of [% terms.Bugzilla %], you had to call + <code>Bugzilla->template_inner("")</code> after any time + that you called <kbd>template_inner</kbd> for a specific language. + It is no longer necessary to do this second <kbd>template_inner</kbd> + call.</li> + <li><kbd>post_bug.cgi</kbd> and <kbd>Bugzilla::Bug->create</kbd> now take + the <em>names</em> of groups instead of group ids.</li> + <li>Bugzilla::Bugmail now uses Bugzilla::Bug objects internally instead of + a lot of direct SQL.</li> + <li>For sending changes about [% terms.bugs %], there is now a method + called <kbd>send_changes</kbd> that you can call on Bugzilla::Bug + objects. For an example of its use, see <kbd>process_bug.cgi</kbd>.</li> + <li>The <kbd>Bugzilla::Search</kbd> class has been refactored, and should + now be easier to customize.</li> + <li>The <kbd>Bugzilla::Util::lsearch</kbd> function is gone. Use + <kbd>firstidx</kbd> from <kbd>List::MoreUtils</kbd>, instead.</li> + <li>[% terms.Bugzilla %] now includes YUI 2.8.2.</li> +</ul> + + +<h1 id="v40_previous">[% terms.Bugzilla %] 3.6 Release Notes</h1> <ul class="bz_toc"> <li><a href="#v36_introduction">Introduction</a></li> @@ -174,31 +810,268 @@ <li><a href="#v36_req_optional_mod">Optional Perl Modules</a></li> </ul> - -<h3 id="v36_req_perl">Perl</h3> - +<h3 id="v36_req_perl">Perl</h3> + <p>Perl v5.8.1</p> -[% INCLUDE db_req db='mysql' %] - -[% INCLUDE db_req db='pg' %] - -[% INCLUDE db_req db='oracle' %] - +<h3 id="v36_req_mysql">For MySQL Users</h3> + + <ul> + <li>MySQL + v4.1.2 + </li> + <li><strong>perl module:</strong> + DBD::mysql v4.00</li> + </ul> + +<h3 id="v36_req_pg">For PostgreSQL Users</h3> + + <ul> + <li>PostgreSQL + v8.00.0000 + </li> + <li><strong>perl module:</strong> + DBD::Pg v1.45</li> + </ul> +<h3 id="v36_req_oracle">For Oracle Users</h3> + + <ul> + <li>Oracle + v10.02.0 + </li> + <li><strong>perl module:</strong> + DBD::Oracle v1.19</li> + </ul> + <h3 id="v36_req_modules">Required Perl Modules</h3> -[% INCLUDE req_table reqs = REQUIRED_MODULES - new = [] updated = [] %] - -<h3 id="v36_req_optional_mod">Optional Perl Modules</h3> - +<table class="req_table" border="0" cellspacing="0" cellpadding="0"> + <tr> + <th>Module</th> <th>Version</th> + </tr> + <tr> + <td >CGI</td> + <td >3.21 + </td> + </tr> + <tr> + <td >Digest::SHA</td> + <td > + (Any) + </td> + </tr> + <tr> + <td >Date::Format</td> + <td >2.21 + </td> + </tr> + <tr> + <td >DateTime</td> + <td >0.28 + </td> + </tr> + <tr> + <td >DateTime::TimeZone</td> + <td >0.71 + </td> + </tr> + <tr> + <td >DBI</td> + <td >1.41 + </td> + </tr> + <tr> + <td >Template</td> + <td >2.22 + </td> + </tr> + <tr> + <td >Email::Send</td> + <td >2.00 + </td> + </tr> + <tr> + <td >Email::MIME</td> + <td >1.861 + </td> + </tr> + <tr> + <td >Email::MIME::Encodings</td> + <td >1.313 + </td> + </tr> + <tr> + <td >Email::MIME::Modifier</td> + <td >1.442 + </td> + </tr> + <tr> + <td >URI</td> + <td > + (Any) + </td> + </tr> +</table> + +<h3 id="v36_req_optional_mod">Optional Perl Modules</h3> + <p>The following perl modules, if installed, enable various features of [% terms.Bugzilla %]:</p> -[% INCLUDE req_table reqs = OPTIONAL_MODULES - new = ['JSON-RPC', 'Test-Taint'] - updated = ['Chart'] - include_feature = 1 %] +<table class="req_table" border="0" cellspacing="0" cellpadding="0"> + <tr> + <th>Module</th> <th>Version</th> + <th>Enables Feature</th> + </tr> + <tr> + <td >GD</td> + <td >1.20 + </td> + <td>Graphical Reports, New Charts, Old Charts</td> + </tr> + <tr> + <td >Chart::Lines</td> + <td class="req_new">2.1 + </td> + <td>New Charts, Old Charts</td> + </tr> + <tr> + <td >Template::Plugin::GD::Image</td> + <td > + (Any) + </td> + <td>Graphical Reports</td> + </tr> + <tr> + <td >GD::Text</td> + <td > + (Any) + </td> + <td>Graphical Reports</td> + </tr> + <tr> + <td >GD::Graph</td> + <td > + (Any) + </td> + <td>Graphical Reports</td> + </tr> + <tr> + <td >XML::Twig</td> + <td > + (Any) + </td> + <td>Move [% terms.Bugs %] Between Installations, + Automatic Update Notifications</td> + </tr> + <tr> + <td >MIME::Parser</td> + <td >5.406 + </td> + <td>Move [% terms.Bugs %] Between Installations</td> + </tr> + <tr> + <td >LWP::UserAgent</td> + <td > + (Any) + </td> + <td>Automatic Update Notifications</td> + </tr> + <tr> + <td >PatchReader</td> + <td >0.9.4 + </td> + <td>Patch Viewer</td> + </tr> + <tr> + <td >Net::LDAP</td> + <td > + (Any) + </td> + <td>LDAP Authentication</td> + </tr> + <tr> + <td >Authen::SASL</td> + <td > + (Any) + </td> + <td>SMTP Authentication</td> + </tr> + <tr> + <td >Authen::Radius</td> + <td > + (Any) + </td> + <td>RADIUS Authentication</td> + </tr> + <tr> + <td >SOAP::Lite</td> + <td >0.710.06 + </td> + <td>XML-RPC Interface</td> + </tr> + <tr> + <td class="req_new">JSON::RPC</td> + <td class="req_new"> + (Any) + </td> + <td>JSON-RPC Interface</td> + </tr> + <tr> + <td class="req_new">Test::Taint</td> + <td class="req_new"> + (Any) + </td> + <td>JSON-RPC Interface, XML-RPC Interface</td> + </tr> + <tr> + <td >HTML::Parser</td> + <td >3.40 + </td> + <td>More HTML in Product/Group Descriptions</td> + </tr> + <tr> + <td >HTML::Scrubber</td> + <td > + (Any) + </td> + <td>More HTML in Product/Group Descriptions</td> + </tr> + <tr> + <td >Email::MIME::Attachment::Stripper</td> + <td > + (Any) + </td> + <td>Inbound Email</td> + </tr> + <tr> + <td >Email::Reply</td> + <td > + (Any) + </td> + <td>Inbound Email</td> + </tr> + <tr> + <td >TheSchwartz</td> + <td > + (Any) + </td> + <td>Mail Queueing</td> + </tr> + <tr> + <td >Daemon::Generic</td> + <td > + (Any) + </td> + <td>Mail Queueing</td> + </tr> + <tr> + <td >mod_perl2</td> + <td >1.999022 + </td> + <td>mod_perl</td> + </tr> +</table> <h2 id="v36_feat">New Features and Improvements</h2> @@ -3196,7 +4069,7 @@ sub y { $var++ }</pre> [% BLOCK db_req %] [% SET m = DB_MODULE.$db %] - <h3 id="v36_req_[% db FILTER html %]">For [% m.name FILTER html %] Users</h3> + <h3 id="v40_req_[% db FILTER html %]">For [% m.name FILTER html %] Users</h3> <ul> <li>[% m.name FILTER html %] |