Bugzilla 5.0 Release Notes

Introduction

Welcome to Bugzilla 5.0! It has been slightly over two years since we released Bugzilla 4.4 in May of 2013. This new major release comes with many new features and improvements to WebServices and performance.

If you're upgrading, make sure to read the upgrade instructions, and the relevant release notes from previous versions, which we have compiled into a handy list for you.

Minimum Requirements

Any requirements that are new since 4.4 will look like this.

Perl

Perl v5.10.1

For MySQL Users

MySQL v5.0.15

perl module: DBD::mysql v4.001

For PostgreSQL Users

PostgreSQL v8.03.0000

perl module: DBD::Pg v2.7.0

For Oracle Users

Oracle v10.02.0

perl module: DBD::Oracle v1.19

For SQLite Users

SQLite v3.6.22

perl module: DBD::SQLite v1.29

Required Perl Modules

Module Version CGI 3.51 Digest::SHA (Any) Date::Format 2.23 DateTime 0.75 DateTime::TimeZone 1.64 DBI 1.614 Template 2.24 Email::Sender 1.300011 Email::MIME 1.904 URI 1.55 List::MoreUtils 0.32 Math::Random::ISAAC 1.0.1 File::Slurp 9999.13 JSON::XS 2.01

Optional Perl Modules

The following perl modules, if installed, enable various features of Bugzilla:

Module Version Enables Feature GD 1.20 Graphical Reports, New Charts, Old Charts Chart::Lines 2.4.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 Bugs Between Installations LWP::UserAgent (Any) Automatic Update Notifications XML::Twig (Any) Move Bugs Between Installations, Automatic Update Notifications PatchReader 0.9.6 Patch Viewer Net::LDAP (Any) LDAP Authentication Authen::SASL (Any) SMTP Authentication Net::SMTP::SSL 1.01 SSL Support for SMTP Authen::Radius (Any) RADIUS Authentication SOAP::Lite 0.712 XML-RPC Interface XMLRPC::Lite 0.712 XML-RPC Interface JSON::RPC (Any) JSON-RPC Interface, REST Interface Test::Taint 1.06 JSON-RPC Interface, XML-RPC Interface, REST Interface HTML::Parser 3.67 More HTML in Product/Group Descriptions HTML::Scrubber (Any) More HTML in Product/Group Descriptions Encode 2.21 Automatic charset detection for text attachments Encode::Detect (Any) Automatic charset detection for text attachments Email::Reply (Any) Inbound Email HTML::FormatText::WithLinks 0.13 Inbound Email TheSchwartz 1.07 Mail Queueing Daemon::Generic (Any) Mail Queueing mod_perl2 1.999022 mod_perl Apache2::SizeLimit 0.96 mod_perl File::MimeInfo::Magic (Any) Sniff MIME type of attachments IO::Scalar (Any) Sniff MIME type of attachments Cache::Memcached (Any) Memcached Support File::Copy::Recursive (Any) Documentation

Optional Apache Modules

If you are using Apache as your webserver, Bugzilla can take advantage of some Apache features if you have the below Apache 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

Improved WebServices

This release has major improvements in the WebServices interface. One big addition is a new REST-like endpoint alongside the existing XML-RPC and JSON-RPC endpoints. This will allow clients to access Bugzilla data using standard HTTP calls for easy development. Note: XML-RPC and JSON-RPC are deprecated in favor of REST and will likely be removed in the Bugzilla 7.0 release.

Also API key support has been added so that API calls will no longer need to use cookies or a user's login and password. Users can create a different API key for each application and revoke API keys that have been compromised or are no longer needed. The API key will simply be passed to each call as credentials.

Several methods have been added and existing ones improved to allow returning data that was not available before such as Group.get . Bug.search is now as full featured as the Advanced Query UI allowing for the same searches to be executed. Attachment data such as flags and other metadata can now be updated through the API. Other WebService changes are detailed below.

Improved Caching using Memcached

Bugzilla now has the ability to connect to a Memcached server running either locally or on the network to allow fast access to different types of data. This cuts down on the amount of database hits and can improve performance. Other areas have been improved as well to take advantage of caching in memory for objects that are retrieved multiple times during a request such as user data, etc.

Users can add tags, visible to other users, to bug comments. This gives the users the ability to thread conversations, mark comments as spam, identify important comments, etc. Users can hide comments that contain specific tags if desired. The tag input field also supports autocompletion so commonly used tags can be selected. Administrators can make specifically tagged comments be automatically hidden from view.

Improved Bug Group Membership Checking

In the past, Bugzilla restricted who can view a bug to everyone who was a member of ALL the groups the bug was in. That is, the groups were ANDed together. This made some access control scenarios rather difficult to achieve. So now, Bugzilla defaults to (and can be switched to, in existing installations) a mode where the bug can be viewed by everyone who is a member of ANY group the bug is in. That is, the groups are ORed together. This give more flexibility in the way bugs are made private to specific groups of users.

Note: Group memberships for bugs and users are not changed at all when this setting is switched. When switching from AND to OR, this means that bugs may be more widely viewable than previously. It is the responsibility of the administrator to make sure that no bugs are accidentally revealed to the wrong people when changing this setting.

Improved Documentation for Users and Administrators

The standard documentation that is shipped along with the Bugzilla code has been rewritten and improved using the reStructuredText format. This allows the documentation to be easily hosted at sites such as ReadTheDocs.org and can also be more easily converted into different formats such as HTML and PDF. A new section dedicated to the new REST WebService API has also been added, significantly improving on the old WebService documentation.

Other Enhancements and Changes

Enhancements for Users

Bugs: The deadline field is now visible to users not in the the timetracking group.

The deadline field is now visible to users not in the the group. Bugs: There is now a "Preview" mode when creating a new comment that allows you to see how the comment will look before committing to the database.

There is now a "Preview" mode when creating a new comment that allows you to see how the comment will look before committing to the database. Bugs: The reporter is now allowed to enter keywords at time of bug creation.

The reporter is now allowed to enter keywords at time of bug creation. Bugs: "See Also" now allows spaces as well as commas to delimit multiple values.

"See Also" now allows spaces as well as commas to delimit multiple values. Bugs: Auto linkification in comments of bug IDs and comment IDs has been improved.

Auto linkification in comments of bug IDs and comment IDs has been improved. Bugs: Bugs can now have multiple aliases assigned to them. Before each bug could only have a single value. Also, aliases are now visible in the browser's title bar.

Bugs can now have multiple aliases assigned to them. Before each bug could only have a single value. Also, aliases are now visible in the browser's title bar. Bugs: Users can now change the flags of multiple bugs at once using the mass-edit form.

Users can now change the flags of multiple bugs at once using the mass-edit form. Charts and Reports: UTF-8 characters are now correctly displayed in "New Charts" and graphical reports.

UTF-8 characters are now correctly displayed in "New Charts" and graphical reports. Charts and Reports: Custom multi-select fields are now available as report axis options. This makes them usable for categorizing bugs in reports.

Custom multi-select fields are now available as report axis options. This makes them usable for categorizing bugs in reports. Email: You can now choose to not receive any mail at all about a particular bug, even if you continue to have a role on that bug (e.g. reporter).

You can now choose to not receive any mail at all about a particular bug, even if you continue to have a role on that bug (e.g. reporter). Email: When adding or removing a bug as a dependency, the summary of the bug is included in the email notification.

When adding or removing a bug as a dependency, the summary of the bug is included in the email notification. Requests: request.cgi can now output results in CSV format.

can now output results in CSV format. Requests: X-Bugzilla-* headers are now included in flag notification emails.

headers are now included in flag notification emails. Searches: Some useful searches have been added to the Bugzilla home page.

Some useful searches have been added to the Bugzilla home page. Searches: Quicksearch now allows for use of comparison operators such as !=, >=, >, <, etc., in addition to substring searches.

Quicksearch now allows for use of comparison operators such as !=, >=, >, <, etc., in addition to substring searches. Searches: The "Blocks" and "Depends On" values can now be displayed as columns in a bug list.

The "Blocks" and "Depends On" values can now be displayed as columns in a bug list. Searches: The "is empty" and "is not empty" search operators have been added to the Advanced Search UI. This allows searching for null and not null values for certain fields.

Enhancements for Administrators and Developers

Administration: There are now INTEGER and DATE custom field types.

There are now and custom field types. Administration: Filenames used to store product data for "Old Charts" are now based on product IDs to avoid data loss when changing product names.

Filenames used to store product data for "Old Charts" are now based on product IDs to avoid data loss when changing product names. Administration: JavaScript and CSS files are now minified and concatenated to improve page load performance. When changes are made, checksetup.pl should be run to regenerate the combined files.

JavaScript and CSS files are now minified and concatenated to improve page load performance. When changes are made, should be run to regenerate the combined files. Bugs: Bugzilla now keeps track of the last time each user visited (that is, loaded the show_bug page in a web browser) each bug. This could be useful for dashboards or API clients.

Bugzilla now keeps track of the last time each user visited (that is, loaded the show_bug page in a web browser) each bug. This could be useful for dashboards or API clients. Database: Text that contained unicode supplementary characters (outside BMP) was cut off when using MySQL as backend. This has been fixed to prevent data loss.

Text that contained unicode supplementary characters (outside BMP) was cut off when using MySQL as backend. This has been fixed to prevent data loss. Database: SSL connections are now possible when using MySQL as backend.

SSL connections are now possible when using MySQL as backend. Database: For version 8.x of PostgreSQL, plpgsql was not always installed by default and checksetup.pl would generate an error. This has been fixed.

For version 8.x of PostgreSQL, was not always installed by default and would generate an error. This has been fixed. Development: Bugzilla is now HTML5 compliant. As a consequence, Internet Explorer 6 and 7 are no longer supported.

Bugzilla is now HTML5 compliant. As a consequence, Internet Explorer 6 and 7 are no longer supported. Email: Email generation originally was done before the jobqueue job was inserted. This is now delayed and done by jobqueue.pl right before sending the email which can improve responsiveness when processing bug changes.

Email generation originally was done before the jobqueue job was inserted. This is now delayed and done by right before sending the email which can improve responsiveness when processing bug changes. Email: When a site administrator creates a new user, an email is sent to the user.

When a site administrator creates a new user, an email is sent to the user. Email: For dependency email notifications, the header X-Bugzilla-Type: dep_changed is set.

For dependency email notifications, the header is set. Email: whine.pl emails now use DEFAULT_COLUMN_LIST (the same default columns seen in the buglist page) instead of hard coded column list.

emails now use (the same default columns seen in the buglist page) instead of hard coded column list. Security: Support for increased values for PASSWORD_SALT_LENGTH without breaking compatibility with old hashes.

WebService Changes

Bug.search now allows for full search functionality similar to what is possible using the Advanced Query UI.

now allows for full search functionality similar to what is possible using the Advanced Query UI. Basic support for eTag headers has been added to all WebServices to allow for better network performance.

Administrators can now change a parameter that filters all email addresses returned in WebService calls similar to filtering that happens in the web UI.

WebService calls now support use of API keys for authentication. Usernames and passwords remain supported.

Invalid or expired authentication cookies and tokens now throw errors instead of being silently ignored. User.valid_login can be used to determine if they are still valid or not.

can be used to determine if they are still valid or not. WebService calls that are used to create and update bugs and attachments now support setting and updating of flags.

Bug.update_attachment can update an attachment's metadata as well as its flags.

can update an attachment's metadata as well as its flags. The product parameter for Bug.possible_duplicates has been renamed to products .

parameter for has been renamed to . Some compatibility fields included in returned data that were marked to be removed in this release are now gone.

Group.get has been added to get information about a group and its members.

has been added to get information about a group and its members. FlagType.get has been added to get information about valid flag types for a given product and component.

has been added to get information about valid flag types for a given product and component. The deprecated Bug.get_bugs and Bug.get_history methods are no longer supported. They have been renamed to Bug.get and Bug.history respectively.

Code Changes Which May Affect Customizations and Extensions