[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% SET title = "$terms.Bugzilla 4.2 Release Notes" %]
[% INCLUDE global/header.html.tmpl
title = title
style_urls = ['skins/standard/page.css']
%]
[% title FILTER html %]
Introduction
Welcome to [% terms.Bugzilla %] 4.2! It has been almost a year since we
released [% terms.Bugzilla %] 4.0 on February 2011, and this new major
release comes with several new features and improvements. This release
contains major improvements to search, support for SQLite, improved
WebServices, and lots of other enhancements.
If you are upgrading from a release before 4.0, make sure to read the
release notes for all the previous versions
in between your version and this one, particularly the Upgrading
section of each version's release notes.
Updates in this 4.2.x Release
4.2.2
This release fixes two security issues. See the
Security Advisory
for details.
In addition, the following important fixes/changes have been made in this
release:
- A regression introduced in [% terms.Bugzilla %] 4.0 caused some login
names to be ignored when entered in the CC list of [% terms.bugs %].
([% terms.Bug %] 756314)
- Some queries could trigger an invalid SQL query if strings entered by
the user contained leading or trailing whitespaces.
([% terms.Bug %] 760075)
- The auto-completion form for keywords no longer automatically selects
the first keyword in the list when the field is empty.
([% terms.Bug %] 764517)
- A regression in [% terms.Bugzilla %] 4.2 prevented classifications
from being used in graphical and tabular reports in the "Multiple Tables"
field.
([% terms.Bug %] 753688)
- Attachments created by the email_in.pl script were associated
to the wrong comment.
([% terms.Bug %] 762785)
- Very long dependency lists can now be viewed correctly.
([% terms.Bug %] 762783)
- Keywords are now correctly escaped in the auto-completion form to prevent
any XSS abuse.
([% terms.Bug %] 754561)
- A regression introduced in [% terms.Bugzilla %] 4.0rc2 when fixing
CVE-2011-0046 caused the "Un-forget the search" link to not work correctly
anymore when restoring a deleted saved search, because this link was
lacking a valid token.
([% terms.Bug %] 768870)
- Two minor CSRF vulnerabilities have been fixed which could let an attacker
alter your default search criteria in the Advanced Search page.
([% terms.Bugs %] 754672
and 754673)
4.2.1
This release fixes one security issue. See the
Security Advisory
for details.
In addition, the following important fixes/changes have been made in this
release:
- Due to a regression introduced when fixing CVE-2012-0453, if an XML-RPC
client sets the charset as part of its Content-Type header, we were
incorrectly rejecting the request. The header is now correctly parsed.
([% terms.Bug %] 731219)
- Email notifications about status changes in blockers were incorrectly
formatted. Several pieces of text were missing in the emails.
([% terms.Bug %] 731586)
- Many [% terms.bugs %] related to the searching system have been fixed.
(
[% terms.Bugs %] 58179, 715270, 730984, 731163 and 737436)
- When using the QuickSearch box, complex queries are now parsed correctly.
It also behaves correctly with non-ASCII characters (such as é, ä, ü, etc.).
(
[% terms.Bugs %] 554819, 663377 and 730207)
- The 'take' link besides the assignee field now works correctly when
the usemenuforusers parameter is turned on.
([% terms.Bug %] 734997)
- URLs in the 'Total' row at the bottom of tabular reports were broken
when JavaScript was enabled and a user field was used for the vertical
axis.
([% terms.Bug %] 731323)
- Some performance problems have been fixed for installations with many
products, components or versions.
(
[% terms.Bugs %] 695514 and 731055)
- A new hook named buglist_column_joins has been added to let
extensions alter the Bugzilla::Search::COLUMN_JOINS hash.
Now more fields can be displayed as columns in buglists, in combination
with the already existing buglist_columns hook.
([% terms.Bug %] 743991)
- A new hook named admin_editusers_action has been added to let
extensions alter the behavior of editusers.cgi. This lets you add
new features to this script very easily.
([% terms.Bug %] 730794)
Minimum Requirements
Any requirements that are new since 4.0.2 will look like
this.
Perl
Perl v5.8.1
[% INCLUDE db_req db='mysql' db_new => 1 dbd_new => 1 %]
[% INCLUDE db_req db='pg' db_new => 1 %]
[% INCLUDE db_req db='oracle' %]
[% INCLUDE db_req db='sqlite' %]
Required Perl Modules
[% INCLUDE req_table reqs = REQUIRED_MODULES
new = ['Math-Random-ISAAC']
updated = ['URI'] %]
Optional Perl Modules
The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:
[% INCLUDE req_table reqs = OPTIONAL_MODULES
new = ['Encode', 'Encode-Detect']
updated = ['PatchReader', 'Apache-SizeLimit']
include_feature = 1 %]
Optional Apache Modules
If you are using Apache as your webserver, [% terms.Bugzilla %] can
take advantage of some Apache features if you have the below Apache
modules installed and enabled. Currently,
certain [% terms.Bugzilla %] features
are enabled only if you have all of the following modules installed
and enabled:
- mod_headers
- mod_expires
- mod_env
On most systems (but not on Windows), checksetup.pl is able to
tell whether or not you have these modules installed, and it will tell
you.
New Features and Improvements
Experimental SQLite Support
SQLite is now supported by [% terms.Bugzilla %] and becomes the 4th supported
database besides MySQL, PostgreSQL and Oracle. SQLite support must be considered
as experimental, at least till the next major release.
Note that use of SQLite is only recommended for small installations. Larger
installations should use MySQL, PostgreSQL, or Oracle.
Creating an Attachment by Pasting Text Into a Text Field
You can now create a new attachment simply by pasting some text into a text
field, in addition to the normal upload process for attachments.
HTML [% terms.Bug %]mail
By default, [% terms.bug %]mails (email notifications about changes to
[%+ terms.bugs %]) are now sent in an HTML format that is more readable than
the old text format. Those who prefer the old text format can still choose it
in their Preferences, however.
Improved Searching System
The Custom Search section in the Advanced Search page has been redesigned
to work in a more sensible way. Complex queries are easier to build and have
more sensible results, as they are built using a more intuitive logic.
Some very complicated queries are still impossible to generate, though.
Things should improve in future releases.
Disabling Old Components, Versions and Milestones
Older components, versions and milestones can now be disabled. [% terms.Bugs %]
already using them are not affected, but these values will no longer be
available for new [% terms.bugs %].
Displaying a Custom Field Value Based on Multiple Values
of Another Field
A custom field can now be displayed based on multiple values of another field.
(For example, one custom field could now appear in multiple products.)
Previously, you could only display a custom field based on a single value of
another field.
Auditing of All Changes Within [% terms.Bugzilla %]
Most changes made through the admin interface are now logged to the database,
in the audit_log table. There is no UI to access this table yet,
but developers are free to create their own tools to track changes made into
their installation. This is only a first step, and improvements are expected
in future releases.
Accessibility Improvements
A project has started thanks to Francisco Donalisio from IBM to make
[%+ terms.Bugzilla %] compliant with the W3C Web Accessibility Initiative
standards. A lot more work still needs to be done, but we expect a much
better compatibility for the next major release.
Other Enhancements and Changes
Enhancements for Users
- [% terms.Bugs %]: Users without editbugs privileges can
no longer remove other users from the CC list of [% terms.bugs %].
- [% terms.Bugs %]: Local [% terms.bug %] IDs are now valid
in the See Also field. Adding such an ID will also add a reciprocal link in
the other [% terms.bug %].
- [% terms.Bugs %]: After editing [% terms.abug %] or an
attachment, the URL is automatically changed to show_bug.cgi
instead of post_bug.cgi, process_bug.cgi or
attachment.cgi so that reloading the page (for instance when
restarting the web browser) displays the right page. This feature is supported
by Firefox, Chrome and Safari, but not by Internet Explorer 9.
- [% terms.Bugs %]: Inactive accounts are no longer
displayed in user fields when user-autocompletion is enabled.
- [% terms.Bugs %]: User-autocompletion is now much faster
on installations with many user accounts.
- [% terms.Bugs %]: The See Also field now accepts URLs
pointing to MantisBT, Trac, JIRA and the sourceforge.net b[%%]ug trackers.
- [% terms.Bugs %]: Displaying [% terms.abug %] with many
dependencies is now much faster.
- Attachments: The encoding of text files can be automatically
detected when uploading them as attachments.
- Attachments: Clickjacking could possibly occur in an attachment
Details page if a user attached a specially formatted HTML file. To fix this
potential problem, the Details page always displays the HTML source instead and
users can see rendered page by clicking on View.
- Flags: Changing the requestee of a flag no longer changes
the requester.
- Reports: If JavaScript is enabled in your web browser,
tabular reports are now sortable based on any displayed column.
- Dependency graphs: The Show every [% terms.bug %] in
the system with dependencies option has been removed.
- Searches: The columns displayed by default in
[%+ terms.bug %]lists have changed. These columns are now displayed by default
unless otherwise specified:
product | component | assignee | [% terms.bug %] status | resolution |
[%+ terms.bug %] summary | last change date
This means that the priority, severity and operating system columns are no
longer displayed by default.
- Searches: [% terms.Bug %]lists will now only display the
first 500 [% terms.bugs %] by default. It is still possible to display the
whole list, though.
- Searches: When using relative dates and times, -1w
is now a synonym for -7d and means exactly 7 days. Previously,
-1w meant the beginning of the week, which was confusing some users.
The same confusion existed for -1d which was different from
-24h, and for -1m which was different from -30d.
Now if you really want the beginning of the day, week or month, you must use
-1ds, -1ws, and -1ms respectively, where
"s" means "start of". This change will affect existing saved searches using
relative dates.
- Searches: A new Include fulltext when performing quick
searches user preference has been added which permits users to include
or exclude comments when using quicksearches.
- Searches: It is now possible to query for [% terms.bugs %]
based on personal tags in the Custom Search section in the Advanced Search
page.
- Email notifications: The date and time of comments are no
longer displayed in the comment header in [% terms.bug%]mails. This information
is already available in the email header itself.
Enhancements for Administrators and Developers
- Installation: checksetup.pl is now much quieter
when creating a new database.
- Security: [% terms.Bugzilla %] 4.0 is using
Math::Random::Secure to generate cryptographically secure
pseudorandom numbers, but it appeared that installing this Perl module from
CPAN caused a lot of trouble for some people due to its numerous dependencies.
So the RNG code has been rewritten to only depend on Math::Random::ISAAC,
which was already in use in previous versions of [% terms.Bugzilla %].
- Security: X-Frame-Options = SAMEORIGIN is now
passed to all page headers (except when viewing attachments, as they can be
on a different host) to protect users from framing and subsequent possible
clickjacking problems.
- Configuration: A new parameter password_complexity
has been added (default: no_constraints) which allows admins to force users
to use passwords with a higher complexity, such as a combination of uppercase
and lowercase letters, numbers and special characters, or a subset of them.
- Configuration: A new parameter search_allow_no_criteria
has been added (default: on) which allows admins to forbid queries with no
criteria. This is particularly useful for large installations with several
tens of thousands [% terms.bugs %] where returning all [% terms.bugs %]
doesn't make sense and would have a performance impact on the database.
- Configuration: A new parameter default_search_limit
has been added (default: 500) which limits the number of [% terms.bugs %]
displayed by default in a [% terms.bug%]list. The user can ask to see a larger
list, though.
- Configuration: A new parameter max_search_results
has been added (default: 10000) which limits the number of [% terms.bugs %]
a user can request at once in a [% terms.bug%]list. This is a hard limit and
a user cannot bypass this value.
- Configuration: A new parameter ajax_user_autocompletion
has been added (default: on) to allow administrators to disable auto-completion
when typing characters in user fields. This parameter should only be disabled
if your installation is unable to support the load generated by this feature.
- Configuration: The config_modify_panels hook now
lets you add additional parameters to existing parameters panels.
- Flags: Users with local editcomponents privileges can now
edit flag types for products they can administer.
- Quips: A new system group bz_quip_moderators has
been created to moderate quips. Till now, you had to be in the admin
group to do that.
- importxml.pl now inserts each comment separately into the imported
[%+ terms.bug %] instead of concatenating them all into a single comment.
- email_in.pl now ignores auto-submitted incoming emails (for
instance, all these "out of office" emails).
- New code hooks: email_in_before_parse, email_in_after_parse,
install_filesystem, install_update_db_fielddefs, job_map, object_end_of_create,
quicksearch_map, user_preferences.
WebService Changes
- Two new methods have been added: Product.create and
Group.create.
- B[%%]ug.update no longer throws an error when passing an empty
string to see_also. It now simply ignores this empty value.
- Product.get now also returns data about the classification it
belongs to as well as its components, milestones and versions. It also
returns the default_milestone and has_unconfirmed
attributes.
- In B[%%]ug.fields, the sortkey attribute used in
values has been renamed to sort_key.
- In B[%%]ug.attachments and B[%%]ug.add_attachment,
the is_url attribute no longer exists.
Outstanding Issues
-
[%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at
the same time, there is no "mid-air collision" protection.
-
[%- terms.Bug %] 276230: The support for restricting access to
particular Categories of New Charts is not complete. You should treat the
chartgroup parameter as the only access mechanism available.
-
[%- terms.Bug %] 584742: When viewing [% terms.abug %], WebKit-based
browsers can automatically reset a field's selected value when the field
has disabled values.
Code Changes Which May Affect Customizations and Extensions
- The email/newchangedmail.txt.tmpl template is now fully templatized,
meaning that the diff table displaying changes in [% terms.bug %] fields is
now generated in the template itself. This means [% terms.bug %]mails are now
fully localizable.
- The bugmail_recipients hook has been modified to pass diffs with
changes made to the [% terms.bug %] as well as users including
recipients of the email notification.
- YUI has been upgraded to 2.9.0.
- Due to the major code refactor of B[%%]ugzilla/Search.pm, any
customization made against this file will probably need to be rewritten.
- The [% terms.Bugzilla %]-specific url_quote filter used in templates
has been removed and replaced by the uri filter from Template::Toolkit
as they are now similar.
- long_list.cgi, showattachment.cgi and xml.cgi
have been removed from the codebase. As announced
in the release notes of [% terms.Bugzilla %] 4.0, these scripts were deprecated
since [% terms.Bugzilla %] 2.19.
- sidebar.cgi has been removed, because Gecko-based browsers no
longer support remote XUL, and its popularity is very low.
- contrib/yp_nomail.sh has been removed. This script is no longer
useful since [% terms.Bugzilla %] 3.0.
- contrib/bugzilla_ldapsync.rb has been removed. This script didn't
work for a long time.
[% terms.Bugzilla %] 4.0 Release Notes
Introduction
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.
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.
If you're upgrading, make sure to read Notes
On Upgrading From a Previous Version. If you are upgrading from a release
before 3.6, make sure to read the release notes for all the
previous versions in between your version
and this one, particularly the Upgrading section of each
version's release notes.
We would like to thank
ITA Software,
the IBM Linux Technology Center,
and Red Hat for funding the development
of certain features and improvements in this release of
[%+ terms.Bugzilla %].
Updates in this 4.0.x Release
4.0.2
This release fixes several security issues. See the
Security Advisory
for details.
In addition, the following important fixes/changes have been made in this
release:
- The B[% %]ug.create WebService method now throws an error if you
pass a group name which doesn't exist. In [% terms.Bugzilla %] 4.0 and 4.0.1,
this group name was silently ignored, leaving your [% terms.bug %] unsecure
if no other group applied.
([% terms.Bug %] 653341)
- Moving several [% terms.bugs %] at once into another product displayed the
same confirmation page again and again, and changes were never committed
(regressed in 4.0).
([% terms.Bug %] 663208)
- Marking [% terms.abug %] as a duplicate now works in Internet Explorer 9.
([% terms.Bug %] 656769)
- importxml.pl no longer crashes when importing keywords (regressed
in 4.0).
([% terms.Bug %] 657707)
- Data entered while reporting a new [% terms.bug %] could be lost if you had
to click the "Back" button of your web browser.
([% terms.Bug %] 652427)
- WebServices methods will return undefined [% terms.bug %] fields as undefined
instead of as an empty string. This change is consistent with how
[%+ terms.Bugzilla %] 4.2 behaves.
([% terms.Bug %] 657561)
- The XML-RPC interface now works with SOAP::Lite 0.711 and 0.712 under mod_perl.
([% terms.Bug %] 600810)
- LWP 6.00 and newer require Perl 5.8.8 and above. When installing this module
using install-module.pl on a Perl installation older than 5.8.8,
LWP 5.837 will be installed instead.
([% terms.Bug %] 655912)
- Viewing [% terms.abug %] report should be significantly faster when your
installation has many custom fields.
([% terms.Bug %] 634812)
4.0.1
Minimum Requirements
Any requirements that are new since 3.6.3 will look like
this.
Perl
Perl v5.8.1
For MySQL Users
- MySQL v4.1.2
- perl module: DBD::mysql v4.00
For PostgreSQL Users
- PostgreSQL v8.00.0000
- perl module: DBD::Pg v1.45
For Oracle Users
- Oracle v10.02.0
- perl module: DBD::Oracle v1.19
Required Perl Modules
Module | Version |
CGI |
3.51 |
Digest::SHA |
(Any) |
Date::Format |
2.21 |
DateTime |
0.28 |
DateTime::TimeZone |
0.71 |
DBI |
1.41 |
Template |
2.22 |
Email::Send |
2.00 |
Email::MIME |
1.904 |
URI |
(Any) |
List::MoreUtils |
0.22 |
Optional Perl Modules
The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:
Module | Version | Enables Feature |
GD |
1.20 |
Graphical Reports, New Charts, Old Charts |
Chart::Lines |
2.1 |
New Charts, Old Charts |
Template::Plugin::GD::Image |
(Any) |
Graphical Reports |
GD::Text |
(Any) |
Graphical Reports |
GD::Graph |
(Any) |
Graphical Reports |
MIME::Parser |
5.406 |
Move [% terms.Bugs %] Between Installations |
LWP::UserAgent |
(Any) |
Automatic Update Notifications |
XML::Twig |
(Any) |
Move [% terms.Bugs %] Between Installations, Automatic Update
Notifications |
PatchReader |
0.9.4 |
Patch Viewer |
Net::LDAP |
(Any) |
LDAP Authentication |
Authen::SASL |
(Any) |
SMTP Authentication |
Authen::Radius |
(Any) |
RADIUS Authentication |
SOAP::Lite |
0.712 |
XML-RPC Interface |
JSON::RPC |
(Any) |
JSON-RPC Interface |
JSON::XS |
2.0 |
Make JSON-RPC Faster |
Test::Taint |
(Any) |
JSON-RPC Interface, XML-RPC Interface |
HTML::Parser |
3.40 |
More HTML in Product/Group Descriptions |
HTML::Scrubber |
(Any) |
More HTML in Product/Group Descriptions |
Email::MIME::Attachment::Stripper |
(Any) |
Inbound Email |
Email::Reply |
(Any) |
Inbound Email |
TheSchwartz |
(Any) |
Mail Queueing |
Daemon::Generic |
(Any) |
Mail Queueing |
mod_perl2 |
1.999022 |
mod_perl |
Apache2::SizeLimit |
0.93 |
mod_perl |
Math::Random::Secure |
0.05 |
Improve cookie and token security |
Optional Apache Modules
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,
certain [% terms.Bugzilla %] features
are enabled only if you have all of the following modules installed
and enabled:
- mod_headers
- mod_expires
- mod_env
On most systems (but not on Windows), checksetup.pl is able to
tell whether or not you have these modules installed, and it will tell
you.
New Features and Improvements
Automatic Duplicate Detection When Filing
[%+ terms.Bugs %]
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.
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.
New Advanced Search UI
Thanks to the UI work of Guy
Pyrzak, 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.
New Attachment Details UI
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.
Thanks to Guy Pyrzak for
his excellent work on this UI redesign.
Autocomplete for Users and Keywords
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 much
faster on installations that run under mod_perl than it will be on
other installations.
There is also a similar autocomplete for the Keywords field. The
Keywords autocomplete does not require JSON-RPC.
General Usability Improvements
In addition to the enhancements listed above, there have been
many improvements made across the [% terms.Bugzilla %]
user interface. For a list of specific enhancements that were significant,
see the Other Enhancements and Changes
section.
New Default Status Workflow
For new installations of [% terms.Bugzilla %], the default set of
statuses will now be:
- UNCONFIRMED
- CONFIRMED
- IN_PROGRESS
- RESOLVED
- VERIFIED
And the UNCONFIRMED status will be enabled by default in all products.
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, contrib/convert-workflow.pl, which you
can run after you use checksetup.pl to upgrade. The
whineatnews.pl and bugzilla-submit 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).
For more information about the workflow and our rationale for changing
it, see the
blog
post about it and the
[% terms.bug %]
where the change was made.
"Last Search" Now Remembers Multiple Searches
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 last search you did. Now, [% terms.Bugzilla %]
will "remember" which search result you came from and give you the right
"last search results" or "next [% terms.bug %]" from that list,
instead of always using your most recent search.
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.
Cross-Domain WebServices with JSONP
[% terms.Bugzilla %] now supports making WebService calls from
another domain, inside of a web browser, thanks to support for
JSONP.
This will allow for web "mash-ups" to use [% terms.Bugzilla %] data.
When using JSONP, you may only call functions that get data,
you may not call functions that change data.
For more details, see the
JSONP
section of the JSON-RPC WebService documentation.
Major WebService Enhancements
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
WebService Changes section of these
release notes.
Mandatory Custom Fields
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.
Voting Is Now An Extension
All of the code for voting in [% terms.Bugzilla %] has been moved
into an extension, called "Voting", in the extensions/Voting/
directory. To enable it, you must remove the disabled file
from that directory, and run checksetup.pl.
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.
Users Get New CSS and Javascript
Automatically
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 optional Apache modules
installed and enabled, users will automatically get every new version of
[%+ terms.Bugzilla %]'s Javascript and CSS without having to clear
their caches.
This feature also gives a slight performance speedup to
[%+ terms.Bugzilla %] in some cases, and so we recommend that all
administrators install and enable the optional Apache modules if possible.
Many New Hooks
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 %].
New Apache Configuration
If you run [% terms.Bugzilla %] under Apache (as most people do),
you most likely require a new Apache configuration
for this version of [% terms.Bugzilla %]. See the
Notes On Upgrading From a Previous Version
section for details.
Other Enhancements and Changes
Enhancements for Users
- 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.
- The big icons on the front page have been replaced with much nicer
icons, thanks to Jon Pink of J. Pink Design!
- [% terms.Bugs %]: When filing [% terms.bugs %],
you will now be warned if you forgot to fill in any mandatory fields,
before the page is submitted.
- [% terms.Bugs %]: 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.
- [% terms.Bugs %]: When adding Hours Worked to [% terms.abug %],
you are no longer required to comment.
- [% terms.Bugs %]: There is now a user preference
for whether the comment box appears above or below the existing
comments.
- [% terms.Bugs %]: [% 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.
- [% terms.Bugs %]: 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.
- Searches: You can now properly search for field values
that have commas in their name, when using the Advanced Search form.
- Searches: The "URL" field can now be shown as a column
in search results.
- Searches: 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.
- Searches: 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.
- Searches: Multi-select custom fields can now be
shown as columns in the search results.
- Searches: 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.
- Searches: If you hover your mouse over the field labels
on the Advanced Search page, you will get a description of what that
field is.
- Searches: When searching via a saved search, if you
accidentally click on "Forget Search", there is a link to undo it.
- Searches: 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.
- Flags: 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.
- Flags: When setting a flag on [% terms.abug %],
the box for entering a requestee does not appear until you set the flag
to "?", now.
- Flags: 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.
- 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.
- [% terms.Bugzilla %] now prevents
Internet Explorer 8 and later from attempting to render
text/plain attachments as HTML.
- If you receive a Whine mail that is empty, there will now be a brief
message explaining that your search found no results.
- The Field Help Page now
contains a description of every single field that can be on
[%+ terms.abug %] in [% terms.Bugzilla %].
Enhancements for Administrators and Developers
- The system for moving [% terms.bugs %] between installations has been
moved into an extension called OldBugMove. 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 extensions/OldBugMove/disabled
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.
- Custom Fields: "[% 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.
- Custom Fields: You can now restrict the visibility
of custom fields and their values to a specific Component or
Classification.
- The "keyword cache" has been removed. When you edit keywords, you no
longer will have to "rebuild the keyword cache" after you are done.
- Running ./collectstats.pl --regenerate will now take
minutes or hours, instead of days.
- When using email_in.pl, there are two new switches,
--default and --override, which allow you to
specify certain default values or override specified values for
@field 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.)
- Installation: If you are using a localized version of
[%+ terms.Bugzilla %] and your terminal does not understand Unicode,
checksetup.pl will now attempt to output its messages in your
terminal's character set.
- Installation: [% terms.Bugzilla %] no longer needs empty
"placeholder" CSS in the skins/custom directory and other
directories. When you update, checksetup.pl will remove these.
This also significantly reduces the number of HTTP requests required to
load a page for the first time in [% terms.Bugzilla %].
- Installation: For Windows users, [% terms.Bugzilla %]
now supports Strawberry Perl fully.
- Installation: Now, whenever checksetup.pl
throws an error, it will be printed in the color red, to make it
obvious that something is wrong.
- Installation: Some actions of checksetup.pl were
silent, in the past. Now, checksetup.pl will print a message for
almost anything it does.
- Installation: 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.
- If you are using jobqueue.pl and email gets heavily delayed
for some reason, those emails will now have a Date header reflecting the
time they were supposed to be sent, instead of when they actually
were sent.
- ./jobqueue.pl install now works on SuSE Linux.
- [% terms.Bugzilla %] now runs much better in Apache's suexec mode
than it used to. As part of this, checksetup.pl 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.
- The sendmailnow parameter has been removed, as it was
not necessary for any modern version of Sendmail or other Mail Transfer
Agent.
- When editing a user via the Users administration panel, you can now
see if they are a Default CC on any component.
- For new installations of [% terms.Bugzilla %], all users will be
able to see and use the Whining system by default.
- When you are using SSL with [% terms.Bugzilla %], you can now
turn on the strict_transport_security parameter to
send the
Strict-Transport-Security
header with every HTTPS connection, for additional security.
- New code hooks (see their documentation in
Bugzilla::Hook):
bug_check_can_change_field, search_operator_field_override,
bugmail_relationships, object_columns, object_update_columns,
and object_validators. The colchange_columns hook has been removed,
as it is no longer necessary (buglist_columns will be used for data
about which columns can be on the [% terms.bug %] list).
- 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.
- There is now a test, xt/search.t, that assures that all
of the functionality of Bugzilla::Search 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
perldoc xt/search.t at the command line.
- [% terms.Bugzilla %] now sends the
X-Frame-Options: SAMEORIGIN
header
with every page request in order to prevent "clickjacking" attacks. Note
that this prevents other domains from displaying [% terms.Bugzilla %]
in an HTML frame.
WebService Changes
- You can now call some JSON-RPC methods using HTTP GET, in addition to
using HTTP POST. See the
JSON-RPC
documentation for details.
- You can now update existing [% terms.bugs %] using the
B[% %]ug.update
function.
- You can now add attachments to [% terms.bugs %] using the
B[% %]ug.add_attachment
function.
- The B[% %]ug.get function now returns all of [% terms.abug %]'s
information other than comments and attachments.
- B[% %]ug.get no longer returns the internals hash.
- The B[% %]ug.attachments function now also returns attachment
data.
- The following functions now support the include_fields
and exclude_fields arguments: B[% %]ug.get,
B[% %]ug.search, and B[% %]ug.attachments. 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.
- You can now mark the initial description of [% terms.abug %] as
private when filing [% terms.abug %] via the B[% %]ug.create
function.
- You can now specify groups to put [% terms.abug %] in, in the
B[% %]ug.create
function. (This also means that you can specify groups when filing
[%+ terms.abug %] via email_in.pl.)
- The User.get function now accepts groups
and group_ids arguments, to limit the returned values to
only users in the specified groups.
- 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 %].
- You can no longer search using the votes argument in
B[% %]ug.search.
- B[% %]ug.attachments 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 also returned as "description",
for backwards compatibility, but this backwards compatibility will go
away in [% terms.Bugzilla %] 5.0.
- In the return values of various B[% %]ug 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.
Outstanding Issues
-
[%- terms.Bug %] 423439: Tabs in comments will be converted
to four spaces, due to a bug in Perl as of Perl 5.8.8.
-
[%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at
the same time, there is no "mid-air collision" protection.
-
[%- terms.Bug %] 276230: 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.
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.
Notes On Upgrading From a Previous Version
IMPORTANT: Apache Configuration Change
mod_cgi
If you run [% terms.Bugzilla %] under mod_cgi (this is the most common
configuration, involving a <Directory> block in your Apache config
file), you will need to update the configuration of Apache for
[%+ terms.Bugzilla %]. In particular, this line in the [% terms.Bugzilla %]
<Directory> block:
AllowOverride Limit
needs to become:
AllowOverride Limit FileInfo Indexes
For full details on how to configure Apache for [% terms.Bugzilla %],
see the
Configuration
section of the [% terms.Bugzilla %] Guide.
mod_perl
If your [% terms.Bugzilla %] runs under mod_perl, the required Apache
configuration is now simpler. The line that used to look like:
PerlSwitches -w -T -I/var/www/html/bugzilla
-I/var/www/html/bugzilla/lib
Now should be only:
PerlSwitches -w -T
The PerlConfigRequire
line should stay the same, however.
New .htaccess file
In previous versions of [% terms.Bugzilla %], there was a file
in [% terms.Bugzilla %]'s root directory called ".htaccess" that was
generated by checksetup.pl. This file is now shipped with
[%+ terms.Bugzilla %] instead of being generated during installation.
If you update via CVS or bzr, you will get a message that your existing
.htaccess file conflicts with the new one. You must
remove your existing .htaccess file 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.
Code Changes Which May Affect Customizations and
Extensions
- In Extensions, if you want to serve files to the user via the web,
they must now be in a web/ subdirectory of your Extension.
(For example, extensions/Foo/web/). checksetup.pl
sets permissions on extensions much more strictly now, and files in
other locations (such as your base extensions/Foo/ directory)
will no longer be available to [% terms.Bugzilla %] users via the web
under certain configurations.
- 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, checksetup.pl
will convert any such skins into a directory with a single
global.css file in them.
- When updating [% terms.bugs %], you should now use
$bug->set_all
instead of using the individual
set_ methods. In particular, set_all is now the
only way to set the product of [% terms.abug %]. See
process_bug.cgi for an example of how set_all
should be used.
- 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 style_urls or
javascript_urls 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.)
- When calling Bugzilla::BugMail::Send, the "changer"
argument must now be a Bugzilla::User object, not just
a login name. The "owner" and "qacontact" arguments are still
just login names.
- When creating a new subclass of Bugzilla::Object, you should no
longer use UPDATE_VALIDATORS. Also, in most cases you will
no longer need to override run_create_validators. Instead,
there is a new constant called
VALIDATOR_DEPENDENCIES,
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 VALIDATOR_DEPENDENCIES, see
Bugzilla/Field.pm.
- In previous versions of [% terms.Bugzilla %], you had to call
Bugzilla->template_inner("")
after any time
that you called template_inner for a specific language.
It is no longer necessary to do this second template_inner
call.
- post_bug.cgi and Bugzilla::Bug->create now take
the names of groups instead of group ids.
- Bugzilla::Bugmail now uses Bugzilla::Bug objects internally instead of
a lot of direct SQL.
- For sending changes about [% terms.bugs %], there is now a method
called send_changes that you can call on Bugzilla::Bug
objects. For an example of its use, see process_bug.cgi.
- The Bugzilla::Search class has been refactored, and should
now be easier to customize.
- The Bugzilla::Util::lsearch function is gone. Use
firstidx from List::MoreUtils, instead.
- [% terms.Bugzilla %] now includes YUI 2.8.2.
- long_list.cgi, showattachment.cgi and
xml.cgi are deprecated scripts which are no longer actively
used since [% terms.Bugzilla %] 2.19. These scripts will be removed in
[%+ terms.Bugzilla %] 4.2.
Release Notes For Previous Versions
Release Notes for
[%+ terms.Bugzilla %] 3.x and Earlier
[% INCLUDE global/footer.html.tmpl %]
[% BLOCK db_req %]
[% SET m = DB_MODULE.$db %]
For [% m.name FILTER html %] Users
- [% m.name FILTER html %]
[%+ '' IF db_new %]v[% m.db_version FILTER html %]
[% '' IF db_new %]
- perl module:
[%+ m.dbd.module FILTER html %]
[% '' IF dbd_new %]v[% m.dbd.version FILTER html %]
[% '' IF dbd_new %]
[% END %]
[% BLOCK req_table %]
Module | Version |
[% IF include_feature %]
Enables Feature |
[% END %]
[% FOREACH req = reqs %]
[%- req.module FILTER html %] |
[%- IF req.version == 0 %]
(Any)
[% ELSE %]
[%- req.version FILTER html %]
[% END %]
|
[% IF include_feature %]
[% req.feature.join(', ') FILTER html %] |
[% END %]
[% END %]
[% END %]