RT 6.0.0 Documentation
Developer-UPGRADING-4.4
UPGRADING FROM RT 4.2.0 and greater
This documentation notes internals changes between the 4.2 and 4.4 series that are primarily of interest to developers writing extensions or local customizations. It is not an exhaustive list.
The mailgate has been completely redesigned in a backwards-incompatible way. See docs/extending/mail_plugins.pod.
jQuery has been updated from 1.9.1 to 1.11.3 and jQuery UI from 1.10.0 to 1.11.4.
https://jqueryui.com/upgrade-guide/1.10/ https://jqueryui.com/upgrade-guide/1.11/
Customizations which link to attachments should take RT::ExternalStorage into account. See "ExternalStorageURLFor" in RT::System and share/html/Ticket/Elements/ShowAttachments for an example.
We've added support for more object types in
initialdata
-like files:@Classes
,@Categories
,@CustomRoles
, etc.We've added a "Label" in RT::Group method for displaying groups in the UI, as "Name" in RT::Group was not overrideable.
We've dropped a number of unused fields:
For Users, we've dropped
EmailEncoding
,WebEncoding
,ExternalContactInfoId
,ContactInfoSystem
,ExternalAuthId
,AuthSystem
, andPGPKey
. (Note: GPG keys have always been stored in attributes on the User record in RT, never in thePGPKey
column)For Tickets, we've dropped
IssueStatement
,Resolution
, andDisabled
.For Groups, we've dropped
Type
. Use "Domain" in RT::Group.For Principals, we've dropped
ObjectId
. Use "id" in RT::Principal.The JOIN from tickets to watcher groups has changed from INNER to LEFT to support lazily-created watcher groups for custom roles.
Previously we've called the "Roles" in RT::Record::Role::Roles method on classes, like so:
RT::Queue->Roles
Now that custom roles can be applied to individual objects it's important to switch such cases to
$QueueObj->Roles
(
RT::Queue->Roles
will continue to function, but may include roles that are not applied to the specific queue you're dealing with)The
/User/Prefs.html
page was moved to/Prefs/AboutMe.html
for consistency. Callbacks may need to be adjusted.TicketSQL now supports
Status = '__Active__'
andStatus = '__Inactive__'
.We removed the
InitialPriority
,FinalPriority
, andDefaultDueIn
columns from the Queues table. In their stead we have a more general->DefaultValue
call, e.g.$queue->DefaultValue('InitialPriority') $queue->DefaultValue('FinalPriority') $queue->DefaultValue('Due')
Note that "Due" can now be anything that can be parsed as a date.
With this, we've also added the ability to add default values for "Starts" and custom fields. All of them may be set on a queue's DefaultValues admin page.
You can now split settings from RT_SiteConfig.pm into separate files under an etc/RT_SiteConfig.d/ directory. All files ending in
.pm
will be parsed, in alphabetical order, after the main RT_SiteConfig.pm is loaded.You also no longer need the
1;
at the end of site config files.