From: Dave Miller
Date: Tue, 3 Sep 2024 11:18:29 +0000 (-0400)
Subject: Bug 1786717: Release notes for Bugzilla 5.2 (#138)
X-Git-Tag: bugzilla-5.2~5
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=909319a6ea4fde711c6b64c0f3f04ce0322fb890;p=thirdparty%2Fbugzilla.git
Bug 1786717: Release notes for Bugzilla 5.2 (#138)
---
diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl
index e8b46ff87..f94cfc180 100644
--- a/template/en/default/pages/release-notes.html.tmpl
+++ b/template/en/default/pages/release-notes.html.tmpl
@@ -6,7 +6,7 @@
# defined by the Mozilla Public License, v. 2.0.
#%]
-[% SET title = "Bugzilla 5.0 Release Notes" %]
+[% SET title = "Bugzilla 5.2 Release Notes" %]
[% INCLUDE global/header.html.tmpl
title = title
bodyclasses = ['narrow_page']
@@ -16,7 +16,7 @@
- Introduction
- - Updates in this 5.0.x Release
+ - Updates since 5.0.4
- Minimum Requirements
- New Features and Improvements
- Outstanding Issues
@@ -29,9 +29,27 @@
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.
+Welcome to [% terms.Bugzilla %] 5.2! This is kind of a weird release to explain. Back in
+early 2019, versions 5.0.5 and 5.0.6 were released for the 5.0.x branch,
+however, these releases contained invasive database schema and code
+reformatting changes that technically should not have been allowed to land on a
+stable branch. Some people noticed this, and never upgraded from 5.0.4 since
+5.0.5 and 5.0.6 did not contain any security fixes. To fix this situation, 5.2
+is picking up where 5.0.6 left off, since 5.0.5 technically should have been
+5.2. Those still on 5.0.4 can upgrade to 5.0.4.1 if they're not ready to go a
+full version release yet.
+
+NOTE: Because of the above situation, version 5.1.x
+(development release) is actually NEWER code than 5.2, and you cannot "upgrade"
+to 5.2 from 5.1.x. The 5.1.x series has been retroactively renamed to
+5.3.x.
+
+[% terms.Bugzilla %] is making an attempt to be 100% accessible. We're not
+there yet. We have made accessibilty improvements but we're quite sure that
+we've missed a lot. If you find any accessibility issues such as fields missing
+labels, poor contrast, or things that don't play well with screen readers,
+please file a new [% terms.bug %] which blocks our
+Section 508 Compliance [% terms.bug %].
If you're upgrading, make sure to read
@@ -41,150 +59,24 @@
your version and this one, particularly the Upgrading section of each
version's release notes.
-Updates in this 5.0.x Release
+Updates in this 5.2.x Release
-5.0.6
-This release contains a schema change to the flagtypes table, allowing for many more flagtypes.
.
-The flagtypes table should have been using a mediumint for several releases, but due to [% terms.abug %] in the schema migration code this never happened.
-
-5.0.5
-
-This release reformats the code according to the same conventions as the popular Mojolicious product and includes a .perltidyrc
to do the same.
-You may use whatever coding style you want, but all files commited to the repo must be reformatted according to those rules.
-
-Additionally, we no longer follow the same release process as before. Releases will be more frequent.
-
-As it is now 2019, the bugs_fulltext table is now InnoDB instead of MyISAM. This may cause upgrade headaches.
-
-5.0.4
-
-This release fixes one security issue. See the
- Security Advisory
- for details.
-
-This release also contains the following [% terms.bug %] fixes:
-
-
- - checksetup.pl would fail to update Chart storage during pre-3.6 to 5.0 upgrade.
- ([% terms.Bug %] 1273846)
- - editflagtypes.cgi would crash when classifications are enabled and
- the user did not have global editcomponents privileges.
- ([% terms.Bug %] 1310728)
- - The File::Slurp would trigger warnings on perl 5.24.
- ([% terms.Bug %] 1301887)
- - All the time entries in the 'when' column had the correct date but the time
- was fixed to 00:00 when using Sqlite.
- ([% terms.Bug %] 1303702)
-
-
-5.0.3
-
-This release fixes one security issue. See the
- Security Advisory
- for details.
-
-This release also contains the following [% terms.bug %] fixes:
+Future releases on this branch will contain a list of the updates since the
+last point release in this section.
-
- - A regression in Bugzilla 5.0.2 caused whine.pl to be unable
- to send emails due to a missing subroutine.
- ([% terms.Bug %] 1235395)
- - The Encode module changed the way it encodes strings, causing
- email addresses in emails sent by [%terms.Bugzilla %] to be encoded,
- preventing emails from being correctly delivered to recipients.
- We now encode email headers correctly.
- ([% terms.Bug %] 1246228)
- - Fix additional taint issues with Strawberry Perl.
- ([% terms.Bug %] 987742 and
- [% terms.bug %] 1089448)
- - When exporting a buglist as a CSV file, fields starting with either
- "=", "+", "-" or "@" are preceded by a space to not trigger formula
- execution in Excel.
- ([% terms.Bug %] 1259881)
- - An extension which allows user-controlled data to be used as a link in
- tabs could trigger XSS if the data is not correctly sanitized.
- [%+ terms.Bugzilla %] no longer relies on the extension to do the sanity
- check. A vanilla installation is not affected as no tab is user-controlled.
- ([% terms.Bug %] 1250114)
- - Extensions can now easily override the favicon used for the
- [%+ terms.Bugzilla %] website.
- ([% terms.Bug %] 1250264)
-
-
-5.0.2
-
-This release fixes two security issues. See the
- Security Advisory
- for details.
-
-This release also contains the following [% terms.bug %] fixes:
-
-
-
-5.0.1
-
-This release fixes one security issue. See the
- Security Advisory
- for details.
-
-This release also contains the following [% terms.bug %] fixes:
-
-
- - Users whose login name is not an email address could not log in on
- installations which use LDAP to authenticate users.
- ([% terms.Bug %] 1179160)
- - If a mandatory custom field was hidden, it was not possible to create
- a new [% terms.bug %] or to edit existing ones.
- ([% terms.Bug %] 1183398
- and [% terms.bug %] 1196969)
- - A user editing his login name to point to a non-existent email address
- could cause Bugzilla to stop working, causing a denial of service.
- ([% terms.Bug %] 1194987)
- - Emails generated during a transaction made PostgreSQL stop working.
- ([% terms.Bug %] 1186700)
- - [% terms.Bugs %] containing a comment with a reference to a [% terms.bug %]
- ID larger than 2^31 could not be displayed anymore using PostgreSQL.
- ([% terms.Bug %] 1191937)
- - The date picker in the "Time Summary" page was broken.
- ([% terms.Bug %] 1181649)
- - If Test::Taint or any other Perl module required to use the
- JSON-RPC API was not installed or was too old, the UI to tag comments was
- displayed anyway, you could tag comments, but tags were not persistent
- (they were lost on page reload). Now the UI to tag comments is not displayed
- at all until the missing Perl modules are installed and up-to-date.
- ([% terms.Bug %] 1183227)
- - Custom fields of type INTEGER now accept negative integers.
- ([% terms.Bug %] 1198659)
- - On Windows, the checksetup.pl installation script no longer
- asks for a SMTP server. It can be set after the installation is complete.
- ([% terms.Bug %] 1191255)
-
+Because of the weird way versions 5.0.5 and 5.0.6 were released, changes
+from those releases are included below in case you're upgrading from the
+5.0.4.x branch.
Minimum Requirements
-Any requirements that are new since 4.4 will look like
+
Any requirements that are new since 5.0 will look like
this.
- Perl
- For MySQL Users
+ - For MariaDB Users
- For PostgreSQL Users
- For Oracle Users
- For SQLite Users
@@ -195,7 +87,9 @@ You may use whatever coding style you want, but all files commited to the repo m
Perl
-Perl v5.10.1
+Perl v5.14
+
+[% INCLUDE db_req db='mariadb' %]
[% INCLUDE db_req db='mysql' %]
@@ -215,7 +109,7 @@ You may use whatever coding style you want, but all files commited to the repo m
Optional Perl Modules
The following perl modules, if installed, enable various
- features of Bugzilla:
+ features of [% terms.Bugzilla %]:
[% INCLUDE req_table reqs = OPTIONAL_MODULES
new = ['Cache-Memcached','File-Copy-Recursive']
@@ -224,7 +118,7 @@ You may use whatever coding style you want, but all files commited to the repo m
Optional Apache Modules
-If you are using Apache as your webserver, Bugzilla can
+
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.
@@ -239,244 +133,149 @@ You may use whatever coding style you want, but all files commited to the repo m
you.
-
+
New Features and Improvements
-Improved WebServices
+Improved Mobile Rendering
- 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. B[%%]ug.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.
+Metadata to assist browsers in properly rendering [% terms.Bugzilla %] on mobile browsers was added. Without this metadata Google Search tools would report [% terms.Bugzilla %] pages as not suitable for mobile devices. [% terms.Bugzilla %] still needs work to actually look nice on mobile devices but this is a good start. (PR #78)
-
+Explicit MariaDB Support
-
- 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.
-
+Newer versions of MariaDB (10.6 and newer) have diverged from MySQL
+sufficiently that you can't really call it a drop-in replacement for MySQL
+anymore. We new have a 'mariadb' database driver for all versions of MariaDB.
+checksetup.pl
will prompt you to switch to it if it detects that you are connected to a MariaDB database server.
+[%+ INCLUDE buglink id=1467006 %]
-
+MySQL 8+ Support
-
- Users can add tags, visible to other users, to [% terms.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.
-
+Bugzilla previously did not work on MySQL 8 or newer. Now it does.
+[%+ INCLUDE buglink id=1592129 %]
-Improved [% terms.Bug %] Group Membership Checking
+Better Unicode support on MySQL and MariaDB
-
- In the past, Bugzilla restricted who can view [% terms.abug %] to everyone
- who was a member of ALL the groups the [% terms.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 [% terms.bug %] can be viewed by
- everyone who is a member of ANY group the [% terms.bug %] is in. That is, the
- groups are ORed together. This give more flexibility in the way [% terms.bugs %]
- are made private to specific groups of users.
-
-
- Note: Group memberships for [% terms.bugs %] and users are
- not changed at all when this setting is switched. When switching from AND to
- OR, this means that [% terms.bugs %] may be more widely viewable than previously.
- It is the responsibility of the administrator to make sure that no [% terms.bugs %]
- are accidentally revealed to the wrong people when changing this setting.
-
+The utf8mb4 character set is now used by default on new installs making use of either MariaDB or MySQL. This should resolve many issues related to character encoding found in older versions.
+[%+ INCLUDE buglink id=1891882 %]
-Improved Documentation for Users and Administrators
+Demo Docker Configuration
-
- 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.
-
+[% terms.Bugzilla %] now ships with a Docker Compose configuration which
+provides an out-of-the-box [% terms.Bugzilla %] with a default configuration to
+test with. Type docker compose up
in the root [% terms.bugzilla %]
+directory to start it up. You will be prompted on the console with how to
+connect to it once it comes up. Requires that you have Docker already
+installed. This configuration is not suitable for production use, and is just
+for playing around with it and testing it without needing to do a full
+installation.
+[%+ INCLUDE buglink id=1888068 %]
Other Enhancements and Changes
Enhancements for Users
- - [% terms.Bugs %]: The deadline field is now visible to users
- not in the the timetracking group.
- - [% terms.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.
- - [% terms.Bugs %]: The reporter is now allowed to enter
- keywords at time of [% terms.bug %] creation.
- - [% terms.Bugs %]: "See Also" now allows spaces as well as
- commas to delimit multiple values.
- - [% terms.Bugs %]: Auto linkification in comments of [% terms.bug %]
- IDs and comment IDs has been improved.
- - [% terms.Bugs %]: [% terms.Bugs %] can now have multiple
- aliases assigned to them. Before each [% terms.bug %] could only have a single
- value. Also, aliases are now visible in the browser's title bar.
- - [% terms.Bugs %]: Users can now change the flags of multiple
- [%+ terms.bugs %] at once using the mass-edit form.
- - Charts and 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
- [%+ terms.bugs %] in reports.
- - Email: You can now choose to not receive any mail at all
- about a particular [% terms.bug %], even if you continue to have a role on
- that [% terms.bug %] (e.g. reporter).
- - Email: When adding or removing [% terms.abug %] as a
- dependency, the summary of the [% terms.bug %] is included in the email
- notification.
- - Requests: request.cgi can now output results in
- CSV format.
- - Requests: X-Bugzilla-* headers are now included
- in flag notification emails.
- - Searches: 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.
- - Searches: The "Blocks" and "Depends On" values can now be
- displayed as columns in [% terms.abug %] 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.
+ - UI: WineHQ Forum links are now accepted in the See Also field on [% terms.bugs %]. [% INCLUDE buglink id=1523814 %]
+ - Accessibility: Color contrast in the default theme was adjusted to comply with WCAG AA 2.0 recommendations. [% INCLUDE buglink id=1798166 %]
+ - Email: Emails about [% terms.bugs %] now include an
X-Bugzilla-ID
header which lists the [% terms.Bug %] ID, for potential use in filtering. [% INCLUDE buglink id=1403169 %]
Enhancements for Administrators and Developers
- - Administration: There are now INTEGER and
- DATE 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.
- - 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.
- - [% terms.Bugs %]: Bugzilla now keeps track of the last
- time each user visited (that is, loaded the show_bug page in a web browser)
- each [% terms.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.
- - Database: 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.
- - Development: 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 [% terms.bug %] changes.
- - Email: When a site administrator creates a new user, an
- email is sent to the user.
- - Email: For dependency email notifications, the header
- X-B[%%]ugzilla-Type: dep_changed 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.
- - Security: Support for increased values for
- PASSWORD_SALT_LENGTH without breaking compatibility with old
- hashes.
+ - Database: UTF8 data encoding is now
+ enforced. Older version of [% terms.Bugzilla %] made the
+ conversion of older data to UTF8 optional. Converting your existing data to
+ UTF8 is now mandatory. Your data will be converted when you run
+ checksetup.pl. If you are not already encoding your data in UTF8
+ you may want to verify that it will correctly convert on a backup copy of
+ your database before upgrading.
+ - Database:If you are using MySQL, the majority of the
+ database tables will also be converted to the InnoDB storage engine. This
+ makes searching more efficent and allows for real referential
+ integrity.
+ - Installation: [% terms.Bugzilla %] now supports
+ Email::MIME version 1.949 and newer, which previously would crash
+ [%+ terms.Bugzilla %] when it tried to send email.
+ [%+ INCLUDE buglink id=1657496 %]
+ - Installation: The
testserver.pl
script will
+ now work with self-signed SSL certificates if you pass the
+ --self-signed
option on the command line. [% INCLUDE buglink id=1851398 %]
+ - Installation: An foreign key error when upgrading from
+ versions prior to 3.0 to 5.0.6 or newer was fixed. [% INCLUDE buglink id=1902375 %]
WebService Changes
- - B[%%]ug.search 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.
- - WebService calls that are used to create and update [% terms.bugs %]
- and attachments now support setting and updating of flags.
- - B[%%]ug.update_attachment can update an attachment's
- metadata as well as its flags.
- - The product parameter for B[%%]ug.possible_duplicates
- has been renamed to products.
- - 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.
- - FlagType.get has been added to get information about valid
- flag types for a given product and component.
- - The deprecated B[%%]ug.get_bugs, B[%%]ug.get_history
- and Product.get_products methods are no longer supported.
- They have been renamed to B[%%]ug.get, B[%%]ug.history
- and Product.get respectively.
+ - Group.get method is now properly marked as Read Only. [% INCLUDE buglink id=1584477 %]
+
+
+Code Changes Which May Affect Customizations and Extensions
+
+
+ - The Bugzilla::DB object now has a qi attribute which returns a special
+ hashref that can be used inside double-quoted strings to quote database
+ identifiers.
+
+ my $q = Bugzilla->dbh->qi;
+ Bugzilla->dbh->do("SELECT COUNT(*) FROM $q->{groups}");
+
+ [% INCLUDE buglink id=1592129 %]
+
+ - [% terms.Bugzilla %] now uses Email::Address::XS instead of Email::Address for managing email address parsing. If you made use of Email::Address directly you should update to use Email::Address::XS instead. [% INCLUDE buglink id=1853138 %]
-Code Changes Which May Affect Customizations and Extensions
+Changes since Version 5.0.4
+
+Because of the weird way we branched to fix the 5.0.5 numbering problem, the
+changes from 5.0.5 and 5.0.6 are included here in case you're upgrading from
+the 5.0.4.x branch.
+
+5.0.6
- - Support for CVS, Bonsai and LXR has been removed entirely when viewing
- attachments. This means that the cvsroot, cvsroot_get,
- bonsai_url, lxr_url and lxr_root parameters
- are all gone, as well as cvsbin from the localconfig
- file.
- - The docs_urlbase parameter has been removed. If documentation
- has not been compiled locally, the "Help" links and other documentation links
- will redirect to bugzilla.readthedocs.org
- automatically.
- - The mostfreqthreshold parameter has also been removed.
- - All extensions which define new public WebService methods must list them
- in a PUBLIC_METHODS constant. Methods which are not listed there
- will not be accessible remotely.
- - JSON::XS is now used instead of Data::Dumper for
- storage on configuration values in data/params. This should
- improve performance when loading the file.
- - A new test has been added to check for reserved words in SQL schema.
- - Pod::Coverage is now used to ensure subroutines are documented.
- - Bugzilla code now uses use parent instead of use base
- in all places applicable.
- - A new hook called cgi_headers has been added to allow
- customization of the HTTP headers returned.
- - A new hook called user_check_account_creation has been added
- to add extra checks before accepting the creation of a new user account.
+- Adminstration: It is now possible to create more than 255
+flags (up to 65535) [% INCLUDE buglink id=1526703 %]
-[% INCLUDE global/footer.html.tmpl %]
+5.0.5
+
+
+- User Interface: Email addresses with apostrophes (yes,
+that's legal) no longer break the "Send Mail to [% terms.Bug %] Assignees"
+button on [% terms.bug %] lists. [% INCLUDE buglink id=1226123 %]
+- Installation/Upgrading: If using MySQL, the
+
bugs_fulltext
table is now InnoDB instead of MyISAM. This may
+cause your upgrade to take a while. [% INCLUDE buglink id=981487 %]
+- Developers: This release reformats the code according to
+the same conventions as the popular Mojolicious product and includes a
+
.perltidyrc
to do the same. You may use whatever coding style you
+want, but all files commited to the repo must be reformatted according to those
+rules.
+- Developers: A new hook
template_after_create
+was added, which can be used to manipulate the template object before it gets
+rendered. You can use this to define new Template Toolkit virtual methods or
+filters in extensions.
+(PR #60)
+
+
+[% INCLUDE global/footer.html.tmpl %]
+
+[% BLOCK buglink %]
+([% terms.Bug %] [%+ id FILTER html -%])
+[% END %]
[% BLOCK db_req %]
[% SET m = DB_MODULE.$db %]
@@ -487,9 +286,16 @@ You may use whatever coding style you want, but all files commited to the repo m
[%+ '' IF db_new %]v[% m.db_version FILTER html %]
[% '' IF db_new %]
+ [% IF m.db_blklst_str %]
+ - but not versions: [% m.db_blklst_str FILTER html %]
+ [% END %]
- perl module:
[%+ m.dbd.module FILTER html %]
- [%+ '' IF dbd_new %]v[% m.dbd.version FILTER html %]
+ [%+ '' IF dbd_new %]
+ [% SWITCH m.dbd.version -%]
+ [% CASE '' %]any version
+ [% CASE DEFAULT %]v[% m.dbd.version FILTER html %]
+ [% END %]
[% '' IF dbd_new %]
[% END %]