=head1 UPGRADING FROM 3.8.8 AND EARLIER Previous versions of RT used a password hashing scheme which was too easy to reverse, which could allow attackers with read access to the RT database to possibly compromise users' passwords. Even if RT does no password authentication itself, it may still store these weak password hashes -- using ExternalAuth does not guarantee that you are not vulnerable! To upgrade stored passwords to a stronger hash, run: perl etc/upgrade/vulnerable-passwords We have also proved that it's possible to delete a notable set of records from Transactions table without losing functionality. To delete these records, run the following script: perl -I /opt/rt4/local/lib -I /opt/rt4/lib etc/upgrade/shrink_transactions_table.pl If you chose not to run the shrink_cgm_table.pl script when you upgraded to 3.8, you should read more about it below and run it at this point. The default for $MessageBoxWrap is now SOFT and $MessageBoxWidth is now unset by default. This means the message box will expand to fill all the available width. $MessageBoxWrap is also overridable by the user now. These changes accommodate the new default two column layout for ticket create and update pages. You may turn this layout off by setting $UseSideBySideLayout to 0. To retain the original behavior, set $MessageBoxWrap to HARD and $MessageBoxWidth to 72. =head1 UPGRADING FROM 3.8.7 AND EARLIER RT's ChartFont option has been changed from a string to a hash which lets you specify per-language fonts. RT now comes with a better default font for charts, too. You should either update your 'ChartFont' option to match the new format, or consider trying the new default. RT now gives you more precise control over the order in which custom fields are displayed. This change requires some small changes to your currently saved custom field orders. RT will automatically clean up your existing custom fields when you run the standard database upgrade steps. After that cleanup, you should make sure that custom fields are ordered in a way that you and your users find pleasing. =head1 UPGRADING FROM 3.8.6 AND EARLIER For MySQL and Oracle users: if you upgraded from a version of RT earlier than 3.7.81, you should already have a CachedGroupMembers3 index on your CachedGroupMembers table. If you did a clean install of RT somewhere in the 3.8 release series, you most likely don't have this index. You can add it manually with: CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId); =head1 UPGRADING FROM 3.8.5 AND EARLIER You can now forward an entire Ticket history (in addition to specific transactions) but this requires a new Template called "Forward Ticket". This template will be added as part of the standard database upgrade step. Custom fields with categories can optionally be split out into hierarchical custom fields. If you wish to convert your old category-based custom fields, run: perl etc/upgrade/split-out-cf-categories It will prompt you for each custom field with categories that it finds, and the name of the custom field to create to store the categories. If you were using the LocalizedDateTime RT::Date formatter from custom code, and passing a DateFormat or TimeFormat argument, you need to switch from the strftime methods to the cldr methods; that is, 'full_date_format' becomes 'date_format_full'. You may also have done this from your RT_SiteConfig.pm, using: Set($DateTimeFormat, { Format => 'LocalizedDateTime', DateFormat => 'medium_date_format', ); Which would need to be changed to: Set($DateTimeFormat, { Format => 'LocalizedDateTime', DateFormat => 'date_format_medium', ); =head1 UPGRADING FROM 3.8.3 AND EARLIER Arguments to the NotifyGroup Scrip Action will be updated as part of the standard database upgrade process. =head1 UPGRADING FROM 3.8.2 AND EARLIER A new scrip condition, 'On Reject', has been added. =head1 UPGRADING FROM 3.8.1 AND EARLIER When using Oracle, $DatabaseName is now used as SID, so RT can connect without environment variables or tnsnames.ora file. Because of this change, your RT instance may loose its ability to connect to your DB; to resolve this, you will need to update RT's configuration and restart your web server. Example configuration: Set($DatabaseType, 'Oracle'); Set($DatabaseHost, '192.168.0.1'); # undefined port => will try both 1526 and 1521 Set($DatabasePort, undef); # ORACLE SID Set($DatabaseName, 'XE'); # user for RT in Oracle, RT's tables in his schema Set($DatabaseUser, 'test'); # above user's password Set($DatabasePassword, 'test'); If you want a user to be able to access the Approvals tools (a.k.a. the Approvals tab), you must grant that user the "ShowApprovalsTab" right. =head1 UPGRADING FROM 3.8.0 AND EARLIER The TicketSQL syntax for bookmarked tickets has been changed. Specifically, the new phrasing is "id = '__Bookmarked__'", rather than the old "__Bookmarks__". The old form will remain, for backwards compatibility. The standard database upgrade process will only automatically change the global 'Bookmarked Tickets' search =head1 UPGRADING FROM 3.7.85 AND EARLIER We have proved that it is possible to delete a large set of records from the CachedGroupMembers table without losing functionality; in fact, failing to do so may result in occasional problems where RT miscounts users, particularly in the chart functionality. To delete these records run the following script: perl -I /opt/rt4/local/lib -I /opt/rt4/lib etc/upgrade/shrink_cgm_table.pl After you run this, you will have significantly reduced the number of records in your CachedGroupMembers table, and may need to tell your database to refresh indexes/statistics. Please consult your DBA for specific instructions for your database. =head1 UPGRADING FROM 3.7.81 AND EARLIER RT::Extension::BrandedQueues has been integrated into core, and the handling of subject tags has changed as a consequence. You will need to modify any of your email templates which use the $rtname variable, in order to make them respect the per-queue subject tags. To edit your templates, log into RT as your administrative user, then click: Configuration -> Global -> Templates -> Select -> The only template which ships with RT which needs updating is the "Autoreply" template, which includes this line: "There is no need to reply to this message right now. Your ticket has been assigned an ID of [{$rtname} #{$Ticket->id()}]." Change this line to read: "There is no need to reply to this message right now. Your ticket has been assigned an ID of { $Ticket->SubjectTag }." If you were previously using RT::Extension::BrandedQueues, you MUST uninstall it before upgrading. RT::Action::LinearEscalate extension has been integrated into core, so you MUST uninstall it before upgrading. RT::Extension::iCal has been integrated into core, so you MUST uninstall it before upgrading. In addition, you must run etc/upgrade/3.8-ical-extension script to convert old data. =head1 UPGRADING FROM 3.7.80 AND EARLIER Added indexes to CachedGroupMembers for MySQL and Oracle. If you have previously installed RTx-Shredder, you may already have these indexes. You can see the indexes by looking at etc/upgrade/3.7.81/schema.* These indexes may take a very long time to create.